Сценарий посвящен изучению процесса аутентификации в UNIX.
Начальные условия: Приглашение входа в систему.
Для входа в систему необходимо ввести логин и пароль пользователя. При этом символы вводимого пароля не отображаются.
Welcome to ALT Linux Sisyphus (20070101) / tty1 localhost login: user Password: Last login: Wed Dec 07 00:20:09 2006 from tty1 [user@localhost ~]$
При входе в систему в графическом режиме (через X11), пользователю вместо командной строки предоставляется графический итерфейс аутентификации.
Для завершения сеанса работы в командной строке необходимо ввести команду exit:
[user@localhost ~]$ exit
Благодаря свойствам командной оболочки UNIX, этого же эффекта можно добиться нажатием Ctrl+D (см. раздел «Управляющие символы»).
Сценарий рассматривает базовые права доступа в UNIX, их просмотр и изменения.
Начальные условия: Командная строка после входа в систему.
Для просмотра прав доступа можно использовать команду ls с ключом вывода расширенной информации: ls -l.
[user@localhost ~]$ ls -l drwxr-xr-x 1 user user 22 Дек 19 11:18 test/ -rw-r--r-- 1 user user 90 Сен 19 00:20 test.txt
Особый интерес представляют: первая колонка (права доступа), третья и четвётрая – владелец и группа владельцев соответственно.
Рассмотрим исполняемый файл ls -l /bin/bash.
[user@localhost ~]$ ls -l /bin/bash -rwxr-xr-x 1 root root 746544 Дек 21 13:40 /bin/bash*
Исполняемые файлы в UNIX определяются наличием специального бита прав доступа.
Для каталога права на исполнение трактуются по-другому. Рассмотрим права
каталога /tmp
(ls -ld /tmp):
[user@localhost ~]$ ls -ld /tmp drwxrwxrwt 26 root root 5168 Дек 22 20:04 /tmp
Каталог имеет дополнительный sticky-бит, определяющий права на создание и удаление файлов в нем.
Попытка изменения файла при недостатке прав приводит к ошибке доступа. Например, команда rm /bin/bash:
[user@localhost ~]$ rm /bin/bash rm: удалить защищенный от записи обычный файл `/bin/bash'? y rm: невозможно удалить `/bin/bash': Permission denied
Для всех файлов, на которые данный пользователь не имеет права записи, команда rm может выводить предупреждение об удалении.
Изменение прав доступа производится с помощью команды chmod. Для задания файлу прав только чтения, воспользуемся командой: chmod a=r test.txt.
[user@localhost ~]$ chmod a=r test.txt
Для лишения всех прав группы владельцев и остальных пользователей воспользуемся командой: chmod go-rwx test.txt.
[user@localhost ~]$ chmod go-rwx test.txt
Сценарий рассмартривает процесс повышения превилегий пользователя и переход в режим суперпользователя.
Начальные условия: Командная строка после входа в систему простого пользователя.
Некоторые исполняемые программы обладают специальным suid-битом, например, программа passwd, рассмотрим права доступа к этому исполняемому файлу: ls -l /bin/passwd.
[user@localhost ~]$ ls -l /bin/passwd -rws--x--x 1 root root 28660 Янв 8 13:05 /bin/passwd*
Запускаются suid-программы от имени владельца файла. В этом можно убедиться, если запустить команду passwd, а затем на другом терминале сделать ps aux | grep passwd:
[user@localhost ~]$ passwd Changing password for user (current) UNIX password: ... [user@localhost ~]$ ps aux | grep passwd root 12937 0.0 0.1 3228 1012 pts/2 S+ 23:28 0:00 passwd user 12989 0.0 0.1 2740 748 pts/3 R+ 23:28 0:00 grep passwd
Для длительной работы в режиме суперпользователя обычно используют
команду su. Используем
параметр -
, чтобы проинициализировать
окружение суперпользователя: su -. Для того, чтобы перейти
в режим суперпользователя, необходимо знать его пароль.
[user@localhost ~]$ su - Password: [root@localhost ~]#
При этом запускается новая командная оболочка, уже с новыми привелегиями.
Для завершения сеанса суперпользователя необходимо воспользоваться командой exit:
[root@localhost ~]# exit logout [user@localhost ~]$
В сценарии показано, где и каким образом хранится информация о пользователях системы.
Начальные условия: Командная строка после входа в систему.
Данные о зарегистрированных в системе пользователях хранятся в
файле /etc/passwd
. Рассмотрим его содержимое (cat
/etc/passwd):
[user@localhost ~]$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/bin/false daemon:x:2:2:daemon:/sbin:/bin/false adm:x:3:4:adm:/var/adm:/bin/false ...
Подробную информацию о формате этого файла можно получить на соответствующей странице руководств: man 5 passwd.
Аналогичным образом данные о группах хранятся в
файле /etc/group
. Рассмотрим его
содержимое при помощи команды cat
/etc/group:
[user@localhost ~]$ cat /etc/group root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin,adm ...
Сценарий описывает администрирование пользователей системы: добавление новых пользователей, удаление существущих, изменение параметров пользователей. Такие изменения учётных записей пользователей доступны только суперпользователю.
Начальные условия: Командная строка после входа в систему суперпользователя.
Для добавления новых пользователей используется команда useradd. При этом в качестве параметров можно указать домашний каталог и командную оболочку пользователя: useradd testuser -d /home/users/testuser -s /bin/sh. Результат можно увидеть следующим образом: cat /etc/passwd | grep testuser.
[root@localhost ~]# useradd testuser -d /home/testuser -s /bin/sh [root@localhost ~]# cat /etc/passwd | grep testuser testuser:x:1003:1003::/home/testuser:/bin/sh
С помощью команды passwd можно задать пароль для нового пользователя: passwd testuser.
[root@localhost ~]# passwd testuser New UNIX password: Retype new UNIX password: passwd: пароль успешно обновлён
Изменять параметры учётной записи можно редактированием
файла /etc/passwd
, однако более корректным способом
является использование команды usermod. Например,
изменение командной оболочки пользователя
на /bin/false
приведёт к невозможности его входа в
систему: usermod -s /bin/false testuser.
[root@localhost ~]# usermod -s /bin/false testuser
Удаление пользователя производится с помощью команды userdel: userdel testuser.
[root@localhost ~]# userdel testuser