Sudo cd name_of_dir
を使用しようとしましたが、エラーメッセージが表示されます。
Sudo: cd: command not found
700の許可を持つ別のユーザーが所有するディレクトリを入力する他の方法はありますか?
cd
コマンドがシェルに組み込まれているため、Sudo cd
は機能しません。つまり、rootになってからこのコマンドを実行するということです。 rootになり、Sudoの後のコマンドが検索されますが、検索するcd
コマンドはありません。
使用する方法は、ディレクトリを所有するユーザーに切り替えることです。パーミッション700
は、「所有者が読み取り、書き込み、実行できる」ことを意味します。
したがって、rootがディレクトリSudo -i
を所有している場合、パスワードとcd {dir}
が唯一の正しい方法です。他の誰かがディレクトリを所有している場合、1番目の方法を使用できますが、su {username}
を使用してそのユーザーに変更し、そのユーザーとしてcd
を使用することもできます。
Sudo -i
「ルートコンソール」を開いてから
cd /path/to/directory
(cd
はシェル組み込みコマンドであるため、Sudoターゲットにはできません)
ルートディレクトリを開くには、ルートシェルを実行します。例:
Sudo su
# cd /root
他の人が指摘したように、それは組み込みのシェルです:
~ % which cd
cd: Shell built-in command
それでは、どうしてシェル自体をスードしませんか?
~ % Sudo $Shell -c "cd name_of_dir"
次の方法でも、rootユーザーに昇格できます。
Sudo -s
次に、次のような通常のユーザーを許可しないディレクトリに移動します。
cd /root
または
cd /var/lib/
その後、そこに入力したら、次のように入力します。
exit
Rootユーザー特権からログアウトします。
自分をルートとして昇格させるために、次のように&&
演算子で2つのコマンドを組み合わせることもできます。この演算子は、現在のコマンドが正常に実行され、次のコマンドの実行が許可された場合にのみ実行シーケンスも維持します:
Sudo -s && cd /var/lib
または
Sudo -s && cd /root
su
への議論またはsu
への議論に関する限り、それはばかげていると思います。 su
はUbuntuの宗教に反するものであり、不用意にやることではありません。あなたがrootならrm -rf *
ができることは驚くべきことです。ただし、コマンドラインインターフェイス(CLI)に慣れていて、システムレベルのタスクを実行する必要がある場合は、su
を使用しない理由はありません。誰もSudo
の使用について言及していないディストリビューションをいくつか使用しました。それは、あなたがどんな種類の仕事をしていて、どの方法が最も快適かという問題です。私は両方を使用します。