web-dev-qa-db-ja.com

ルートユーザーに切り替えるが、同じディレクトリにとどまる方法

最近Ubuntuに切り替えましたが、次のコマンドを使用してrootユーザーに切り替えると、1つのことがわかりました

Sudo su - root

ルートのホーム(/root)に直接移動するため、ファイルシステム(このコマンドを実行したディレクトリ)の場所を失います。現在のディレクトリを失うことなくルートに切り替える方法はありますか?

8
Hammad Hassan

まず、Sudo suを使用しないでください。それは間違っていないし、危険でも何でもありません、ただ 不正で無意味 です。 1つで簡単に処理されるジョブを実行するために、2つの別々のプログラムを実行しています。シェルをルートとして起動する場合は、Sudoが実行できます。

ログインシェル(Sudo su -)を開始する場合は、Sudo -iを使用します。ただし、これはログインシェルを起動するため、デフォルトでルートのホームディレクトリに移動します。

通常の非ログインシェルを開始するには、Sudo -sを使用できます。これにより、ルートシェルが起動し、実行元のディレクトリに保持されます。

terdon@tpad ~ $ pwd
/home/terdon
terdon@tpad ~ $ Sudo -i  ## changes directory
[root@tpad ~]# pwd
/root
[root@tpad ~]# logout
terdon@tpad ~ $ Sudo -s  ## doesn't change directory
[root@tpad terdon]# pwd
/home/terdon

したがって、ルートシェルを起動して同じディレクトリにとどまる方法は、Sudo -sです。

15
terdon

これは非常に簡単です。入力するだけ

Sudo su

の代わりに

Sudo su - root

これにより、ルートと同じフォルダに保持されます。

7
Joo Nice