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

Сценарий: Вход в систему и завершение сеанса

Сценарий посвящен изучению процесса аутентификации в UNIX.

Начальные условия: Приглашение входа в систему.

  1. Для входа в систему необходимо ввести логин и пароль пользователя. При этом символы вводимого пароля не отображаются.

    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), пользователю вместо командной строки предоставляется графический итерфейс аутентификации.

  2. Для завершения сеанса работы в командной строке необходимо ввести команду exit:

    [user@localhost ~]$ exit

    Благодаря свойствам командной оболочки UNIX, этого же эффекта можно добиться нажатием Ctrl+D (см. раздел «Управляющие символы»).

Сценарий: Изучение базовых прав доступа

Сценарий рассматривает базовые права доступа в UNIX, их просмотр и изменения.

Начальные условия: Командная строка после входа в систему.

  1. Для просмотра прав доступа можно использовать команду 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

    Особый интерес представляют: первая колонка (права доступа), третья и четвётрая – владелец и группа владельцев соответственно.

  2. Рассмотрим исполняемый файл ls -l /bin/bash.

    [user@localhost ~]$ ls -l /bin/bash
    -rwxr-xr-x  1 root root 746544 Дек 21 13:40 /bin/bash*

    Исполняемые файлы в UNIX определяются наличием специального бита прав доступа.

  3. Для каталога права на исполнение трактуются по-другому. Рассмотрим права каталога /tmp (ls -ld /tmp):

    [user@localhost ~]$ ls -ld /tmp
    drwxrwxrwt  26 root root 5168 Дек 22 20:04 /tmp

    Каталог имеет дополнительный sticky-бит, определяющий права на создание и удаление файлов в нем.

  4. Попытка изменения файла при недостатке прав приводит к ошибке доступа. Например, команда rm /bin/bash:

    [user@localhost ~]$ rm /bin/bash
    rm: удалить защищенный от записи обычный файл `/bin/bash'? y
    rm: невозможно удалить `/bin/bash': Permission denied

    Для всех файлов, на которые данный пользователь не имеет права записи, команда rm может выводить предупреждение об удалении.

  5. Изменение прав доступа производится с помощью команды chmod. Для задания файлу прав только чтения, воспользуемся командой: chmod a=r test.txt.

    [user@localhost ~]$ chmod a=r test.txt

  6. Для лишения всех прав группы владельцев и остальных пользователей воспользуемся командой: chmod go-rwx test.txt.

    [user@localhost ~]$ chmod go-rwx test.txt

Сценарий: Переход в режим суперпользователя

Сценарий рассмартривает процесс повышения превилегий пользователя и переход в режим суперпользователя.

Начальные условия: Командная строка после входа в систему простого пользователя.

  1. Некоторые исполняемые программы обладают специальным suid-битом, например, программа passwd, рассмотрим права доступа к этому исполняемому файлу: ls -l /bin/passwd.

    [user@localhost ~]$ ls -l /bin/passwd
    -rws--x--x  1 root root 28660 Янв  8 13:05 /bin/passwd*

  2. Запускаются 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

  3. Для длительной работы в режиме суперпользователя обычно используют команду su. Используем параметр -, чтобы проинициализировать окружение суперпользователя: su -. Для того, чтобы перейти в режим суперпользователя, необходимо знать его пароль.

    [user@localhost ~]$ su -
    Password:
    [root@localhost ~]#

    При этом запускается новая командная оболочка, уже с новыми привелегиями.

  4. Для завершения сеанса суперпользователя необходимо воспользоваться командой exit:

    [root@localhost ~]# exit
    logout
    [user@localhost ~]$

Сценарий: Изучение базы данных пользователей

В сценарии показано, где и каким образом хранится информация о пользователях системы.

Начальные условия: Командная строка после входа в систему.

  1. Данные о зарегистрированных в системе пользователях хранятся в файле /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.

  2. Аналогичным образом данные о группах хранятся в файле /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
    ...

Сценарий: Добавление и удаление пользователей

Сценарий описывает администрирование пользователей системы: добавление новых пользователей, удаление существущих, изменение параметров пользователей. Такие изменения учётных записей пользователей доступны только суперпользователю.

Начальные условия: Командная строка после входа в систему суперпользователя.

  1. Для добавления новых пользователей используется команда 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

  2. С помощью команды passwd можно задать пароль для нового пользователя: passwd testuser.

    [root@localhost ~]# passwd testuser
    New UNIX password:
    Retype new UNIX password:
    passwd: пароль успешно обновлён

  3. Изменять параметры учётной записи можно редактированием файла /etc/passwd, однако более корректным способом является использование команды usermod. Например, изменение командной оболочки пользователя на /bin/false приведёт к невозможности его входа в систему: usermod -s /bin/false testuser.

    [root@localhost ~]# usermod -s /bin/false testuser

  4. Удаление пользователя производится с помощью команды userdel: userdel testuser.

    [root@localhost ~]# userdel testuser

Задания для самоподготовки

  1. Выясните, чем отличается реакция операционной системы (выводимое сообщение) на различные ошибки аутентификации (например, неправильный пользователь, неверный пароль и т. д.).
  2. Сравните права доступа к каталогам /bin и /tmp. Какие операции сможет совершать в них простой пользователь?
  3. Создайте текстовый файл и задайте права на него таким образом, чтобы он мог просматриваться только владельцем и никем не мог редактироваться.
  4. Что смогут делать другие пользователями с файлами в домашнем каталоге пользователя, если он задаст всем остальным пользователям право на запись в каталог, но удалит право исполнения на неё?
  5. Найдите все исполняемые файлы с установленным suid-битом.
  6. Получите имена всех пользователей системы, у которых в качестве командной оболочки используется программа /bin/false.