From e5abc1fe99340b979b18864d978179f71fe8f5c5 Mon Sep 17 00:00:00 2001 From: vlapa Date: Sat, 13 Jun 2026 20:33:26 +0300 Subject: First --- "LINUX/BASH -\320\272\321\203\321\200\321\201.md" | 121 ++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 "LINUX/BASH -\320\272\321\203\321\200\321\201.md" (limited to 'LINUX/BASH -курс.md') diff --git "a/LINUX/BASH -\320\272\321\203\321\200\321\201.md" "b/LINUX/BASH -\320\272\321\203\321\200\321\201.md" new file mode 100644 index 0000000..79d5707 --- /dev/null +++ "b/LINUX/BASH -\320\272\321\203\321\200\321\201.md" @@ -0,0 +1,121 @@ +=========================== +```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 + + +``` -- cgit v1.2.3