Я знаю о «неиспользовании sudo su -
» и т. Д. Но давайте будем честными, почти все мы делаем это.
Итак, вот в чем проблема. У нас не может быть разрешен вход с правами суперпользователя, поэтому мы должны войти в систему как ssh, а затем зайти под root.
Вот дерево процессов:
1 7897 7826 7826 ? -1 S 1000 0:00 sshd: josh@pts/0
7897 7898 7898 7898 pts/0 8182 Ss 1000 0:00 \_ -bash
7898 7990 7990 7898 pts/0 8182 S 0 0:00 \_ sudo su -
7990 7991 7990 7898 pts/0 8182 S 0 0:00 \_ su -
7991 7992 7992 7898 pts/0 8182 S 0 0:00 \_ -su
7992 8182 8182 7898 pts/0 8182 R+ 0 0:00 \_ ps axjf
Я хотел бы выйти из root, затем от моего пользователя с помощью одной команды. Есть ли способ сделать это?
BTW выход && exit не работает, потому что он выходит из оболочки и не обрабатывает остальную часть команды
josh@ubuntu:~$ sudo su -
root@ubuntu:~# exit && exit
logout
josh@ubuntu:~$
Просто сделайте
exec sudo -i
Теперь, корневая оболочка заменяет по умолчанию, и когда Вы выходите, Вы выходите из "обоих" (неправильно сформулированный, начиная с первой остановки оболочки, существующей с exec
).
Взгляд:
[romano:~] % ssh pern
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-28-generic x86_64)
* Documentation: https://help.ubuntu.com/
[romano@pern:~] % exec sudo -i
[sudo] password for romano:
root@pern:~# whoami
root
root@pern:~# pstree -a -s -l -p -u $
init,1
└─sshd,1140 -D
└─sshd,17450
└─sshd,17570,romano
└─sudo,17571,root -i
└─bash,17665
└─pstree,17678 -a -s -l -p -u 17665
root@pern:~# exit
logout
Connection to pern.XXX.XXX.XXX closed.
[romano:~] %
я использую его много, чтобы иметь ssh
- терминал редактора: используйте exec ssh whatever
и когда Вы выйдете, терминальные завершения.
Технически, никто не ответил на Ваш вопрос. Я ценю, что они думают, что их путь лучше (вероятно), но вот другой подход (в случае, если Вы имеете к su -
некоторое время и имеете ту же проблему);
$ sudo su -;exit
# echo "do things"
# exit
, Когда Вы выходите от корня, оригинальный пользователь также выйдет из системы, так как это продолжается, это - последняя команда.
За Ваше здоровье!
когда Вы станете пользователем root, просто введите::
sudo -s && exit
, когда Вы выйдете от корня, Вы окружаете, автоматически закроется. можно экспортировать эту команду для создания этого постоянным.
echo "alias mysudo='sudo -s; exit'" >> ~/.bashrc && source ~/.bashrc