summaryrefslogtreecommitdiff
path: root/LINUX/BASH -курс.md
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


```