ルートは、sudoが今回特定のユーザーにパスワードを求めるメッセージを表示しないようにする方法をどのように保証しますか?

ルートは、sudoが今回特定のユーザーにパスワードを求めるメッセージを表示しないようにする方法をどのように保証しますか?

lxcホストを設定してコンテナを構成するスクリプトを作成しています。このスクリプトを無人で使用したいです。コンテナを作成して実行した後、時々ユーザーとしてログインしますsudo。残りの唯一のことは、私がそれをできることを確認することですsudo

無効にしたくありませんsudo。ユーザーが実際にパスワードを入力したときに何が起こるのかを模倣したいだけです。

これまで私は次のことをしました。

if [ ! -d /var/lib/lxc/$puppetmastername/rootfs/var/lib/sudo/$user ]; then
    sudo mkdir /var/lib/lxc/$puppetmastername/rootfs/var/lib/sudo/$user
fi
sudo touch /var/lib/lxc/$puppetmastername/rootfs/var/lib/sudo/$user/0

sudo grep '!tty_tickets' /etc/sudoers
if [ $? -ne 0 ]; then
    echo 'Defaults         !tty_tickets' >>/var/lib/lxc/puppetmaster/rootfs/etc/sudoers
fi

残念ながら、これだけでは十分ではありません。コンテナにはまだパスワードが必要です。

ベストアンサー1

ファイルを編集し/etc/sudoers、ユーザーにパスワードなしでrootとして特定のプログラムを実行する権限を付与する必要があります。

yourusername ALL = (root) NOPASSWD: /path/to/prog1, /path/to/prog2, ...

あなたの場合は、次のことを試すことができます。

myusername ALL = (root) NOPASSWD: /bin/mkdir, /usr/bin/touch, /bin/grep

NOPASSWDその項目がユーザーと一致する最後の項目であることを確認する必要があります。項目の 2 つが/etc/sudoersユーザーと一致する場合は、NOPASSWDその項目の後にルールが続く必要があります。

おすすめ記事