私はubuntu 10.04を使用しています。
ターミナルで「sudo -s」を実行した後、プロンプトが
「XXX @ XXX」
に
「root @ XXX」、
ルート権限に変更されたようです。
私は「sudoを」コマンドのマニュアルを確認する場合でも、ここで、それは「「sudoを-s」の別の物語は、缶誰が何であるかを私に説明説明にsudo -s」を正確にやって?
sudo
あるほとんどのUbuntu固有の...
私はubuntu 10.04を使用しています。
ターミナルで「sudo -s」を実行した後、プロンプトが
「XXX @ XXX」
に
「root @ XXX」、
ルート権限に変更されたようです。
私は「sudoを」コマンドのマニュアルを確認する場合でも、ここで、それは「「sudoを-s」の別の物語は、缶誰が何であるかを私に説明説明にsudo -s」を正確にやって?
sudo
あるほとんどのUbuntu固有の...
回答:
sudo -s
$SHELL
環境変数で指定されたシェルをスーパーユーザー/ルートとして実行します。を使用して別のユーザーを指定できます-u
。
$SHELL
環境変数は、ユーザーのデフォルトのログインシェルへのパスが含まれています。デフォルトのシェルプログラムの実際の設定は通常にありetc/passwd
ます。現在のセッションで実行した内容によっては、$ SHELL変数に現在使用しているシェルプログラムが含まれていない場合があります。たとえば、zshを使用して自動的にログインしてからbashを呼び出した場合、$ SHELLはから変更されません/bin/zsh
。
現在のユーザーとシェルプログラムを表示します。
echo $(whoami) is logged in and shell is $0
whoami
ユーザーが作業しているユーザー名を出力します。$0
現在実行中のプログラム(この場合はシェルプログラム)の名前/パスが含まれます。マニュアルから:
sudoを使用すると、許可されたユーザーは、sudoersファイルで指定されているスーパーユーザーまたは別のユーザーとしてコマンドを実行できます。
-s Shell。設定されている場合はSHELL環境変数で指定されたシェル、またはpasswd(5)で指定されたシェルを実行します。
さらに深刻なのは、sudo -sがシェル環境変数を実行することです。変数を追加しなかったため、passwdで指定されたとおりに実行され、rootとして接続します。
-u
それを学ぶためにオプションの説明を読む必要があります。しかし、慣れていない人にとってはsudo
、彼らは見ることを知らないでしょう-u
。
スーパーユーザーからのこの投稿をご覧ください。
コマンド「su -s」と「sudo -s」の違いは何ですか?
ところで、投稿はスーパーユーザー(またはコメントにあるaskubuntu)に移動する必要があります!
sudo -sを使用すると、現在のIDの確認を求められる可能性があるため、事前に許可されているコマンド(/ etc / sudoersを参照)を実行できます。