Linux에는 그룹 정의를 지정하는 두 개의 파일이 있습니다. 그 중 하나는 이고 /etc/group
, 다른 하나는 입니다 /etc/gshadow
. 일반 사용자가 프로세스를 시작할 때 비밀번호를 입력하지 않고도 그룹을 전환할 수 있기를 바랍니다. 사용자가 이 그룹의 구성원이 아니어야 한다는 것이 중요합니다.
다음과 같은 방법으로 이 두 파일을 설정하여 이를 성공적으로 달성했습니다.
# cat /etc/group | grep audio
audio:x:29:pulse
# cat /etc/gshadow | grep audio
audio:*::pulse,morfik
이제 사용자는 morfik
다음 명령을 실행할 수 있습니다.
$ /usr/bin/sg audio -c "pulseaudio -D"
$ ps -eo user,group,args | grep pulse
morfik audio pulseaudio -D
morfik audio /usr/lib/pulseaudio/pulse/gconf-helper
그러나 문제가 있습니다 grpck
. 다음과 같은 결과가 출력됩니다.
# grpck
'morfik' is a member of the 'audio' group in /etc/gshadow but not in /etc/group
audio
파일 그룹에서 사용자를 제거한 /etc/gshadow
후 프로세스를 시작하려고 하면 다음 오류가 발생합니다.
sg[2378]: Failed to crypt password with previous salt of group 'audio'
grpck
따라서 질문은 이렇습니다. 뉴스 에 대해 걱정해야 합니까 ? sg
버그를 수정하여 모두가 행복해질 수 있는 방법이 있을까요 ?
답변1
sg
/etc/group
인증을 제공하지 않거나 에 나열된 비밀번호를 입력하거나 에 언급된 그룹으로 기본 그룹을 전환하여 기본 그룹을 다른 보조 그룹(예: 사용자에 나열된 그룹)으로 전환할 수 있습니다 . 따라서 "비밀번호를 입력할 필요가 없습니다"와 "이 그룹의 구성원이 아니어야 합니다"를 사용하는 것은 모순됩니다./etc/group
/etc/group
/etc/gshadow
sg
사용자가 그룹으로 자유롭게 전환할 수 있다면 그룹의 구성원이 되지 않도록 하는 것은 의미가 없습니다. 유일한 장점은 그룹을 방문할 때 녹음하는 것입니다.
시도 중인 구성(사용자는 목록에 표시되지만 gshadow
목록에는 표시되지 않음 group
)은 지원되는 구성이 아닙니다. 그것이 당신이 원하는 것에 가까운 것을 제공한다는 사실은 실제로 나에게 버그처럼 느껴집니다. gshadow
목록에 없는 그룹에 대한 회원 자격은 부여되어서는 안 됩니다 group
. 이것수동"당신은 에서와 동일한 사용자 목록을 사용해야 합니다"라는 문구 /etc/group
. 이 권장 사항을 위반하는 경우 합리적이거나 이식 가능한 동작을 기대하지 마십시오.
사용자가 그룹으로 특정 명령을 실행하고 기록하도록 허용하려면 sudo를 사용할 수 있습니다. visudo
다음과 같은 줄을 실행 하고 추가하십시오.NOPASSWD
사용자가 우려할 수 있는 유사하지 않은 상황 이후:
morfik ALL = (morfik:audio) NOPASSWD: pulseaudio