Управление учетными записями. Создание и использование групп пользователей в ОС Linux.
Администрирование учетных записей пользователей и групп. Авторизация в Linux
Права доступа
Пользователи в UNIX разделены на два класса: обычные пользователи и суперпользователь. Суперпользователь имеет номер (UID) равный нулю и на него не действуют никакие ограничения прав (кроме запрета на исполнение для всех, но и в этом случае он всегда может поменять права любого файла).
Традиционно, имя суперпользователя “root”, но это не обязательно. Права пользователя определяются только его номером, а не именем.
В UNIX права доступа к файлу записаны 12 битами и двумя идентификаторами. Их можно увидеть в выводе команды “stat” или “ls -l”.
Один идентификатор — это UID (User ID) пользователя, который владеет файлом. Второй идентификатор — GID (Group ID) — идентификатор группы-владельца. Права доступа задаются для владельца, группы-владельца и всех остальных. Каждый набор прав описывается тремя битами. Соответственно, есть три права: право читать, право писать и право выполнять данный файл. Для каталогов право читать позволяет получить список файлов внутри каталога, а право выполнять позволяет открыть файл в этом каталоге. Право писать позволяет создавать и удалять файлы.
В выводе таких команд как stat и “ls -l” соответствующие права можно увидеть в виде строки вида “-rwxrwxrwx”. Здесь первый символ показывает тип файла, первый набор rwx показывает права пользователя (r - чтение, w - запись, x - выполнение), второй — группы, третий — остальных. Если стоит буква, то право есть, а если символ “-”, то права нет.
Права применяются по простому алгоритму: если пользователь — владелец, то применяется первый набор прав, иначе если пользователь входит в группу-владельца, то применяется второй набор прав, иначе применяется третий набор прав. Таким образом можно сделать файл, права на использование которого будут у всех, кроме владельца или у всех, кроме некоторой группы.
Один пользователь может входить в несколько групп и одна из групп должна быть для него главной группой: ей будут принадлежать создаваемые этим пользователем файлы. Права при создании для файлов равны 0666, а для каталогов 0777 (числа в восьмеричном формате, то есть для файлов rw-rw-rw, а для каталогов rwxrwxrwx). Затем снимаются биты, указанные значением umask.
Если запустить команду umask без параметров, можно увидеть текущее значение этой маски:
$ umask
0022
Чтобы установить новое значение, просто передайте его в качестве параметра:
$ umask 23
$ umask
0023
По-умолчанию ставится значение 022, заперщающее кому-либо кроме владельца писать в создаваемые файлы и каталоги.
Кроме этих прав есть еще три бита специальных прав: SUID(set UID), SGID(set GID) и sticky bit. Право SetUID, установленное на файл, при запуске этого файла дает программе права владельца файла, а не права того, кто эту программу запустил. Например, команда смены пароля должна иметь возможность писать в файл паролей, а пользователь не должен иметь такой возможности. Соответственно на программу изменения паролей (/bin/passwd) ставится SUID и владельцем этой программы является root. А значит, будучи запущенной, она всегда имеет права root'а. В строке прав SUID показан буквой s вместо x в правах пользователя (если права выполненя нет, то S):
ls -l /bin/passwd
-rws--x--x 1 root root 27596 Nov 5 09:02 /bin/passwd
Аналогично действует право SGID, но в этом случае меняется группа программы. Также для каталогов в Linux при установленном этом бите создаваемые в каталоге файлы всегда будут иметь ту же группу, что и каталог. В строке прав это право указывается буквой s вместо x в правах группы. В Linux есть ещё одно использование этого права: если есть это право и нет права для группы на выполнение, то при открытии этого файла используется механизм принудительного захвата (mandatory locking). То есть можно запретить открывать этот файл кому-либо ещё, пока он открыт. Для всех прочих файлов используется механизм добровольного захвата (advisory locking): можно установить запрет на открытие, но остальные программы должны проверять статус этого запрета и могут игнорировать захват.
sticky bit в прошлом использовался, чтобы программа с данным битом после закрытия не выгружалась из памяти. В настоящее время, единственное его использование: если каталог имеет это право, то удалить из него файл имеет право только владелец файла или владелец каталога. Как правило это право устанавливается на каталог /tmp.
Изменение прав доступа к файлу: chmod
Для изменения прав доступа к файлу используются команда chmod. Она позволяет устанавливать права на файлы, принадлежащие пользователю. В простейшем случае её вызов выглядит как
chmod {права} {имя файла}
{права} в данном случае — восьмеричное число, например 666, для прав rw-rw-rw-. Также можно устанавливать или удалять отдельные права, если вместо числа указать команды вида +r, +w, +x, -r, -w, -x. Плюс значит “добавить”, минус — “убрать”. При этом соответствующее право изменяется во всех трёх наборах. Если надо изменить в одном наборе, то перед командой добавьте один символ: u для прав пользователя (user), g для прав группы (group), o для всех остальных (other).
Чтобы установить право SUID наберите:
chmod u+s {имя файла}
Чтобы установить SGID:
chmod g+s {имя файла}
Чтобы установить sticky bit:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.