Немного линукса
Основы работы в ОС Linux
Права доступа для файлов и директорий

Права доступа для каждого файла или директории — это права на чтение, запись (в т.ч. редактирование и удаление) и исполнение данного файла (или вход в директорию). Обозначаются буквами r, w и x, соответственно.

Права устанавливаются раздельно для 3 категорий пользователей: владелец файла, группа, к которой он принадлежит, и весь остальной мир. В NSG Linux это, как правило, не имеет значения, поскольку пользователь nsg и дополнительные пользователи (если они созданы) имеет должные права на все необходимые им файлы, а возможность управлять правами имеет только root. Однако некоторые приложения критично относятся к правам на некоторые файлы, несмотря на то, что это в данном случае формальное понятие.

В целом права описываются 9-битной маской. Перед ней ставится прочерк для обычного файла, d для директории (есть и другие типы объектов, но они выходят за рамки вводного курса). Например:

# ls -l
-rw-r--r-- 1 root root 5 янв 14 19:02 myPoopyFile.txt

9-битную маску прав часто удобнее записывать в виде трёх восьмиричных цифр. При этом в каждом разряде старший бит r=4, средний w=2 и младший x=1, а набор прав для каждой категории пользователей определяется сложением этих бит. Например, для вышеприведённого файла:

-rw-r--r--
 110100100
││ ││ │└─┴─мир 4 + 0 + 0 = 4
││ │└─┴─группа 4 + 0 + 0 = 4
│└─┴─владелец 4 + 2 + 0 = 6
└─- — файл, d — директория

итого права доступа к нему записываются как 644. Для исполняемых файлов наиболее часто используется маска 755, то есть читать и исполнять их могут все, а писать — только владелец:

# chmod +x myPoopyScript.sh
# ls -l
-rwxr-xr-x 1 root root 5 янв 14 19:04 myPoopyScript.sh

Важная категория файлов, для которых права доступа могут играть критическую роль — это файлы с паролями и приватными (закрытыми) ключами RSA. Это же не очень правильно, если ваш приватный ключ сможет смотреть кто угодно, верно? Для таких файлов постулируется, что они должны быть доступны только их владельцу и недоступны ни группе, ни миру. Если это правило нарушено, то одни приложения, например, pppd, относятся к этому снисходительно — пишут в журнале предупреждение и работают дальше. Другие же, в частности, IPsec и OpenVPN, расценивают это как критическую ошибку и аварийно завершаются. Для таких файлов необходимо, после записи паролей, генерации или переноса ключей, установить права 600:

# chmod 600 myPoopyPrivateKey.pem
# ls -l
-rw------- 1 root root 5 янв 14 19:04 myPoopyPrivateKey.pem

К файлам публичных (открытых) ключей RSA и сертификатов X.509 это не относится, поскольку они, напротив, предназначены именно для того, чтобы раздавать их всем, кому угодно.


© Network Systems Group 2015–2024 Отдел документации