blob: 79d570795360cb802faa527bf822a93eeb31b240 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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
```
|