Основы операционной системы UNIX

Изменение действующего идентификатора пользователя


Команда su предназначена для временного изменения действующего (эффективного) идентификатора пользователя и сеанса пользователя. Она имеет следующий синтаксис:

su [-] [регистрационное_имя [аргументы ...]

Команда su запрашивает пароль (у всех пользователей, кроме root, и если пароль существует). В случае соответствия пароля создается новый сеанс от имени нового пользователя. В следующем примере сохраняется среда пользователя с именем user01, включая текущий рабочий каталог и переменные среды:

$ logname user01 $ su informix Password: $ logname user01 $ echo $LOGNAME user01 $ set HOME=/home/user01 LOGNAME=user01 MAIL=/var/mail/user01 PWD=/home/user01 ... $ exit $

Если введена команда su - регистрационное_имя, то система предоставляет пользователю командный интерпретатор и среду в соответствии с указанным регистрационным именем:

$ logname user01 $ su - informix Password: $ logname user01 $ echo $LOGNAME informix $ set HOME=/home3/informix LOGNAME=informix MAILPATH=/usr/mail/informix PWD=/home3/informix ... $ exit $

Команда в формате su регистрационное_имя -c аргументы воспринимает аргумент как команду, которую необходимо выполнить с регистрационным именем нового пользователя. Для выполнения команды запрашивается пароль нового пользователя и используются его права доступа. После завершения выполнения происходит возврат в среду пользователя, вызвавшего команду su. Таким образом, если пользователю, например, надо удалить файл пользователя с регистрационным именем new_user, необходимо выполнить команду:

$ su new_user -c "rm file" Password: $

Команда su без указания регистрационного имени позволяет получить права пользователя root. При этом необходимо знать и правильно ввести пароль пользователя root. Если пользователь работает под регистрационным именем root, вводить пароль при изменении действующего идентификатора не нужно.



Содержание раздела