Linuxユーザー名にドットがあると、「ユーザー名がsudoersファイルにありません。このイベントが報告されます」という結果が表示されます。

Linuxユーザー名にドットがあると、「ユーザー名がsudoersファイルにありません。このイベントが報告されます」という結果が表示されます。

動作する Debian サーバーがあります。既存の権限を付与されているすべてのユーザーは、sudo問題なく使用できます。sudoただし、新規ユーザーのユーザー名は指すすると、「ユーザー名がsudoersファイルにありません。このイベントが報告されます」というメッセージが表示されますsudo

このユーザーが見逃したステップはありません。私のステップは次のとおりです。

ユーザー名にドットを持つ特権ユーザーを作成します。私はこの小さなスクリプトを使って開発者ユーザーアカウントを追加します。

#!/bin/bash
uu=$1
useradd -m -G sudo,webdev -s /bin/bash $uu
passwd $uu
cd /home/$uu/
mkdir .ssh/
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
chmod 700 .ssh/
chown -R $uu:$uu .ssh/
ls -la .ssh/
cat $uu.pub > /home/$uu/.ssh/authorized_keys
echo "finished"

ユーザーが sudo グループにあることを確認します。

getent group sudo

このアイテムはすでに次の場所にあります。/etc/sudoers

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

次に、/etc/sudoers.d/user.nameを作成し、権限を640に設定しました。

nano /etc/sudoers.d/user.name
user.name ALL=(ALL) NOPASSWD: ALL

テストするには、ユーザーアカウントでログインして試してくださいsudo。上記のエラーが発生します。

この問題を解決できる1つの方法は、このユーザーをsudo権限を持つ別のグループに追加することでした。

何かが欠けているか、ユーザー名のドットが他のユーザー名では発生しない問題を引き起こしています。

答え1

コメントに提示された解決策ムル

sudo は /etc/sudoers.d のすべてのファイルを読み、「~」で終わるか、「.」属性を含むファイル名をスキップします。

Roaimaが他のコメントで指摘したように:

ユーザー名のドットは問題を引き起こしません。これは、名前にドットを含むファイルにsudo設定を配置することを選択したためです。

これがまさに問題です。私が確認した解決策は次のとおりです。

sudo mv /etc/sudoers.d/user.name /etc/sudoers.d/username

関連情報