Skip to content
y0014984 edited this page Mar 31, 2023 · 2 revisions

AE3 Computer

20221122115132_1_crop

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.

armaOS-Startup-Procedure

Terminal

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.

Authentication

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.

armaOS-AddUserModule

root User

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.

Commands

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.

Available Commands

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

Special Commands

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

20221122130330_1

Permissions

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.

Filesystem

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

20221122130256_1

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.

Eden Editor Modules

Add File Module

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.

armaOS-AddFileModule

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

Add Directory Module

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.

Add User Module

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.

armaOS-AddUserModule