На сервере CentOS, где я вошел в систему через SSH как root, я делаю:
su otherusername
где "otherusername" - это имя другого пользователя, который существует.
Ничего не делает. После этого у меня все еще root. whoami возвращает root, любой файл, который я создаю, принадлежит root, то есть su просто не su.
Однако это не выдает никаких сообщений об ошибках. Если я попытаюсь выполнить su с недопустимым именем пользователя, появится сообщение об ошибке.
Что мне не хватает ??
Делает другое имя пользователя иметь действующую оболочку в /etc/passwd
?
какой su
выполняет процесс от имени другого пользователя. По умолчанию он выбирает то, что указано в последнем поле в /etc/passwd
для рассматриваемого пользователя. Обычно это оболочка типа /bin/sh
или /bin/bash
. Когда этот процесс завершается, вы попадаете обратно в исходную оболочку, в которой вы запустили, и которая принадлежит пользователю root.
Так далеко как su
обеспокоен, он успешно переключился на правильного пользователя, поэтому сообщение об ошибке не требуется. Затем он передает управление настроенной оболочке, выполнив это. Если эта оболочка похожа на /bin/false
, он просто сделает то, что /bin/false
всегда делает, что означает выход с 1 (ложный) status, возвращая вас к родительской оболочке, принадлежащей пользователю root. /bin/true
делает то же самое, но со статусом 0 (правда).
Другие псевдооболочки могут вести себя иначе. Например, /usr/sbin/nologin
эхо
Этот аккаунт в настоящее время недоступен.
перед выходом с 1.
Вы можете изменить настроенную оболочку для пользователя с usermod -s /bin/bash otherusername
как пользователь root.
Вы можете увидеть подобное сбивающее с толку поведение вокруг sudo
если вы используете его с cd
. Если вы обычный пользователь и не можете cd
в каталог, sudo cd directory
не будет печатать сообщение об ошибке, не изменит вас на root и не изменит ваш каталог.
Причина этого в том, что он запускает новую оболочку как root, меняет каталог на правильный каталог, а затем немедленно выходит, оставляя вас обратно в исходную оболочку в исходном каталоге.