Что не так со следующим?
[cloudera@localhost zookeeper]$ sudo su - zookeeper
[cloudera@localhost zookeeper]$ whoami
cloudera
В ответ на один из комментариев:
[cloudera@localhost zookeeper]$ cat /etc/passwd | grep zook
zookeeper:x:492:488:ZooKeeper:/var/run/zookeeper:/bin/false
[cloudera@localhost zookeeper]$ cat /etc/passwd | grep cloudera
cloudera-scm:x:497:498:Cloudera Manager:/var/run/cloudera-scm-server:/sbin/nologin
cloudera:x:500:500::/home/cloudera:/bin/bash
Вы пробуете к su
пользователю, который является оболочкой, /bin/false
. /bin/false
всегда выходы с кодом 1, таким образом, Вы никогда не что пользователь:
$ sudo su - dnsmasq
$ echo $?
1
, Если Вы хотите запустить оболочку с такого отключенного пользователя, используйте sudo
:
$ sudo -u dnsmasq /bin/bash
$ whoami
dnsmasq
Примечание, которое dnsmasq
обычно имеет /sbin/nologin
(более вежливая версия false
) как оболочка, таким образом, тот же принцип применяется.
Hmmm, sudo su - [user]
, кажется, работает здесь,
$ sudo su - jerk
jerk ~ $ whoami
jerk
даже при том, что в su странице справочника говорится, что -
должна быть последняя опция
When - is used, it must be specified as the last su option. The other forms (-l
and --login) do not have this restriction.
, Если я пробую это, я получаю эти ошибки, но это все еще работает для входа в систему как [пользователь]:
$ sudo su [user] -
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
обычно Делает работу sudo? Возможно, это не работает...?