非 root ユーザーのパスワードを管理する権限を持つユーザー

非 root ユーザーのパスワードを管理する権限を持つユーザー

ユーザーに他のユーザーのパスワードを変更する権限を付与しようとしましたが、ルートのパスワードは変更できません。

/etc/sudoers ファイルを編集し、visudo次の行を追加しました。

myuser ALL=/usr/bin/passwd

今動作します。ユーザー「myuser」はコマンドで自分のパスワードを変更できますが、 sudo passwd otheruserルートのパスワードも変更できます。

ルートパスワード変更オプションを除外するには?

ベストアンサー1

これsudoers のマニュアルページ(v1.9.1リンク)実際には、次の例があります。

pete      HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd *root*

ユーザー pete は、HPPA コンピュータでルート以外のすべてのユーザーのパスワードを変更できます。コマンドラインパラメータは単一の接続文字列で一致するため、「*」ワイルドカードは複数の単語と一致します。この例では、passwd(1)がコマンドラインで複数のユーザー名を使用しないと想定しています。 GNUシステムでは、passwd(1)オプションをユーザーパラメータの後に指定できます。したがって、この規則は次のことも許可します。passwd username --expireこれは望ましくないかもしれません。

この例を状況に合わせて調整できます。

myuser    ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd *root*

...マニュアルの警告に注意してください。

おすすめ記事