使用sudo -u

使用sudo -u

UserAとUserBという2人のユーザーがいます。 userBはuserAでいくつかのコマンドを実行する必要があります。これらのオプションを/etc/sudoers次のように指定しました。

userA ALL=(ALL) ALL
userB ALL=(vinoth) /sbin/fdisk

userBでこのコマンドを実行します。

sudo -u userA fdisk -l 

ユーザーBのパスワードを尋ねます。パスワードを入力した後、コマンドはfdisk出力を提供しません。

答え1

  1. 構成で次のことを許可します。

    • userA任意のユーザーで任意のコマンドを実行する
    • userBfdisk次に実行vinoth
  2. fdiskデフォルトではデバイスへのアクセス権が必要です。たとえば、root実行できませんuserA。実行できますが、fdisk -l結果は印刷されません。

  3. 最終sudoコマンドは遷移的ではありません。userBaccountを使用してアカウントでコマンドを実行すると、資格情報を使用して実行され、設定が定義されているというsudo -u userA <command>事実<command>userAこのコマンドには適用されません。userAsudoers


使用sudo -u

userBコマンドの実行を許可するには、userA次のように入力する必要がありますsudoers

userB ALL=(userA) /usr/bin/whoami

次に、シェルにログインし、userB次を実行します。

$ sudo -u userA whoami
userA

ただし、userA実行権限がある場合はwhoami実行されます。そうではありませんfdisk


fdisk一般ユーザーに対して有効

fdiskrootアカウント自体に限定されませんが、ディスクデバイス(/dev保存されていて一般ユーザーがアクセスできない場所)へのアクセスが必要です。ユーザーに実行権限を付与するには、fdisk次のようにします。

  1. sudoアカウントに対して有効にします。sudo fdisk -l効率的に運営するということは、fdiskアカウント別に運営することを意味しますroot

  2. diskグループにアカウントを追加すると、fdisk -lアカウントの資格情報なしで実行できますsudo

関連情報