Я знаю о «неиспользовании 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, затем от моего пользователя с помощью одной команды. Есть ли способ сделать это?
Кстати, выход && exit не работает, потому что он выходит из оболочки и не обрабатывает остальную часть команды
josh@ubuntu:~$ sudo su -
root@ubuntu:~# exit && exit
logout
josh@ubuntu:~$
sudo su
, это бессмысленно и просто запускает дополнительный процесс. Используйтеsudo -i
, если нужно, вместо этого.sudo -i
для получения корневой оболочки. Что касается ssh, вы можете настроить ssh, чтобы разрешить вход с правами root, лично я использую опции «без пароля» для root и ssh-ключей er kerberos. Это сохраняет корневую учетную запись заблокированной для паролей.exit
выходитsu
, второй выходит из системы. Разве это не то, что вы хотели сделать?Ответы:
Технически никто не ответил на ваш вопрос. Я ценю, что они думают, что их путь лучше (вероятно, есть), но вот другой подход (на случай, если у вас будет
su -
какое-то время и возникнет та же проблема);$ sudo su -;exit
# echo "do things"
# exit
Когда вы выходите из root, исходный пользователь также выходит из системы, так как он продолжает свою последнюю команду.
Ура!
источник
Просто делать
Теперь корневая оболочка заменяет стандартную, и при выходе вы выходите из «обоих» (неправильно сформулировано, так как первая оболочка перестает существовать с
exec
).Смотреть:
Я часто использую его для
ssh
терминала -ed: используйте,exec ssh whatever
и когда вы выходите, терминал закрывается.источник
когда вы становитесь пользователем root, просто наберите ::
когда вы выйдете из корня, ваша оболочка автоматически закроется. Вы можете экспортировать эту команду, чтобы сделать ее постоянной.
источник