web-dev-qa-db-ja.com

700の許可があり、自分が所有していない場合、「cd」コマンドを使用してディレクトリを入力する方法は?

Sudo cd name_of_dirを使用しようとしましたが、エラーメッセージが表示されます。

Sudo: cd: command not found

700の許可を持つ別のユーザーが所有するディレクトリを入力する他の方法はありますか?

81
Bakhtiyor

cdコマンドがシェルに組み込まれているため、Sudo cdは機能しません。つまり、rootになってからこのコマンドを実行するということです。 rootになり、Sudoの後のコマンドが検索されますが、検索するcdコマンドはありません。

使用する方法は、ディレクトリを所有するユーザーに切り替えることです。パーミッション700は、「所有者が読み取り、書き込み、実行できる」ことを意味します。

したがって、rootがディレクトリSudo -iを所有している場合、パスワードとcd {dir}が唯一の正しい方法です。他の誰かがディレクトリを所有している場合、1番目の方法を使用できますが、su {username}を使用してそのユーザーに変更し、そのユーザーとしてcdを使用することもできます。

104
Rinzwind

Sudo -i

「ルートコンソール」を開いてから

cd /path/to/directory

cdはシェル組み込みコマンドであるため、Sudoターゲットにはできません)

40
Vojtech Trefny

ルートディレクトリを開くには、ルートシェルを実行します。例:

Sudo su
# cd /root
17
Takkat

他の人が指摘したように、それは組み込みのシェルです:

~ % which cd
cd: Shell built-in command

それでは、どうしてシェル自体をスードしませんか?

~ % Sudo $Shell -c "cd name_of_dir"
10
Daniel Bauke

次の方法でも、rootユーザーに昇格できます。

Sudo -s

次に、次のような通常のユーザーを許可しないディレクトリに移動します。

cd /root

または

cd /var/lib/

その後、そこに入力したら、次のように入力します。

exit

Rootユーザー特権からログアウトします。

自分をルートとして昇格させるために、次のように&&演算子で2つのコマンドを組み合わせることもできます。この演算子は、現在のコマンドが正常に実行され、次のコマンドの実行が許可された場合にのみ実行シーケンスも維持します:

Sudo -s && cd /var/lib

または

Sudo -s && cd /root
4
Vicky Dev

suへの議論またはsuへの議論に関する限り、それはばかげていると思います。 suはUbuntuの宗教に反するものであり、不用意にやることではありません。あなたがrootならrm -rf *ができることは驚くべきことです。ただし、コマンドラインインターフェイス(CLI)に慣れていて、システムレベルのタスクを実行する必要がある場合は、suを使用しない理由はありません。誰もSudoの使用について言及していないディストリビューションをいくつか使用しました。それは、あなたがどんな種類の仕事をしていて、どの方法が最も快適かという問題です。私は両方を使用します。

0
Joe