File Managment
Права доступа

(Владельцы, группы, права r/w/x, доступ)

    id - получить информацию о текущем пользователе (UID, GID, группы)
    Пример: id k.mmax

    groups - показать группы, в которых состоит пользователь
    Пример: groups k.mmax

    whoami - показать имя текущего пользователя
    Пример: whoami

    su - переключение на другого пользователя ("-" = загрузить окружение этого пользователя)
    Пример: su - root 

    chown - смена владельца и/или группы файла или директории (user:group). Обычно требует sudo. (-R = рекурсивно)
    Пример c владельцем и группой: sudo chown k.mmax:admin ~/Documents/my_file.txt
    Пример с владельцем: sudo chown k.mmax ~/Documents/my_file.txt
    Пример с группой: sudo chown :admin ~/Documents/my_file.txt 

    chmod - смена прав доступа к файлу или директории. (r = чтение; w = запись; x = выполнение). Обычно требует sudo
    Символьный способ записи: u = владелец, g = группа, o = все остальные, a = все, "+" = добавить,
    "-" = убрать, "=" = установить права точно (заменить существующие)
    Пример 1: sudo chmod u+x ~/Documents/script.sh
    Пример 2: sudo chmod u=rwx,g=r,o= ~/Documents/script.sh
    Цифровой способ записи: r = 4, w = 2, x = 1
    Пример 1: sudo chmod 740 ~/Documents/script.sh (7 для владельца, 4 для группы, 0 для всех остальных)

    umask - задать права по умолчанию для новых файлов и директорий, путем вычитания заданной маски.
    Для файлов маска вычитается из "666". Базовые права для файлов: rw-rw-rw-.
    Для директорий маска вычитается из "777". Базовые права для директорий: rwxrwxrwx.
    Пример: umask 022 (Файлы: 666 - 022 = 644, rw-r--r--. Директории: 777 - 022 = 755, rwxr-xr-x)
    
    usermod - изменение параметров существующего пользователя (нет на macOS). Требует sudo
        -aG = добавить пользователя в существующие дополнительные группы
        -g = изменить основную группу пользователя     
        -s = изменить командную оболочку (shell)
        -l = изменить имя пользователя
        -u = изменить UID пользователя
        -L = заблокировать пользователя
        -U = разблокировать пользователя
    Пример 1: sudo usermod -aG staff k.mmax
    Пример 2: sudo usermod -g admin k.mmax
    Пример 3: sudo usermod -s /bin/zsh k.mmax
    Пример 4: sudo usermod -l new_k.mmax old_k.mmax
    Пример 5: sudo usermod -u 1500 k.mmax
    Пример 6: sudo usermod -L k.mmax
    Пример 7: sudo usermod -U k.mmax
 
    useradd - создать нового пользователя (нет на macOS). Требует sudo. 
    (-m = создать домашний каталог; -d = указать путь до домашнего каталога;
    -s = задать командную оболочку)
    Пример 1: sudo useradd -m -s /bin/zsh newuser
    Пример 2: sudo useradd -m -d /data/users/test_home_directory -s /bin/zsh olduser

    userdel - удаление пользователя (нет на macOS). Требует sudo.
    (-r = удалить домашнюю папку и почтовый ящик пользователя)
    Пример: sudo userdel -r olduser
    
    groupadd - создание новой группы (нет на macOS). Требует sudo.
    Пример: sudo groupadd new_group

    groupdel - удаление группы (нет на macOS). Требует sudo.
    Пример: sudo groupdel old_group

    gpasswd - управление группой (нет на macOS). Требует sudo. 
    (-a = добавить пользователя в группу; -d = удалить пользователя из группы)
    Пример 1: sudo gpasswd -a k.mmax great_group
    Пример 2: sudo gpasswd -d k.mmax great_group

    passwd - смена пароля пользователя. Требует sudo для смены чужого пароля
    Пример 1: passwd (сменить свой пароль)
    Пример 2: sudo passwd another_user (сменить пароль для another_user)

    getent - получение данных из системных баз данных (нет на macOS)
        passwd = получить информацию о пользователях (имя, UID, GID, shell, домашний каталог)
        group = получить информацию о группах (название, GID, участники)
        services = получить соответствие сервисов и портов
        hosts = получить IP-адрес домена с учетом записей в /etc/hosts
    Пример 1: getent passwd
    Пример 2: getent passwd k.mmax
    Пример 3: getent group
    Пример 4: getent group staff
    Пример 5: getent services
    Пример 6: getent services ssh
    Пример 7: getent hosts
    Пример 8: getent hosts google.com	

    ssh-keygen - создание и управление SSH-ключами. (-t = тип ключа; -C = комментарий; -b = размер ключа в битах, для rsa; 
    -f = путь и имя файла для сохранения ключа; -R = удалить запись о хосте из known_hosts)
    Пример 1: ssh-keygen -t ed25519 -C "my-mac"
    Пример 2: ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
    Пример 3: ssh-keygen -R 176.12.65.151