Часто используемые команды:
| sudo -i | повысить привилегии для текущего пользователя |
| sudo -l | проверка прав и корректности самого файла sudoerd для текущего пользователя |
| sudo -llU name_user | проверка прав для пользователя username |
| sudo -u user_name vim | запустить vim с правами root от пользователя user_name |
| passwd root | задать пароль для root (такая команда также включает УЗ root, если она отключена) |
| passwd -l root | отключить УЗ root |
| useradd / userdel user_name | создать/удалить пользователя user_name |
| useradd user_name -u 900 -g 900 | создать пользователя user_name с определенными uid и guid |
| usermod -L name_user | заблокировать пользователя |
| usermod -U name_user | разблокировать пользователя |
| passwd -S name_user | проверить состояние УЗ name_user на предмет блокировки |
| id user_name или groups | в каких группах состоит пользователь user_name |
| getent passwd 1000 | найти в passwd пользователя с id 1000 |
| getent group {1000...2000} | найти в group пользователей с id от 1000 до 2000 |
| chage -l user_name | информация о сроке окончания УЗ user_name |
| chage -E 2023-09-11 user | УЗ user перестанет действовать 11.09.2023 |
| chage -d 0 user | заставить сменить пароль пользователя user |
| usermod -aG wheel user | добавить в группу wheel пользователя user |
/etc/sudoers - настройки поведения утилиты sudo
Синтаксис:
пользователь хост = (другой_пользователь:группа) команды
Пользователь - указывает пользователя или %группу, для которых мы создаем правило
хост - имя хоста, для которого будет действовать это правило
другой пользователь:группа - под видом какого пользователя или входящий в группу, указанный первый пользователь, может выполнять команды
команды - разрешенные команды
Примеры записей в конфиг файле
1. разрешим любому пользователю использовать sudo, от любого хоста и выполнять любые команды:
Первое ALL - разрешить всем пользователям, второе ALL - для всех хостов, третье ALL - разрешить вход под любым пользователем и четвертое - разрешить выполнять любою команду.
2. разрешаем пользователям, состоящим в группе wheel, на всех хостах под любым пользователем, выполнять любые команды
3. разрешаем пользователю и группе wheel, на всех хостах под любым пользователем, выполнять любые команды без ввода пароля
%sudo ALL=(ALL) NOPASSWD: ALL
3. для пользователей, входящих в группу whell на всех хостах можно выполнять любые команды только от имени пользователя root
$ sudo -u root ls - выполнится с привелегированныыми правами
$ sudo -u test ls - не выполнится с привелегированныыми правами
4. для пользователей, входящих в группу whell на всех хостах можно выполнять любые команды только от имени пользователя root или пользователей, входящих в группу admins
5. для пользователей, входящих в группу whell на всех хостах можно выполнять указанные команды (mount, umount) только от имени пользователя root
6. тоже самое, но может выполнять без запроса пароля
7. для пользователей, входящих в группу whell на всех хостах запретить выполнять указанные команды (mount) от имени пользователя root
chmod - права доступа на файлы
chmod [опции] права /путь_к_файлу
Основные опции
-R – рекурсивно
-c - подробный вывод выполненных действий
-f – не выводить ошибки
Права в буквенном виде
r – чтение,
w – запись,
x – выполнение (для каталога x - это возможность зайти в него и выполнить действие),
s - выполнение от имени суперпользователя
Права в цифровом виде
0 (---) - никаких прав;
1 (--x) - только выполнение;
2 (-w-) - только запись;
3 (-wx) - выполнение и запись;
4 (r--) - только чтение;
5 (r-x) - чтение и выполнение;
6 (rw-) - чтение и запись;
7 (rwx) - чтение запись и выполнение.
Категории пользователей
u - владелец файла
g - группа файла
o - все остальные пользователи
Примеры использования
1. Добавить права пользователю и группе на чтение на file
2. Для группы и остальных убрать права на запись и выполнение file
3. Назначить для file следующие права: владелец - rwx, группа - rx, остальные - ничего.
4. Добавить права на все файлы в каталоге /file/ и его подкаталогах на чтение, запись, выполнение для всех пользователей и групп
5. Для всех файлов каталога /file/ и его подкаталогов выдать права на чтение только для владельца с подробным выводом изменений
2. #chmod go-wx /file
3. #chmod 750 /file
4. #chmod -R ugo+rwx /file/* (елси убрать *, то изменятся права и на каталог)
5. #chmod -Rс 400 /file/*
chown - изменение владельца или группы у файла
chown [опции] пользователи /файл
Основные опции
-с - подробный вывод выполенных действий
-f - игнорировать ошибки
--from - изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа
-R - рекурсивная обработка всех подкаталогов
-L - переходить по всем символическим ссылкам на директории
Примеры использования
1. Изменить владельца на Sergey у файла /tmp/file
2. Изменить группу на home у файла /tmp/file
3. Изменить владельца на Sergey и группу на home у файла /tmp/file
4. Изменить владельца и группу на Vasya каталога /tmp у тех подкаталогов и файлов, у которых владелец root (подробный вывод действий)
2. #chown :home /tmp/file
3. #chown Sergey:home /tmp/file
4. #chown -Rc --from root Vasya:Vasya /tmp
SUID и SGID - специальные права доступа
SUID (Set User ID root) и SGID (Set Group ID root) - позволяют обычным пользователям запускать программы, требующие для своего запуска привелегий пользователя root.
Установить специальные права доступа для демона pppd (для пользователя и группы)
#chmod g+s /usr/bin/pppd
Найти все файлы с битом s для пользователей:
chattr - дополнительные атрибуты файлов на уровне файловой системы, не зависимо от стандартных (чтение, запись, выполнение)
chattr [опции] [оператор][атрибуты] файлы
Основные опции:
-R - рекрусивная обработка каталога;
-V - максимально подробный вывод;
-f - игнорировать сообщения об ошибках;
Основные атрибуты:
-a - в файл можно будет только добавить информацию;
-A - не обновлять время перезаписи;
-i - неизменяемый файл (read only);
Примеры использования
#chattr -a /etc/passwd - снять атрибут а у файла passwd
Просмотр информации о дополнительных атрибутах файла
lsattr путь_к_файлу