GNU/Linux всё что нужно знать про пользователей

Август 14, 2017

Кто я

whoami — ваше имя или под какой учёткой сидите.
who — кто ещё кроме нас в системе.
У каждого пользователя есть группа, как минимум одна, группы нужны для управления доступом, нескольким пользователям к разделяемым ресурсам.

id имя_пользователя — uid, gid и список групп в которых состоит (если не указан пользователь, показывает для текущего).
uid — уник. идентификатор соответствует имени пользователя.
gid — уник. идентификатор для групп.

Переключение пользователей

su user26 — для выполнения команд из-под другого пользователя (switch user) без параметров запросит пароль root и даст его права.
exit — выйти из-под другого пользователя.
su — — права root с его переменными окружения (без — оставит переменные окружения пользователя с которого переключились).
su -c ‘ls’ имя_пользователя — выполнить команду с под другого пользователя.

Продвинутое переключение пользователей

sudo nano /etc/sudoes — файл конфигураций sudo (можно делегировать конкретным пользователям конкретные команды, переменные окружения и т.п.).
sudo visudo — редактор sudo настроек, по выходу проверяет формат записей, не правильный не сохранит.
sudo -u user23 ls /home/user23 — запуск команд от другого пользователя.
sudo -i — получить права root.

cat /etc/passwd — учётные данные пользователей (каждая строчка — учётная запись)
Файл содержит следующие параметры
имя пользователя:пароль:ID пользователя:ID группы:описание:домашняя директория:оболочка
если оболочка nologin это системные пользователи, под ними нельзя зайти в систему.
cat /etc/group — данные групп
название группы:x:ID группы:пользователи входящие в группу

Управление пользователями

sudo useradd имя_пользователя — добавить пользователя.
sudo userdel имя_пользователя — удалить пользователя.
sudo usermod имя_пользователя — изменить пользователя (UID, имя, пароль, и ещё кучу всего).

Управление группами

sudo groupadd имя_группы — добавить группу.
sudo groupdel имя_группы — удалить группу.
sudo groupmod имя_группы — изменить группу (GID, имя или пароль).

gpasswd — команда для связи пользователей с группами
-a добавить пользователя в группу
-d удалить пользователя из группы
Пример добавления пользователя user23 в группу group7:
gpasswd -a user23 group7

Более продвинутые команды управления пользователями и группами

adduser — создание пользователя со всеми его атрибутами (дом. каталогом, группой, паролем и пр.), также применяется для модификаций.
addgroup — создание группы со всеми атрибутами.
deluser — удаление пользователя и его атрибутов.
delgrooup — удаление группы и её атрибутов.

passwd — смена пароля, если пользователь не указан, то считается текущий.

chown — для смены пользователя или группы на файле или папке.
chown пользователь:группа файл — (ключ -R сменит параметры на файлах и папках внутри заданной папки).

Права

Если набрать «ls -l» то увидим содержимое текущего каталога и дополнительную информацию о файлах и папках в нём:
Часть drwxr-xr-x говорит о правах на файл.
Первый символ означает тип файла (d — директория, прочерк — обычный файл), следующий 3 символа — доступ для владельца, следующие 3 — для группы владельца, и ещё 3 — для всех остальных.
r — read — чтение
w — write — запись
e — execution — исполнение
В других ОС или мануалах запись может иметь вид 762, это значит:
4 — r — только читать
2 — w — только писать
1 — x — только исполнять
в сумме будет 7 — wre, 6 — rw-, 5 — r-x, 3 -wx.

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

Изменение прав на файл

chmod 777 файл — присвоение прав 777 на файл.
chmod -R 666 каталог — рекурсивное присвоение прав 666 на каталог и все файлы в нём.
chmod a-r имя — для всех групп убрать чтение.
chmod u-r имя — владельцу вернуть чтение.
chmod o= имя — убрать все права у «остальных» от слова other (не владельца и и не его группы).

Sticky, SUID, SGID

Иногда вместо привычных rwx можно встретить такую комбинацию:
-rwsr-xr-x 1 root root 54256 мар 29 2016 /usr/bin/passwd
-rwsr-xr-x- (set user identificator) SUID атрибут запуска с правами владельца, не зависимо от того — кто запускает эту программу, она при выполнении имеет права хозяина этого файла.
-rwxr-sr-x- (set group indentificator) SGID атрибут запуска с правами своей группы, если для каталога установлен бит SGID, то создаваемые в нем объекты будут получать группу владельца каталога, а не пользователя.
drwxrwxrwt — sticky bit (t), сегодня используется в основном для каталогов, означает что писать в каталог может любой пользователь, но удалять чужие файлы нельзя, удалить файл может создатель или root.

При этом не понятно, rwt — это rw- или rwx? Определить, стоит ли символ стандартных прав доступа под символами s и t — просто. Если t маленькое, значит x установлен. Если T большое, значит x не установлен. То же самое правило распространяется и на s.
В числовом эквиваленте данные атрибуты определяются первым символом при четырехзначном обозначении, например в правах 1777 — символ 1 обозначает sticky bit. Но чаще всё же можно увидеть именно трёх значное обозначение. Остальные атрибуты будут соответствовать:
1 — sticky bit
2 — SGID
4 — SUID

 

 

Теги статьи:
Категории статьи
Linux

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *