=========== Linux users =========== * USER_UID - user identifier (e.g. 1000) * USER_GID - group identifier (e.g. 1000) In Linux systems, every user must be a member of at least one group, the primary group. The primary group is stored in the /etc/passwd file. Commands: * ``id`` - show user and group information * ``groupadd`` - create a new group (e.g. ``groupadd --gid 1000 mygroup`` - create a new group with gid 1000 and name mygroup) * ``useradd`` - create a new user or update default new user information (e.g. ``useradd --uid 1000 --gid 1000 -s /bin/bash -m myuser`` create a new user with uid 1000, gid 1000, shell /bin/bash and home directory /home/myuser) * ``groups`` - show groups that current user is a member of * ``sudo usermod -aG `` - add user to a group (secondary or supplementary group) (e.g. ``sudo usermod -aG dialout myuser`` - add user myuser to dialout group) * ``sudo usermode -g `` - change user's primary group (e.g. ``sudo usermod -g mygroup myuser`` - change user myuser's primary group to mygroup) * ``chown`` - change file owner and group (e.g. ``chown myuser:mygroup myfile.txt`` - change owner of myfile.txt to myuser and group to mygroup) * ``chmod u+x simple_velocity_publisher.py`` - make script executable for user (u - user, + - add permission, x - execute) ``/home/username/.config`` - directory is typically used to store configuration files and settings specific to a user and their applications E.g. ``/home/username/.config/xfce4`` - directory that contains Xfce4 configuration files ``/etc/sudoers.d`` - directory that contains sudoers files Sudoer file is a configuration file that determines which users can run which commands and as which users. ``/etc/group`` file is a text file that defines the groups on the system. Each line of the file contains the following fields: * *group_name* - It is the name of group. If you run ls -l command, you will also see this name printed in the group field. * *password* - Generally password is not used, hence it is empty/blank. It can store encrypted password. This is useful to implement privileged groups. * *group_ID* - Each user must be assigned a group ID. You can see this number in your /etc/passwd file. * *group_list* - It is a list of user names of users who are members of the group. The user names, must be separated by commas. ``/etc/passwd`` - file that contains one line for each user account, that contans the following fields: * *username* - It is used when user logs in. It should be between 1 and 32 characters in length. * *password* - An x character indicates that encrypted password is stored in /etc/shadow file. * *user ID (UID)* - Each user must be assigned a user ID (UID). UID 0 (zero) is reserved for root and UIDs 1-99 are reserved for other predefined accounts. Further UID 100-999 are reserved by system for administrative and system accounts/groups. * *group ID (GID)* - The primary group ID (stored in /etc/group file) * *user ID info* - The comment field. It allow you to add extra information about the users such as user's full name, phone number etc. * *home directory* - The absolute path to the directory the user will be in when they log in. If this directory does not exists then users directory becomes / * *command/shell* - The absolute path of a command or shell (/bin/bash). Typically, this is a shell. Please note that it does not have to be a shell. To see a list of users on the system, type the following command: ``cut -d: -f1 /etc/passwd`` cut command is used to extract sections from each line of input. -d option specifies the delimiter, -f option specifies the fields to print