'#Sudo touch newfile'を実行すると、ファイルはrootではなく自分が所有することを期待していました。これは、Sudoがユーザーにroot権限を与えているが、実際にはユーザーを切り替えないことを理解しているためです。
須藤が何であるかについて根本的な誤解がありますか?
Sudo
を使用する場合、スーパーユーザー(root)としてプログラムを実行するため、作成されるファイルはスーパーユーザーとして作成されます。
Mipadiが言ったことは、これら2つの「whoami」(「私は誰ですか?」)コマンドの出力を比較することで実証できます。
$須藤whoami
$ whoami
Sudo
(名前はsu "do"またはスーパーユーザー "do"に由来します)を使用すると、rootとしてコマンドを実行できます。ユーザーに異なる特権を与えることはありません。したがって、#Sudo touch newfile
を実行すると、コマンドtouch newfile
を実行したのはユーザーrootであり、それがnewfileがユーザーrootによって所有されている理由です。
詳細については、 Sudoページ を参照してください。
Sudoの「su」は「ユーザーの切り替え」と考えることができます。どのユーザーとして実行するかを指定しない場合、デフォルトでroot
になります。これは、同じくsuに関連付けられているスーパーユーザーです。
Sudo -u yourself touch newfile
ファイルをyourself
が所有する場合。
Sudo
がユーザーIDを変更しないという仮定は、セッションの残りの部分の観点からは正しいです。 su
+ touch newfile
+ exit
と考えてください。したがって、シェルでは自分自身を「維持」しますが、Sudo
は、別の有効なユーザーIDを使用して新しいプロセスでコマンドを実行します。