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


9

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

sudo su - root

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

回答:


16

まず、を使用しないでくださいsudo su。それはそれだけだ、間違っている、または危険か何かではない洗練さと無意味。2つの別々のプログラムを実行して、1つのプログラムで簡単に処理されるジョブを実行します。シェルをルートとして起動したい場合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です。


1
sudo -sログインシェルではないため、ターゲットユーザーのプロファイルが実行されない可能性があります。したがって、おそらく本当の問題はsudo、ディレクトリを変更せずに、でログインシェルを取得する方法があるかどうかです。おそらく違います。
Barmar

@Barmarいいえ、ありsudo -iません。-sOPがログインシェルを必要としていないため(私はに移動したくありませんでした$HOME)、私は使用しました。ログインシェルが必要な場合は、を使用してくださいsudo -i。私はの環境の比較を掲載しましたsudo -isu -sudo -sそしてsu私の質問では、ここであなたが見てしたい場合。
terdon

ちょうど今、このコマンドsudo -sで非常に悪い経験をしました。それでもディレクトリは変更されませんが、完全なrootアクセスは与えられませんでした。一部のファイルはディレクトリに存在していましたが、この方法では通常のユーザーおよびrootユーザーとしてそれらを表示できませんでした(sudo -s)。次に、古い方法(sudo su-root)を使用してディレクトリに移動すると、ファイルが表示されました。sudo -sでアクセスが制限されたのはなぜですか?
Hammad Hassan

@HammadHassanあなたが説明することが起こったはずの方法はありません。何か他のことが起こっているに違いない。ファイルが「見えない」とはどういう意味ですか?「ファイルを読み取ることができない」という意味ですか?おそらく暗号化を使用していますか?
terdon 2017

「見ることができない」とは、単純なコマンド「ls」を意味します。ファイルは表示されませんでした。暗号化はまったくありません。私のファイルはシンプルです。そして、これは本当に起こりました。
Hammad Hassan

8

これはとても簡単です。入力するだけ

sudo su

の代わりに

sudo su - root

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


9
これは間違いではありません。つまり、機能しますが、使用sudo suしてもあまり意味がありません。それsudo -sが目的です。なぜ多くのUbuntuチュートリアルが推奨するのか、私には理解できませんsudo su
terdon

@terdon私もそれを理解したことがありませんが、すべてのLinuxユーザーに広まっているようです。多分頭字語はそれをより思い出深いものにします。
Barmar

@Barmar個人的には、Ubuntuの世界でしか見たことがありません。ほとんどのLinuxシステムはデフォルトで通常のrootアカウントを持っているので、シェルが必要な場合su(単独で、no sudo)にします。ただし、Ubuntuはデフォルトでrootアカウントを無効にするため、これはsudo suごく自然に行われました。それは、明らかに、UNIXの世界のいくつかのコーナーでも同様ですが、Linuxでは、Ubuntuでしか見たことがありません。
terdon 2017年

@terdon私は何十年もそれを見てきました、私たちがどのディストリビューションを使用していたのかさえわかりません。私は現在の会社でDebianを使用しており、同僚もそれを使用しています。
Barmar 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.