Поскольку система Linux с самого начала разрабатывалась как многопользовательская, в ней предусмотрен такой механизм, как права доступа к файлам и каталогам. Он позволяет разграничить полномочия пользователей, работающих в системе.
В частности, права доступа позволяют отдельным пользователям иметь “личные” файлы и каталоги. Например, если пользователь ivanov создал в своём домашнем каталоге файлы, то он является владельцем этих файлов и может определить права доступа к ним для себя и остальных пользователей. Он может, например, полностью закрыть доступ к своим файлам для остальных пользователей, или разрешить им читать свои файлы, запретив изменять и исполнять их.
Правильная настройка прав доступа позволяет повысить надёжность системы, защитив от изменения или удаления важные системные файлы. Наконец, поскольку внешние устройства с точки зрения Linux также являются объектами файловой системы, механизм прав доступа можно применять и для управления доступом к устройствам.
Как переводить права на файлы из символьного представления в восьмеричное:
Первая цифра — права владельца файла
Вторая цифра — права группы
Третья цифра — права всех пользователей
Значения:
r (read, чтение) = 4
w (write, запись) = 2x (execute, выполнение) = 1
r (read, чтение) = 4
w (write, запись) = 2
x (execute, выполнение) = 1
Таким образом, получается:
rwx = 4 + 2 + 1 = 7rw- = 4 + 2 = 6
rwx = 4 + 2 + 1 = 7
rw- = 4 + 2 = 6
И так для каждой группы пользователей:
rw-r—r— = (4 + 2)(4)(4) = 644rwxrwxrwx = (4 + 2 + 1)(4 + 2 + 1)(4 + 2 + 1) = 777
rw-r—r— = (4 + 2)(4)(4) = 644
rwxrwxrwx = (4 + 2 + 1)(4 + 2 + 1)(4 + 2 + 1) = 777
Некоторые полезные команды
chown user1 file1 назначить владельцем файла file1 пользователя user1
chmod +x /root/a.sh разрешить исполнение файла a.shchmod 755 /root/aaa дать права 755 файлу aaa
chown user1 file1 назначить владельцем файла file1 пользователя user1
chmod +x /root/a.sh разрешить исполнение файла a.sh
chmod 755 /root/aaa дать права 755 файлу aaa
Прочее
chown -R user1 directory1 назначить рекурсивно владельцем директории directory1 пользователя user1
chgrp group1 file1 сменить группу-владельца файла file1 на group1
chown user1:group1 file1 сменить владельца и группу владельца файла file1
chmod u+s /bin/binary_file назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла.
chmod u-s /bin/binary_file снять SUID-бит с файла /bin/binary_file.
chmod g+s /home/public назначить SGID-бит директории /home/public.
chmod g-s /home/public снять SGID-бит с директории /home/public.
chmod o+t /home/public назначить STIKY-бит . Позволяет удалять файлы только владельцам.
chmod o-t /home/public снять STIKY-бит с директории /home/public