ユーザーとしてsudoを実行するときにrootなどの権限が不十分なのはなぜですか?

ユーザーとしてsudoを実行するときにrootなどの権限が不十分なのはなぜですか?

以下は失敗します。

sudo -u chris ls /root
ls: cannot open directory '/root': Permission denied

次は成功します。

sudo ls /root
...

なぜそうなのか理解できません。 root権限を持つことに加えて、-u/ runningユーザーを指定されたパラメータに変更すると問題が解決されると仮定します。$USERこの行動の理由は何ですか?

答え1

sudo -u chrischrisrootの代わりにuserとして指定されたコマンドをUSER実行しますchris。したがって、chrisアクセスできない場合/rootsudo -u chris変更されません。

バラよりman sudo:

- ゆう ユーザー- ユーザー=ユーザー

デフォルトのターゲットユーザーではなくユーザーとしてコマンドを実行します(通常)。

sudoこれは特に「rootとして実行」ツールではなく、「他のユーザーまたはグループとして実行」ツールです。

答え2

Sudoコマンドは、デフォルトでは、ルートという特定のユーザーとして実行されます。この-uオプションは、この場合はrootではなくユーザーを選択するため、常にrootという意味ではありません。ルートになるには、コマンドsudo(たとえばsudo chown chris:chris ~)を実行するか、そのコマンドを使用してsuユーザーをrootに切り替えてから、シャットダウンを実行してユーザーに戻ることができます。

答え3

Sudo:S上層ゆうセレする ユーザーにシステムコマンドを実行する権限を付与する方法。

Chrisがホストならこれを試してください

sudo -h chris  ls -l /root

-h, --help ヘルプメッセージの表示と終了

-h、--host = hostホストでコマンドを実行する(プラグインがサポートしている場合)

drwxr-xr-x 2 root root 4096 Jan 18 23:52 Desktop
drwxr-xr-x 2 root root 4096 Jan 18 23:52 Documents
drwxr-xr-x 2 root root 4096 Jan 18 23:52 Downloads

              

または、「ルート」を削除することもできます。

sudo -u chris  ls -l /

左右右右右右右右1ゲンゲン 2018年1月7日 20:32 bin -> usr/bin

~からhttp://www.linfo.org/root_directory.html

「ルートディレクトリは、システム内の他のすべてのディレクトリとファイルを含み、次のように表示されるUnix系オペレーティングシステムのディレクトリです。スラッシュ( / )

この場合、ディレクトリがディレクトリツリー図「」の上にあるため、「ルート」という単語が使用されます。

関連情報