2. Управление пользователями и правами доступа к файлам

advertisement
2. Управление пользователями и правами доступа
Вопросы:
1. Какой командой можно создать пользователя в системе? Какая опция
создает пользователю каталог? Какая опция позволит выбрать
пользовательскую консоль /sbin/nologin?
2. Какой командой можно задать/изменить пароль? Какой синтаксис
данной команды? Как задать время действия пароля?
3. Какой командой можно задать владельца фалу/каталогу?
4. Какой командой можно задавать права на файлы/каталоги? Для чего
нужны биты SGID и SUID, как они задаются? Что для файла будут
означать права 2755?
Команда useradd
Добавить пользователя
useradd user1
Добавить пользователя c созданием домашней директории
useradd -m user1
Добавить пользователя с указанием id
groupadd
-g 1005 user1
useradd --uid 1005 --gid 1005 -m user1
Опции:




-m : создать папку домашней директории по умолчанию
-d : явно указать адрес домашней директории (-d /home/user1)
-s : явно указать shell (-s /sbin/nologin)
-M : не создавать домашнюю директорию
Команда passwd
passwd — утилита Unix-систем для управления паролями учётных записей.[1]
Использование: passwd login
После ввода команды последует запрос на ввод существующего пароля текущей учётной
записи и запрос на новый пароль. В то время как администратор может изменять пароли от
всех локальных учётных записей, пользователь может сменить только свой собственный
пароль. Утилита также может изменить информацию об учётной записи, в том числе полное
имя пользователя, пользовательскую оболочку и срок действия пароля.
См. man passwd
Команда chown
chown (от англ. change owner) — UNIX‐утилита, изменяющая владельца
и/или группу для указанных файлов. В качестве имени владельца/группы
берётся первый аргумент, не являющийся опцией. Если задано только имя
пользователя (или числовой идентификатор пользователя), то данный
пользователь становится владельцем каждого из указанных файлов, а группа
этих файлов не изменяется. Если за именем пользователя через двоеточие
следует имя группы (или числовой идентификатор группы), без пробелов
между ними, то изменяется также и группа файла.
Использование
-c, --changes
Подробно описывать действие для каждого файла, владелец которого
действительно изменяется.
-f, --silent, --quiet
Не выдавать сообщения об ошибках для файлов, чей владелец не может быть
изменён.
-h, --no-dereference
Работать с самими символьными ссылками, а не с файлами, на которые они
указывают. Данная опция доступна только если имеется системный вызов
lchown.
-R, --recursive
Рекурсивное изменение владельца каталогов и их содержимого.
-v, --verbose
Подробное описание действия (или отсутствия действия) для каждого файла.
--dereference
Изменить владельца файла, на который указывает символьная ссылка, вместо
самой символьной ссылки.
--reference=rfile
Изменить владельца файла на того, который является владельцем файла.
Примеры использования
Помните, что эти команды должны быть выполнены с правами доступа root

Изменить владельца (owner) для /var/run/httpd.pid на 'root' (root — стандартное имя
для суперпользователя (Superuser)).
# chown root /var/run/httpd.pid

Поменять владельца для strace.log в 'rob' и идентификатор группы в 'developers'.
# chown rob:developers strace.log

Поменять имя владельца для /tmp и /var/tmp на ‘nobody’ + поменять группу
для /tmp и /var/tmp на ‘nogroup’
# chown nobody:nogroup /tmp /var/tmp

Поменять идентификатор группы для /home на 512
# chown :512 /home

Поменять имя владельца для base на us и выполнить это рекурсивно, т.е всех вложенных
в каталог base файлов (-R).
# chown -R us base

Поменять владельца для noodlefrytasticy на mein.
# chown mein noodlefrytasticy
Команда chmod
chmod (от англ. change mode) — программа для изменения прав доступа к
файлам и директориям. Название происходит от программы ОС Unix chmod,
которая, собственно, изменяет права доступа к файлам, директориям и
символическим ссылкам.
Использование
Права записываются одной строкой сразу для трёх типов пользователей:

владельца файла;

других пользователей, входящих в группу владельца;

всех прочих пользователей.
Аргумент команды chmod, задающий разрешения, может быть записан в двух форматах: в
числовом и в символьном.
Пример — значение права «755»
владелец группа остальные
восьмеричное значение
7
5
5
символьная запись
rwx
r-x
r-x
обозначение типа пользователя
u
g
o
Таким образом, права «755» записываются в символьном виде как «rwxr-xr-x». При этом для
понимания сути задания прав в Unix-системах полезно знать представление чисел
в двоичной системе счисления.
Три варианта записи прав пользователя
двоичная восьмеричная символьная
права на файл
права на директорию
000
0
---
нет
нет
001
1
--x
выполнение
чтение файлов и их свойств
010
2
-w-
запись
нет
011
3
-wx
запись и
всё, кроме чтения списка
выполнение
файлов
100
4
r--
чтение
чтение имён файлов
101
5
r-x
чтение и
выполнение
доступ на чтение
110
6
rw-
чтение и запись
чтение имён файлов
111
7
rwx
все права
все права
Часть разрешений имеет смысл только в сочетании с другими. Из первых четырёх пунктов (не
дающих права на чтение файла) для файлов обычно используется только «---», то есть
полный запрет доступа к файлу данному типу пользователей. Для директорий из всего списка
обычно применяются только 0, 5 и 7 — запрет, чтение и полный доступ.
Суммировав эти коды для трёх типов пользователей, можно получить числовую или
символьную запись. Например, chmod 444 {имяфайла}: 400+40+4=444 — все имеют право
только на чтение (идентично «r--r--r--»).
Помимо стандартных разрешений 'rwx', команда chmod осуществляет также управление
битами SGID, SUID и T. Установленные атрибуты SUID или SGID позволяют запускать файл
на выполнение с правами владельца файла или группы соответственно.
Для SUID вес — 4000, а для SGID — 2000. Данные атрибуты имеют смысл при установленном
соответствующем бите исполнения и обозначаются при символьной записи буквой «s»:
«rwsrwxrwx» и «rwxrwsrwx» соответственно.
Пример: chmod 4555 {имяфайла} — все имеют право на чтение и выполнение, но
запускаться файл на исполнение будет с правами владельца.
Установка SGID для директории приведёт к установке принадлежности каждого нового
создаваемого файла к той же группе, к которой принадлежит сама директория, а не к
основной группе владельца, как это происходит по умолчанию. SUID для директории не имеет
смысла[1].
t-бит используется только с директориями. Когда t-бит для директории не установлен, файл в
данной директории может удалить любой пользователь, имеющий доступ на запись к данному
файлу. Устанавливая t-бит на директорию, мы меняем это правило таким образом, что
удалить файл может только владелец этого файла. Следуя приведённой выше кодировке, tбит имеет вес 1000.
Примечание: Право на запись (w) даёт пользователю возможность записывать или изменять
файл, а право на запись для каталога — возможность создавать новые файлы или удалять
файлы из этого каталога. Если на каталоге стоит возможность записи (w), то файл внутри
этого каталога можно будет удалить, даже если право на запись для него не
установлено. (В соответствии с концепцией файловой системы POSIX).
http://wiki.enchtex.info/tools/console/useradd
http://ru.wikipedia.org/wiki/Passwd_(%D1%83%D1%82%D0%B8%D0%BB%D0
%B8%D1%82%D0%B0)
http://ru.wikipedia.org/wiki/Chown
http://ru.wikipedia.org/wiki/Chmod
Download