- users
-
Выведет список всех зарегистрировавшихся пользователей. Она, до некоторой степени, является эквивалентом команды who -q.
- groups
-
Выводит список групп, в состав которых входит текущий пользователь. Эта команда соответствует внутренней переменной $GROUPS, но выводит названия групп, а не их числовые идентификаторы.
bash$ groups
bozita cdrom cdwriter audio xgrp
bash$ echo $GROUPS
501
- chown, chgrp
-
Команда chown изменяет владельца файла или файлов. Эта команда полезна в случаях, когда root хочет передать монопольное право на файл от одного пользователя другому. Обычный пользователь не в состоянии изменить владельца файла, за исключением своих собственных файлов.
root# chown bozo *.txt
Команда chgrp изменяет группу, которой принадлежит файл или файлы. Чтобы изменить группу, вы должны быть владельцем файла (при этом должны входить в состав указываемой группы) или привилегированным пользователем (root).
chgrp --recursive dunderheads *.data
# Группа "dunderheads" станет владельцем всех файлов "*.data"
#+ во всех подкаталогах текущей директории ($PWD) (благодаря ключу "--recursive").
- useradd, userdel
-
Команда useradd добавляет учетную запись нового пользователя в систему и создает домашний каталог для данного пользователя. Противоположная, по смыслу, команда userdel удаляет учетную запись пользователя из системы. и удалит соответствующие файлы.
|
Команда adduser является синонимом для useradd и, как правило, является обычной символической ссылкой на useradd.
|
- usermod
-
Модификация (изменение) характеристик пользовательского аккаунта. Может изменить пароль пользователя, членство в группах срок действия аккаунта и другие характеристики. С помощью этой команды можно заблокировать пользовательский пароль, что равносильно блокировке аккаунта.
- groupmod
-
Модификация (изменение) характеристик группы. С помощью этой команды можно изменить имя группы и/или ID группы.
- id
-
Команда id выводит идентификатор пользователя (реальный и эффективный) и идентификаторы групп, в состав которых входит пользователь. По сути -- выводит содержимое переменных $UID, $EUID и $GROUPS.
bash$ id
uid=501(bozo) gid=501(bozo) groups=501(bozo),22(cdrom),80(cdwriter),81(audio)
bash$ echo $UID
501
|
Команда id выводит эффективный иднетификатор только тогда, когда он отличается от реального.
|
См. также Пример 9-5.
- who
-
Выводит список пользователей, работающих в настоящий момент в системе.
bash$ who
bozo tty1 Apr 27 17:45
bozo pts/0 Apr 27 17:46
bozo pts/1 Apr 27 17:47
bozo pts/2 Apr 27 17:49
С ключом -m -- выводит
информацию только о текущем пользователе. Если число
аргументов, передаваемых команде, равно двум, то это
эквивалентно вызову who
-m, например who am
i или who The
Man.
bash$ who -m
localhost.localdomain!bozo pts/2 Apr 27 17:49
whoami -- похожа на who -m, но выводит только имя
пользователя.
bash$ whoami
bozo
- w
-
Выводит информацию о системе, список пользователей,
подключенных к системе и процессы, связанные с
пользователями. Это расширенная версия команды
who. Вывод от команды
w может быть передан по
конвейеру команде grep,
с целью поиска требуемого пользователя и/или
процесса.
bash$ w | grep startx
bozo tty1 - 4:22pm 6:41 4.47s 0.45s startx
- logname
-
Выводит имя текущего пользователя (из файла /var/run/utmp). Это довольно близкий эквивалент команды whoami.
bash$ logname
bozo
|
Команда logname выводит имя пользователя, зарегистрировавшегося в системе (залогировавшегося), в то время как whoami -- дает имя пользователя, под которым исполняется текущий процесс. Как я уже упоминал -- это не всегда одно и то же.
|
bash$ whoami
bozo
Однако...
bash$ su
Password: ......
bash# whoami
root
bash# logname
bozo
- su
-
Команда предназначена для запуска программы или
сценария от имени другого пользователя. su rjones -- запускает командную
оболочку от имени пользователя rjones.
Запуск команды su без
параметров означает запуск командной оболочки от имени
привилегированного пользователя root. См.
Пример A-17.
- sudo
-
Исполняет заданную команду от имени пользователя root
(или другого пользователя).
#!/bin/bash
# Доступ к "секретным" файлам.
sudo cp /root/secretfile /home/bozo/secret
Имена пользователей, которым разрешено использовать
команду sudo, хранятся в
файле /etc/sudoers.
- passwd
-
Устанавливает или изменяет пароль пользователя.
Команда passwd может
использоваться в сценариях, но это плохая практика.
Пример 13-1. Установка нового
пароля
#!/bin/bash
# setnew-password.sh: Не очень хорошая идея.
# Этот сценарий должен запускаться с правами root,
#+ а еще лучше -- вообще не запускать его.
ROOT_UID=0 # Root имеет $UID равный 0.
E_WRONG_USER=65 # Не root?
E_NOSUCHUSER=70
SUCCESS=0
if [ "$UID" -ne "$ROOT_UID" ]
then
echo; echo "Только root может запускать этот сценарий."; echo
exit $E_WRONG_USER
else
echo; echo "Вам не следовало бы запускать этот сценарий."
fi
username=bozo
NEWPASSWORD=security_violation
# Проверить -- есть ли такой пользователь.
cat /etc/passwd | grep -q "$username"
if [ $? -ne $SUCCESS ]
then
echo "Пользователь $username не найден."
echo "Пароль не был изменен."
exit $E_NOSUCHUSER
fi
echo "$NEWPASSWORD" | passwd --stdin "$username"
# Ключ '--stdin' указывает 'passwd'
#+ получить новый пароль со stdin (или из конвейера).
echo; echo "Пароль пользователя $username изменен!"
# Использование команды 'passwd' в сценариях крайне опасно.
exit 0
Команда passwd с
ключами -l, -u и -d выполняет
блокировку, разблокировку и удаление пароля пользователя.
Только root может вызывать команду passwd с этими ключами.
- ac
-
Выводит время работы пользователей, основываясь на
записях в файле /var/log/wtmp.
Это одна из утилит пакета GNU acct.
bash$ ac
total 68.08
- last
-
Выводит информацию о последних входах/выходах
пользователей в ситему, основываясь на записях в файле
/var/log/wtmp. Эта команда
может отображать информацию об удаленных (в смысле -- с
удаленного терминала) соединениях.
- newgrp
-
Позволяет сменить активную группу пользователя.
Пользователь остается в системе и текущий каталог не
изменяется, но права доступа к файлам вычисляются в
соответствии с новыми реальным и эффективным
идентификаторами группы. Эта команда используется
довольно редко, так как пользователь, обычно, является
членом нескольких групп.