Linux notes #8 — Коротко и просто о правах на файлы и папки в Linux

Доступ пользователей к файлам условно можно разделить на 

u — user — владелец

g — group — относится к группе которой выделены права на определенный файл

o — others — все пользователи, которые не подходят под первые две

Сами права делятся на

r — read — чтение

w — write — запись (изменение)

x — execute — запуск (исполнение), как правило относится к исполняемым файлам и скриптам

u    g    o
rwxrwxrwx

Первые три rwx для владельца, вторая для группы и третья для остальных. Мы даем право для user, group и others на чтение, изменение и запуск. 

Давайте разрешим для user все, group будет иметь право только на чтение, а others никаких прав

rwxr-x---

Для просмотра прав на файл можно использовать

stat file

или 

ls -l

В выводе ls -l сначала мы видим права на файл, затем после цифры владельца и группу. 

Давайте изменим владельца файла file. 

ll
-rw-r--r--. 1 sysadmin sysadmin 0 Jan 27 08:38 file

Выполняем

sudo chown support file

ll
-rw-r--r--. 1 support sysadmin 0 Jan 27 08:38 file

Чтобы изменить владельца нескольких файлов, например в директории

sudo chown -R support rights/

ll rights/
-rw-r--r--. 1 support sysadmin 0 Jan 27 08:48 rights1
-rw-r--r--. 1 support sysadmin 0 Jan 27 08:48 rights2
-rw-r--r--. 1 support sysadmin 0 Jan 27 08:48 rights3
-rw-r--r--. 1 support sysadmin 0 Jan 27 08:48 rights4
-rw-r--r--. 1 support sysadmin 0 Jan 27 08:48 rights5

Изменим владельца и группу. Можно сделать так

sudo chown support:support file

-rw-r--r--. 1 support support   0 Jan 27 08:38 file

Или вот так

sudo chgrp sysadmin file (если вы владелец файла sudo не нужен)

-rw-r--r--. 1 support sysadmin  0 Jan 27 08:38 file

Давайте дадим владельцу права на чтение и изменение файла

sudo chmod u+rw file

-rw-r--r--. 1 sysadmin sysadmin 0 Jan 27 08:38 file

Запрет группе на изменение файла (те кто внимательно читал выше обратят на кое-что внимание, но команда просто чтобы показать)

chmod g-w file

-rw-r--r--. 1 sysadmin sysadmin 0 Jan 27 08:38 file

А если всем нужно дать право на исполнение?

chmod +x file

-rwxr-xr-x. 1 sysadmin sysadmin  0 Jan 27 08:38 file

group и others запрет на чтение

chmod go-r file

-rwx--x--x. 1 sysadmin sysadmin  0 Jan 27 08:38 file

Есть еще вариант с помощью цифр. 

read — r — цифра 4

write — w — цифра 2

execute — x — цифра 1

Нам будет нужна сумма этих чисел. Например rwx = 4+2+1, соответственно rwxrwxrwx равно 777.

u    g    o
rwxrwxrwx 
7    7    7

rwxr-x---
7   5   0
chmod 750 file

-rwxr-x---. 1 sysadmin sysadmin  0 Jan 27 08:38 file

или

chmod 777 file

-rwxrwxrwx. 1 sysadmin sysadmin  0 Jan 27 08:38 file

Для директорий.

read позволяет просматривать содержимое папки, какие файлы и подпапки она содержит. 

write позволяет изменять содержимое папки, создавать, переименовывать и удалять файлы и подпапки внутри папки. 

execute позволяет войти в папку аналогично команде cd.