動作する 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