summaryrefslogtreecommitdiff
path: root/LINUX/BASH -курс.md
diff options
context:
space:
mode:
Diffstat (limited to 'LINUX/BASH -курс.md')
-rw-r--r--LINUX/BASH -курс.md121
1 files changed, 121 insertions, 0 deletions
diff --git a/LINUX/BASH -курс.md b/LINUX/BASH -курс.md
new file mode 100644
index 0000000..79d5707
--- /dev/null
+++ b/LINUX/BASH -курс.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
+
+
+```