Библиотека сайта rus-linux.net
Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей
Оригинал: Linux FundamentalsАвтор: Paul Cobbaut
Дата публикации: 16 октября 2014 г.
Перевод: А.Панин
Дата перевода: 22 декабря 2014 г.
Глава 25. Вводная информация об учетных записях пользователей
По прочтении данной небольшой главы вы научитесь идентифицировать свою учетную запись на компьютере под управлением системы Unix с помощью таких команд, как who am i
, id
и других.
Из второй части главы вы узнаете о том, как представиться другим пользователем с помощью команды su
.
Кроме того, вы узнаете о том, как запустить программу от лица другого пользователя с помощью команды sudo
.
Утилита whoami
whoami
сообщит вам имя вашей учетной записи.
[paul@centos7 ~]$ whoami paul [paul@centos7 ~]$
Утилита who
who
предоставит вам информацию о том, какие пользователи осуществили вход в систему.
[paul@centos7 ~]$ who root pts/0 2014-10-10 23:07 (10.104.33.101) paul pts/1 2014-10-10 23:30 (10.104.33.101) laura pts/2 2014-10-10 23:34 (10.104.33.96) tania pts/3 2014-10-10 23:39 (10.104.33.91) [paul@centos7 ~]$
Команда who am i
who
в рамках команды who am i
будет выведена только одна строка с информацией о вашей текущей сессии.
[paul@centos7 ~]$ who am i paul pts/1 2014-10-10 23:30 (10.104.33.101) [paul@centos7 ~]$
Утилита w
w
предоставляет информацию о пользователях, которые осуществили вход в систему, а также о том, чем они занимаются.
[paul@centos7 ~]$ w 23:34:07 up 31 min, 2 users, load average: 0.00, 0.01, 0.02 USER TTY LOGIN@ IDLE JCPU PCPU WHAT root pts/0 23:07 15.00s 0.01s 0.01s top paul pts/1 23:30 7.00s 0.00s 0.00s w [paul@centos7 ~]$
Утилита id
id
предоставит вам информацию о вашем идентификаторе пользователя, основном идентификаторе группы, а также выведет список групп, в которых вы состоите.
paul@debian7:~$ id uid=1000(paul) gid=1000(paul) группы=1000(paul)
SELinux
.
[root@centos7 ~]# id uid=0(root) gid=0(root) группы=0(root) контекст=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Утилита su для работы от лица другого пользователя
su
позволяет пользователю запустить командную оболочку от лица другого пользователя.
laura@debian7:~$ su tania Password: tania@debian7:/home/laura$
Утилита su для работы от лица пользователя root
su
для работы от лица пользователя root
в том случае, если знаете пароль пользователя root
.
laura@debian7:~$ su root Password: root@debian7:/home/laura#
Утилита su для пользователя root
root
. Пользователь root
может работать от лица любого существующего в системе пользователя, не зная пароля этого пользователя.
root@debian7:~# id uid=0(root) gid=0(root) группы=0(root) root@debian7:~# su - valentina valentina@debian7:~$
Команда su - $имя_пользователя
su
осуществляет сохранение переменных окружения командной оболочки. Для того, чтобы работать от лица другого пользователя в окружении командной оболочки целевого пользователя, следует применять команду su -
с последующим вводом имени целевого пользователя.
root@debian7:~# su laura laura@debian7:/root$ exit exit root@debian7:~# su - laura laura@debian7:~$ pwd /home/laura
Команда su -
su
или su -
не следует имени пользователя, считается, что целевым пользователем является пользователь root
.
tania@debian7:~$ su - Password: root@debian7:~#
Запуск приложения от лица другого пользователя
Утилита sudo позволяет пользователю осуществлять запуск программ с привилегиями других пользователей. Для того, чтобы данная утилита работала, системный администратор должен отредактировать соответствующим образом файл /etc/sudoers
. Данная утилита может оказаться полезной в случае возникновения необходимости делегирования административных задач другому пользователю (без передачи этому пользователю пароля пользователя root).
В примере ниже показана методика использования утилиты sudo
. Пользователь paul
получил право запускать утилиту useradd
с привилегиями пользователя root
. Это позволило пользователю paul
создавать учетные записи новых пользователей в системе, не работая от лица пользователя root
и не зная пароля пользователя root
.
paul
команды завершилось неудачей.
paul@debian7:~$ /usr/sbin/useradd -m valentina useradd: Отказано в доступе useradd: cannot lock /etc/passwd; try again later.
sudo
данная команда работает.
paul@debian7:~$ sudo /usr/sbin/useradd -m valentina [sudo] password for paul: paul@debian7:~$
Утилита visudo
visudo
перед редактированием файла /etc/sudoers
. Методика редактирования файла sudoers
выходит за пределы набора тем, рассматриваемых в рамках данной книги.
paul@rhel65:~$ apropos visudo visudo (8) - edit the sudoers file paul@rhel65:~$
Команда sudo su -
root
изначально не установлен. Это значит, что не имеется возможности войти в систему под именем пользователя root
(по сути это дополнительная мера безопасности). Для выполнения задач от лица пользователя root
первому пользователю системы предоставляется возможность использования утилиты sudo
благодаря добавлению специальной записи в файл /etc/sudoers
. Фактически все пользователи, являющиеся членами группы admin, также могут использовать утилиту sudo для исполнения команд от лица пользователя root.
root@laika:~# grep admin /etc/sudoers # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL
sudo su -
и работать от лица пользователя root без ввода пароля пользователя root. При этом команда sudo требует ввода пароля вызвавшего ее пользователя. Исходя из вышесказанного, можно сделать вывод о том, что запрос пароля из примера ниже выполняется утилитой sudo, а не su.
paul@laika:~$ sudo su - Password: root@laika:~#
Журналирование неудачных попыток использования утилиты sudo
sudo
без авторизации приведет к выводу строгого предупреждения.
paul@rhel65:~$ sudo su - We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for paul: paul is not in the sudoers file. This incident will be reported. paul@rhel65:~$
/var/log/secure
в случае использования дистрибутива Red Hat (или /var/log/auth.log
в случае использования дистрибутива Debian).
root@rhel65:~# tail /var/log/secure | grep sudo | tr -s ' ' Apr 13 16:03:42 rhel65 sudo: paul : user NOT in sudoers ; TTY=pts/0 ; PWD=\ /home/paul ; USER=root ; COMMAND=/bin/su - root@rhel65:~#
Практическое задание: вводная информация об учетных записях пользователей
-
1. Выполните команду, которая выведет информацию только об имени вашей учетной записи, благодаря наличию которой вы осуществили вход в систему.
-
2. Выведите список всех пользователей, осуществивших вход в систему.
-
3. Выведите список всех пользователей, осуществивших вход в систему, включая информацию о командах, которые они выполняют в данный момент.
-
4. Выведите информацию об имени вашей учетной записи и вашем уникальном идентификаторе пользователя (userid).
-
5. Используйте утилиту
su
для перехода к использованию учетной записи другого пользователя (если вы не используете учетную запись пользователя root, вам потребуется пароль от учетной записи другого пользователя). После этого вернитесь к использованию предыдущей учетной записи. -
6. А теперь используйте команду
su -
для перехода к использованию учетной записи другого пользователя и отметьте различия.Учтите, что команда
su -
переместит вас в домашнюю директорию другого пользователя (в примере это пользовательTania
). -
7. Попробуйте создать новую учетную запись пользователя (используя для этого вашу обычную учетную запись). Попытка должна завершиться неудачей. (Подробности процесса добавления учетных записей пользователей описаны в следующей главе.)
-
8. А теперь попытайтесь сделать то же самое, но добавив вызов утилиты
sudo
перед вашей командой.
Корректная процедура выполнения практического задания: вводная информация об учетных записях пользователей
-
1. Выполните команду, которая выведет информацию только об имени вашей учетной записи, благодаря наличию которой вы осуществили вход в систему.
-
laura@debian7:~$ whoami laura laura@debian7:~$ echo $USER laura
-
2. Выведите список всех пользователей, осуществивших вход в систему.
-
laura@debian7:~$ who laura pts/0 2014-10-13 07:22 (10.104.33.101) laura@debian7:~$
-
3. Выведите список всех пользователей, осуществивших вход в систему, включая информацию о командах, которые они выполняют в данный момент.
-
laura@debian7:~$ w 07:47:02 up 16 min, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.104.33.101 07:30 6.00s 0.04s 0.00s w root pts/1 10.104.33.101 07:46 6.00s 0.01s 0.00s sleep 42 laura@debian7:~$
-
4. Выведите информацию об имени вашей учетной записи и вашем уникальном идентификаторе пользователя (userid).
-
laura@debian7:~$ id uid=1005(laura) gid=1007(laura) группы=1007(laura) laura@debian7:~$
-
5. Используйте утилиту
su
для перехода к использованию учетной записи другого пользователя (если вы не используете учетную запись пользователя root, вам потребуется пароль от учетной записи другого пользователя). После этого вернитесь к использованию предыдущей учетной записи. -
laura@debian7:~$ su tania Password: tania@debian7:/home/laura$ id uid=1006(tania) gid=1008(tania) группы=1008(tania) tania@debian7:/home/laura$ exit laura@debian7:~$
-
6. А теперь используйте команду
su -
для перехода к использованию учетной записи другого пользователя и отметьте различия.Учтите, что команда
su -
переместит вас в домашнюю директорию другого пользователя (в примере это пользовательTania
). -
laura@debian7:~$ su - tania Password: tania@debian7:~$ pwd /home/tania tania@debian7:~$ logout laura@debian7:~$
-
7. Попробуйте создать новую учетную запись пользователя (используя для этого вашу обычную учетную запись). Попытка должна завершиться неудачей. (Подробности процесса добавления учетных записей пользователей описаны в следующей главе.)
-
laura@debian7:~$ useradd valentina -su: useradd: command not found laura@debian7:~$ /usr/sbin/useradd valentina useradd: Отказано в доступе. useradd: cannot lock /etc/passwd; try again later.
Вполне возможно, что утилита
useradd
будет расположена по пути/sbin/useradd
в файловой системе вашего компьютера. -
8. А теперь попытайтесь сделать то же самое, но добавив вызов утилиты
sudo
перед вашей командой. -
laura@debian7:~$ sudo /usr/sbin/useradd valentina [sudo] password for laura: laura is not in the sudoers file. This incident will be reported. laura@debian7:~$
Обратите внимание на то, что пользователь
laura
не имеет разрешения на использование утилитыsudo
в данной системе.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Глава 24. Дополнительная информация о сценариях | Глава 26. Управление учетными записями пользователей |