특정 사용자 및 그룹을 사용하여 X를 사용하여 GUI 응용 프로그램을 자동으로 시작합니다.

특정 사용자 및 그룹을 사용하여 X를 사용하여 GUI 응용 프로그램을 자동으로 시작합니다.

X를 사용하여 특정 사용자 및 그룹에서 특정 프로그램을 자동으로 시작하려는 경우 사용하는 가장 좋은 접근 방식은 무엇입니까?

내 프로그램에는 GUI가 있으므로 systemd를 사용할 수 없습니다.

sudo 비밀번호를 묻지 않고 X를 자동으로 시작하고 싶습니다.

sudo -H -u $USER bash -c "newgrp $GROUP && /bin/command"

거의 끝났습니다. 하지만 sudo 비밀번호를 입력해야 합니다.

답변1

sudo기본 그룹은 옵션을 사용하여 설정할 수 있으므로 -g사용할 필요가 없습니다 . 또한 사용자가 암호 없이 모든 사용자로 실행할 수 있도록 newgrp구성할 수도 있습니다 .sudo/bin/command

예를 들어 다음을 추가합니다 /etc/sudoers(실행아니요파일을 직접 편집하세요. 사용 visudo. 전체 sudoers 파일을 무효화하는 구문 오류가 발생하지 않도록 변경 사항에 대한 온전성 검사를 수행합니다. 여전히 논리 오류가 발생할 수 있지만 /etc/sudoers sudo를 전혀 사용할 수 없는 지점 까지 손상시키지는 않습니다 .

username ALL = (ALL) NOPASSWD: /bin/command

그런 다음 실행하십시오.

sudo -H -u "$USER" -g "$GROUP" /bin/command

명령이 실행될 수 있는 사용자 이름 및/또는 그룹을 제한하려면 ALL대괄호 안에 있는 내용을 변경하세요. 예를 들어

cas ALL = (fred, bob : mygroup, othergroup) NOPASSWD: /bin/command

사용자는 사용자 또는 그룹의 사용자 또는 비밀번호가 없는 사용자로 실행할 수 있습니다 cas. 제목이 붙은 섹션을 보고 검색하세요./bin/commandfredbobmygroupothergroupman sudoersRunas_Spec

그런데 첫 번째 ALL(앞 =)는 규칙이 적용되는 호스트 이름을 나타냅니다. 이는 여러 시스템에서 동일한 sudoers 파일을 공유하고 시스템 관리자가 sudo일부 시스템에서만 특정 명령을 실행하기 위한 권한이 필요한 경우에만 중요합니다. 자세한 내용을 검색 Host_List하세요 man sudoers.

참고: sudo매우 복잡하고 매우 유연합니다. 매뉴얼 페이지가 이해될 sudo때까지 읽고 다시 읽는 노력은 가치가 있습니다 . sudoers의도한 것보다 더 적거나 더 나쁜 권한을 부여하는 실수를 저지르기 쉽습니다.

관련 정보