사용자의 [sudo] 비밀번호를 건너뛰는 방법은 무엇입니까?

사용자의 [sudo] 비밀번호를 건너뛰는 방법은 무엇입니까?

무작위 질문이 있습니다. 여러 서버에 대해 동일한 구성을 가지고 있지만 그 중 일부만 제외된 사용자의 비밀번호를 요청합니다.

Using username "a-u".
Authenticating with public key "rsa-key-20220705"
Linux i01.is-u.local 4.9.0-18-amd64 #1 SMP Debian 4.9.303-1 (2022-03-07) x86_64

a-u@i01:~$ sudo su -
[sudo] password for a-u:

이 사용자는 "sudo" 그룹의 일부입니다. /etc/sudoers.d/ 아래에 파일을 생성하고 다음과 같이 "sudo" 그룹을 선언합니다.

[/etc/sudoers.d]# cat nopasswd
%sudo ALL=NOPASSWD: ALL

또한 /etc/sudoers 파일의 구성은 다음과 같습니다.

[/etc]# cat sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification
User_Alias ADMINS = a-u

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
ADMINS  ALL = (ALL) NOPASSWD: ALL,!/usr/bin/passwd,!/usr/bin/passwd [A-z]*,!/usr/bin/passwd root

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

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

문제를 찾아내도록 도와주세요. 감사해요.

답변1

내가 성공적으로 사용한 패턴은 nopasswd 파일과 약간 다릅니다.

%sudo ALL=(ALL) NOPASSWD: ALL

/etc/sudoers 파일을 보면 이 ADMINS줄은 마지막 명령 뒤에 제외된 명령 목록이 있는 것과 거의 동일하므로 ALL이것이 효과가 있을 것이라고 믿습니다.


편집하다:공평하게 말하면 WhiteOwl은 이보다 몇 분 전에 동일한 솔루션을 게시했습니다. OP는 여기 주석 스레드에서 문제를 보고했고 문제 해결 방법은 /etc/sudoers.d 폴더의 다른 파일이 nopasswd해당 파일의 구성을 덮어쓰는 것이 원인임을 발견했기 때문에 OP에서 이 답변을 수락했습니다. Sudo는 그 뒤에 다른 파일을 읽고 있으며 그 중 하나가 그의 구성을 덮어쓸 수 있습니다.

이를 확장하기 위해 sudo는 /etc/sudoers 파일에 작성되고 포함된 순서대로 파일을 읽습니다. sudoers 파일에 폴더/디렉토리가 포함되어 있으면 sudo는 폴더의 파일 이름을 영숫자순으로(로캘의 조합에 따라) 정렬하고 해당 순서대로 파일을 읽습니다. sudo가 원하는 순서대로 파일을 읽을 수 있도록 숫자 접두사를 사용하여 이러한 디렉터리(예: /etc/sudoers.d)의 파일 이름을 지정하는 것이 일반적입니다. 평가 순서를 제어하기 위해 10-sudoers-group, 20-admins-group, , 와 99-special-admins같은 파일 이름을 자주 봅니다 .

답변2

nopasswd 파일의 올바른 구문은 다음과 같아야 합니다.

%sudo ALL=(ALL) NOPASSWD: ALL

관련 정보