Главная / Дисциплины / Введение в администрирование ОС Linux / Пользователи и группы. Управление пользователями
Введение в систему аутентификации
В операционной системе Linux существуют три типа пользователей:- - пользователь
root
- - системные (фиктивные) пользователи
- - обычные пользователи
root
имеет UID равный 0. Системные пользователи имеют идентификаторы от 1 до 499.
Обычные пользователи имеют UID от 500.Для удобства управления доступом пользователей к файлам системы пользователи объединяются в группы. Каждый пользователь входит хотя бы в одну группу. Группе присваивается числовой идентификатор группы (GID - Group IDentificator).
Информация о пользователях хранится в файлах:
Файл | Описание |
/etc/passwd | пользователи |
/etc/group | группы пользователей |
/etc/shadow | зашифрованные пароли пользователей |
/etc/gshadow | зашифрованные пароли групп |
Дополнительная информация располагается в файлах:
Файл | Описание |
/etc/default/useradd | свойства по умолчанию для новых пользователей |
/etc/login.defs | настройки новых пользователей |
/etc/skel/ | каталог, файлы из которого копируются в домашний каталог нового пользователя |
Файл
/etc/passwd
имеет следующий текстовый формат:имя_пользователя:пароль:UID:GID:комментарий:домашний_каталог:командная_оболочка
Все элементы записи разделяются символом
:
(двоеточие) и пишутся без пробелов. В случае, если пароль
хранится в зашифрованном виде в файле /etc/shadow
, то вместо пароля указывается символ x
(икс).Файл
/etc/group
имеет следующий текстовый формат:имя_группы:пароль:GID:пользователь1,пользователь2,пользователь3
Все элементы записи разделяются символом
:
(двоеточие) и пишутся без пробелов. Список пользователей группы
разделяется символом ,
(запятая).К файлам
/etc/passwd
и /etc/group
должны быть заданы права доступа: чтение и запись для
пользователя root
и только чтение - для всех остальных (644).Управление пользователями и группами
Для управления пользователями служат команды.Команда | Описание |
useradd | добавить нового пользователя |
passwd | установить пароль пользователя |
usermod | измененить параметры учетной записи пользователя |
userdel | удалить учетную запись пользователя |
Для управления группами служат команды.
Команда | Описание |
groupadd | создать новую группу |
gpasswd | установить пароль группы |
groupmod | измененить параметры группы |
groupdel | удалить группу |
Управление правами доступа к файлам и каталогам
Каждому файлу на диске соответствует один индексный дескриптор файла, где содержится служебная информация о файле. Первые два байта дискриптора файла служат для хранения информации о типе и правах доступа к файлу. Слово данных (два байта) можно отобразить в виде последовательности шестнадцати бит:15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
тип файла | SUID | SGID | T-бит | права владельца | права группы | права всех остальных | |||||||||
Первые четыре бита отвечают за тип файла:
Двоичный код | Десятичный код | Тип файла |
1010 | 10 | сокет |
1100 | 12 | символическая ссылка |
1000 | 8 | обычный файл |
0110 | 6 | блочное устройство |
0100 | 4 | каталог |
0010 | 2 | символьное устройство |
0001 | 1 | именованный канал |
Далее следуют три бита, значение которых будет рассмотрено в следующем пункте.
Затем следуют три группы по три бита каждая. Первые три бита управляют правами доступа к файлу владельца этого файла, следующие три бита задают права группы, к которой принадлежит файл и, наконец, последние три бита - права всех остальных.
Первый бит задает право на чтение файла, второй бит право на запись в файл и третий бит право на выполнение файла. Из трех бит всего возможны восемь комбинаций, определяющих права доступа к файлу:
Двоичный код | Восьмеричный код | Права доступа к файлу |
100 | 4 | чтение (r) |
010 | 2 | запись (w) |
001 | 1 | выполнение (x) |
110 | 6 | чтение и запись (rw) |
101 | 5 | чтение и выполнение (rx) |
011 | 3 | запись и выполнение (wx) |
111 | 7 | чтение, запись и выполнение (rwx) |
000 | 0 | нет доступа |
Для управления правами доступа к файлам служит команда:
chmod [uga] [+-=] [rwx] имя_файла
Например, для того, чтобы позволить владельцу файла и группе читать и редактировать файл
test.txt
необходимо выполнить команду:chmod ug=rw test.txt
Эта же команда может быть записана с использованием восьмеричных значений прав доступа:
chmod 660 test.txt
Для изменения владельца и группы, к которым принадлежит файл служат команды.
Команда | Описание |
chown владелец имя_файла | изменить владельца файла |
chgrp группа имя_файла | изменить группу, к которой принадлежит файл |
Выполнение команд от имени другого пользователя
Биты 11, 10, 9 в первом слове дескриптора файла определяют дополнительные свойства файла.Бит 9 указывается для каталогов и показывает возможность удаления файлов в этом каталоге только владельцем файлов. Например, для защиты от удаления файлов из каталога
test
всеми остальными установить этот T-бит (бит защищенности)
в значение 1
с помощью команды:chmod a+t test
Бит 11 (бит SUID) позволяет любому пользователю выполнять исполняемый файл с правами владельца этого файла.
Бит 10 (бит SGID) позволяет любому пользователю выполнять исполняемый файл с правами группы этого файла.
Например, может быть задана возможность исполнения скрипта
script.sh
кем угодно с правами владельца
и группы с помощью команды:chmod ug+s script.sh
И, наоборот, для отмены такой возможности:
chmod ug-s script.sh
Для поиска файлов с установленными битами SUID и SGID можно выполнить команду:
find / -type f -perm /6000
Для каждого найденного файла можно выполнить команду. Например, для отображения информации о файлах с установленными битами SUID и SGID командой
ls -ld
необходимо выполнить команду:find / -type f -perm /6000 \-exec ls -ld {} \;
Для выполнения некоторых команд от имени суперпользователя служит команда
sudo
. Для получения такой
возможности непривелигерованный пользователь должен иметь запись в файле /etc/sudoers
. Редактирование
этого файла лучше осуществлять командой visudo
, которая запустит текстовый редактор vim
,
заблокирует на время файл /etc/sudoers
и проверит введенные данные.Например, для разрешения пользователю
master
выполнять команды /bin/mount
и
/bin/umount
в файле /etc/sudoers
необходимо добавить строки:User_Alias USERS=master Cmd_Alias COMMANDS=/bin/mount,/bin/umount USERS ALL=COMMANDSЧтобы дать пользователю
master
права суперпользователя необходимо записать в файл /etc/sudoers
:master ALL=(ALL) ALLДля получения возможности выполнять команды без ввода пароля:
master ALL=(ALL) NOPASSWD: ALL
Ссылки по теме
Использование UNIX: Часть 4. Права владельца и разрешения UNIX для защиты личной информации и безопасного совместного использованияКурс молодого бойца. Основы управления доступом к файлам
Что такое права доступа и биты SUID, SGID