-
-
Notifications
You must be signed in to change notification settings - Fork 10
armaOS
First you need to power on the Computer via ACE3 Interaction. If it's a laptop, you first need to open it. Then you can access armaOS via ACE3 Interaction.
You can access every computer by using the terminal. This is a basic text-based command interface. Type help
to get a list of availble commands. Type man <command>
to get a basic description of the individual command. You can't quit the terminal by hitting ESC key. Instead use the exit button in the lower right corner.
Beside this button is a button to toggle through the available keyboard layouts. Due to technical reasons the set keyboard layout is not synced to your real world keyboard layout. You can set your default keyboard layout in the user related CBA settings for Advanced Equipment 3.
The terminal title bar shows the battery state. If you want to shutdown the computer or activate the standby function, use the corresponding terminal commands shutdown
and standby
. Or you could leave the UI by hitting the exit button and use the ACE3 "turn off" or "standby" interaction options.
You can access the recently used commands with the up and down arrow keys or by typing the history
command.
To get access to a computer, you need to login with a username and password, either directly or via ssh from another computer (ssh not implemented yet). The local users are assigned to the computer in Eden Editor via the addUser Module. You will need one Module for each user on the computer. You need to define a username and a password. Don't forget to connect the module to the computer.
Every armaOS has a root
user but by default you can't login as root
. But you can assign a Add User Module containing the root
User and Password. The root
User doesn't need any permissions. root
can read and write every file and directory.
While logged into the computer, you can logout every time by typing the exit
command. This brings you back to the login and you could log in as another user.
ArmaOS supports a variety of commands. Some of them are very familiar to linux users, some are a little bit different. All of them have basic functionality. See this list for all available commands and their function.
command | status | usage | function |
---|---|---|---|
cat | implemented | cat <file> |
prints the content of a textfile |
cd | implemented | cd <directory> |
change the current working directory |
clear | implemented | clear |
clear the terminal window/output buffer |
date | implemented | date |
prints ingame date and time |
echo | implemented | echo <text> |
prints text to stdout |
exit | implemented | exit |
logs you out of the computer |
find | implemented | find <name> |
find a file/directory by name |
help | implemented | help |
prints a list of available commands |
history | implemented | history |
prints latest used command lines |
ipconfig (will be renamed to ipconfig) | implemented | ipconfig |
prints current ip adresses of the computer |
ls | implemented |
ls [-l] or ls [-l] <directory>
|
lists contents of directories |
man | implemented | man <command> |
prints informations about given command |
mkdir | implemented | mkdir <directory> |
creates a directory |
mv | implemented | mv <source> <destination> |
moves or renames files |
ping | implemented | ping <ip address> |
tests if ip address is reachable |
rm | implemented | rm <file> |
removes/deletes a file |
shutdown | implemented | shutdown |
shuts down the computer |
standby | implemented | standby |
activates computers standby mode |
whoami | implemented | whoami |
prints active user's name |
command | status | usage | function |
---|---|---|---|
crack | implemented | crack -a=[algorythm] -m=[mode] [text] |
cracks encrypted messages |
crypto | implemented | crypto -a=[algorythm] -k=[key] -m=[mode] [text] |
encrypts/decrypts messages |
Every directory and file has a owner and permissions for executing, reading and writing a file, respectively enter a folder, read and write it's sub-elements. These permissions are defined for the owner and for every other user. Examples:
permissions | type | owner | permissions owner | permissions other |
---|---|---|---|---|
drwxrwx root |
directory | root | read, write, enter | read, write, enter |
-rwx--- admin |
file | admin | read, write, execute | no permissions |
-rw-r-- guest |
file | guest | read, write | read |
dr-xr-x stavros |
directory | stavros | read, enter | read, enter |
------- phantom |
file | phantom | no permissions | no permissions |
Keep in mind, there is a root
user, that doesn't neet any permissions.
Permissions for default filesystem objects are set on startup. You can define permissions for your custom files and folders in the Add File and Add Directory Modules, see below.
Every computer starts with a basic filesystem, that means some folders in the root directory. See the list below. Every additional file that the mission creator or the player wants to have on the computer has to be put on the computer by using the add file Eden Editor Module or by creating the file live while in game.
directory | permissions | usage |
---|---|---|
/bin/ | drwxr-x root |
contains user commands |
/home/ | drwxr-x root |
contains subfolders for every local user |
/mnt/ | drwxr-x root |
contains mountpoints for external filesystems |
/root/ | drwx--- root |
home directory of the root user |
/sbin/ | drwxr-x root |
contains essential system commands |
/sys/ | drwxr-x root |
system files |
/tmp/ | drwxrwx root |
contains temporary files |
/var/ | drwxr-x root |
contains logfiles and other stuff |
Perhaps there will other kinds of filesystems like on usb sticks. They wont have the default folders but you will still be able to create, delete, rename oder move files and folders.
For every additional file that you want to add to a computer, you need one Add File Module in the Eden Editor, that is connected to the computer. In the module settings you define the path/filename, the content, the fileowner and the permissions. Also you can define if the content is a script by ticking the Is code?
checkbox. In that case the content of the text filed is handled as a script. By that you can create your own armaOS executables. See here for an example.
There is also a global function, that allows you to add files by script. Here's an example.
private _computer = cursorObject;
private _ptr = []; // current working dir; not necessary in this case
private _filesystem = _computer getVariable "AE3_filesystem"; // the complete filesystem of a computer
private _path = "/tmp/new/example.txt";
private _content = "Lorem ipsum dolor amet";
private _user = "root"; // The user that performs the action/adds the file
private _owner = "admin"; // the final owner of the file
private _permissions = [[true, true, true], [true, true, false]]; // ownerX, ownerR, ownerW, otherX, otherR, otherW
[_ptr, _filesystem, _path, _content, _user, _owner, _permissions] call AE3_filesystem_fnc_createFile;
_computer setVariable ["AE3_filesystem", _filesystem]; // write filesystem back to computer
The Add Directory Module works in a similar manner like the Add File Module, except that it creates folders instead of files and that you don't define any content.
There will be only one default user on every computer, that is the root user. Besides that every additional user must be created on the device by using the add user Eden Editor Module and syncing it to the computer.