작동하는 데비안 서버가 있습니다. 기존에 권한을 부여받은 모든 사용자는 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
. 위의 오류가 발생합니다.
이 문제를 해결할 수 있었던 한 가지 방법은 이 사용자를 sudo 권한이 있는 다른 그룹에 추가하는 것이었습니다.
뭔가 빠졌거나 사용자 이름의 점이 다른 사용자 이름에서는 발생하지 않는 문제를 일으키고 있습니다.
답변1
의견에 제시된 해결책무루.
sudo는 /etc/sudoers.d의 모든 파일을 읽고 "~"로 끝나거나 "." 특성을 포함하는 파일 이름을 건너뜁니다.
Roaima가 다른 댓글에서 지적했듯이:
사용자 이름의 점은 문제를 일으키지 않습니다. 이는 이름에 점이 포함된 파일에 sudo 구성을 배치하도록 선택했기 때문입니다.
이것이 바로 문제입니다. 제가 확인한 해결 방법은 다음과 같습니다.
sudo mv /etc/sudoers.d/user.name /etc/sudoers.d/username