=========================== ```sh # СОЗДАЕМ СКРИПТ ДЛЯ СОЗДАНИЯ ПОЛЬЗОВАТЕЛЯ И ГРУППЫ #!/bin/bash # шебанг set -e # при ошибке скрипт прервется! read -p "login: " login # ввод логина read -p "Password: " -s password # секьюрный ввод пароля! read -p "path of ssh public key: " -e ssh_pub_key # ввод ключа (выбор через TAB) homedir=/home/$login ssh_dir=$homedir/.ssh sudo mkdir -p "$ssh_dir" sudo cat "$ssh_pub_path" >> "$ssh_dir/authorized_keys" # дописываем в конец файла sudo cp -rT /etc/skel $homedir sudo useradd -d $homedir -s /bin/bash $login sudo chown -R $login:$login $homedir echo "$login:$password" | sudo chpasswd cat /etc/passwd | grep $login =========================== # Выход из пользователя: Ctrl+d exit man usermod # поиск: /... /enter # перемещаемся cat /var/TabTab cat /var/log/TabTab cat /var/log | tail -20 =========================== # SUDO - находятся: sudo vim /etc/sudoers # НЕ ИЗМЕНЯТЬ !!! # Добавлять с проверкой: sudo vimsudo /etc/sudoers.d/user # в файл добавляем: user ALL=(ALL:ALL) ALL user ALL=(ALL:ALL) NOPASSWD:ALL =========================== # Скрипт vim ~/script/... #!/bin/bash # генерируем 3 директории с правами для всех, для группы, для юзера. Сделаем проверку, что права выставлены верно: set -e login=$1 homedir=/home/$login list_name_dir=(secret_for_other secret_for_group secret_for_user) ready_dir_list=() for name in ${list_name_dir[@]}; # так для массива(списка) do mkdir -p $homedir/${login}_${name} #chown -R $login:$login $homedir ready_dir_list+=($homedir/${login}_${name}) if [[ $(echo $name | grep other) ]]; then chmod -R 007 $homedir/${login}_${name} elif [[ $(echo $name | grep group) ]]; then chmod -R 070 $homedir/${login}_${name} elif [[ $(echo $name | grep user) ]]; then chmod -R 700 $homedir/${login}_${name} fi done echo ${list_name_dir[@]} echo ${ready_dir_list[@]} counter=$(ls $homedir/ | wc -l) while [ $counter -gt 0 ]; do counter=$(( $counter - 1 )) access_rules=$(ls -ld ${ready_dir_list[$counter]} | cut -d' ' -f 1) type_of_rules=$(echo ${ready_dir_list[$counter]} | cut -d'_' -f 4) if [[ ${access_rules:1} == "rwx------" ]] && [[ ${type_of_rules} == "user" ]]; then echo ${counter} " THIS IS RULES FOR" ${type_of_rules} echo $access_rules echo "GOOD JOB" elif [[ ${access_rules:1} == "---rwx---" ]] && [[ ${type_of_rules} == "group" ]]; then echo "THIS IS RULES FOR" ${type_of_rules} echo $access_rules echo "GOOD JOB" elif [[ ${access_rules:1} == "------rwx" ]] && [[ ${type_of_rules} == "other" ]]; then echo "THIS IS RULES FOR" ${type_of_rules} echo $access_rules echo "GOOD JOB" else echo ---------------- echo "YOU MADE MISTAKE FOR" ${type_of_rules} echo $access_rules echo ---------------- fi #done ```