「Sudo su -
を使用していない」などについては知っていますが、正直に言って、ほとんどすべての人がそれを行っています。
だから、ここに問題があります。 rootログインを有効にすることはできないため、ユーザーとしてsshでログインしてからsuで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
ルートを終了し、1つのコマンドでユーザーを終了したいと思います。これを行う方法はありますか?
BTW exit && exitは、シェルを終了し、残りのコマンドを処理しないため機能しません
josh@ubuntu:~$ Sudo su -
root@ubuntu:~# exit && exit
logout
josh@ubuntu:~$
技術的には、誰もあなたの質問に答えませんでした。彼らは彼らのやり方がより良いと考えていることを感謝しますが(おそらくそうです)、別のアプローチがあります(あなたがsu -
しばらくしなければならず、同じ問題がある場合);
$ Sudo su -;exit
# echo "do things"
# exit
ルートを終了すると、元のユーザーも最後のコマンドであるためログアウトします。
乾杯!
ただやる
exec Sudo -i
これで、ルートシェルがデフォルトのシェルに置き換わり、終了すると「both」を終了します(最初のシェルが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
- edターミナルを使用するためによく使用します。exec ssh whatever
を使用し、終了するとターミナルが閉じます。
ルートユーザーになったら、次のように入力します。
Sudo -s && exit
ルートを終了すると、シェルは自動的に閉じます。このコマンドをエクスポートして永続的にすることができます。
echo "alias mysudo='Sudo -s; exit'" >> ~/.bashrc && source ~/.bashrc