summaryrefslogtreecommitdiff
path: root/LINUX/CHMOD, CHOWN.md
blob: 97a50b8da2ceedca848198a2d133eb3db80f39a0 (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
##  CHMOD ##
```sh
chmod опции права /путь/к/файлу

# Сначала рассмотрим какими бывают права доступа linux и как они устанавливаются. Пред этим рекомендую прочитать статью про права, ссылка на которую есть выше. Есть три основных вида прав:

- r - чтение;
- w - запись;
- x - выполнение;
- s - выполнение  от имени суперпользователя (дополнительный);

# Также есть три категории пользователей, для которых вы можете установить эти права на файл linux:

- u - владелец файла;
- g - группа файла;
- o - все остальные пользователи;

# Синтаксис настройки прав такой:
# Группа_пользователейДействиеВид_прав

"+" - включить или 
"-" - отключить. 

- u+x - разрешить выполнение для владельца;
- ugo+x - разрешить выполнение для всех;
- ug+w - разрешить запись для владельца и группы;
- o-x - запретить выполнение для остальных пользователей;
- ugo+rwx - разрешить все для всех;

# Но права можно записывать не только таким способом. Есть еще восьмеричный формат записи, он более сложен для понимания, но пишется короче и проще. Я не буду рассказывать как считать эти цифры, просто запомните какая цифра за что отвечает, так проще:

# rwx = 7 | x=1 w=2 r=4

- 0 - никаких прав;
- 1 - только выполнение;
- 2 - только запись;
- 3 - выполнение и запись;
- 4 -  только чтение;
- 5 - чтение и выполнение;
- 6 - чтение и запись;
- 7 - чтение запись и выполнение.

# Права на папку linux такие же, как и для файла. Во время установки прав сначала укажите цифру прав для владельца, затем для группы, а потом для остальных. Например, :

- 744 - разрешить все для владельца, а остальным только чтение;
- 755 - все для владельца, остальным только чтение и выполнение;
- 764 - все для владельца, чтение и запись для группы, и только чтение для остальных;
- 777 - всем разрешено все.

Каждая из цифр не зависит от предыдущих, вы вбираете именно то, что вам нужно. Теперь давайте рассмотрим несколько опций команды, которые нам понадобятся во время работы:

-c - выводить информацию обо всех изменениях;
-f - не выводить сообщения об ошибках;
-v - выводить максимум информации;
--preserve-root - не выполнять рекурсивные операции для корня "/";
--reference - взять маску прав из указанного файла;
-R - включить поддержку рекурсии;
--version - вывести версию утилиты;
```

## CHOWN ##
```sh
chown пользователь:группа опции /путь/к/файлу

# В поле пользователь надо указать пользователя, которому мы хотим передать файл. Также можно указать через двоеточие группу, например, пользователь:группа. Тогда изменится не только пользователь, но и группа. Вот основные опции, которые могут вам понадобиться:

-c, --changes - подробный вывод всех выполняемых изменений;
-f, --silent, --quiet - минимум информации, скрыть сообщения об ошибках;
--dereference - изменять права для файла к которому ведет символическая ссылка вместо самой ссылки (поведение по умолчанию);
-h, --no-dereference - изменять права символических ссылок и не трогать файлы, к которым они ведут;
--from - изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа;
-R, --recursive - рекурсивная обработка всех подкаталогов;
-H - если передана символическая ссылка на директорию - перейти по ней;
-L - переходить по всем символическим ссылкам на директории;
-P - не переходить по символическим ссылкам на директории (по умолчанию).
```


![[2024-09-05 01.32.11.jpg]]