프로세스가 특정 장치를 사용할 수 있도록 권한을 설정하는 방법이 있습니까?

프로세스가 특정 장치를 사용할 수 있도록 권한을 설정하는 방법이 있습니까?

예를 들어 읽을 수 있듯이여기, logind는 systemd의 일부이며 사용자 세션에 대해 특정 장치에 대한 권한을 설정할 수 있습니다.영상도 있어요이 동작이 실제로 어떻게 작동하는지 보여주세요. 간단히 말해서, amarok을 시작하고 일부 노래를 재생하면 로그인 프롬프트만 있는 다른 사용자나 TTY로 전환할 때까지 소리가 들립니다. 활성 세션이 비활성화되었기 때문입니다.

특정 그룹(이 경우 "오디오")에 한 명 이상의 사용자를 추가하면 이 문제가 "해결"될 수 있다는 것을 알고 있지만 다른 해결 방법이 있는지 궁금합니다. 내가 정말로 원하는 것은 모든 사용자가 세션을 잠근 경우에도 항상 사운드 카드를 사용할 수 있도록 프로세스에 대한 일부 권한을 설정하는 것입니다.

그게 가능합니까? 음악을 많이 듣는데 디스플레이를 대부분 켜둘 필요가 없어서 그냥 화면을 잠그고 있어서 여쭤봅니다. 하지만 화면을 잠그면 활성 세션이 비활성화되고 amarok 재생이 중지됩니다. 예, 화면을 그냥 끄는 것이 아니라 잠가야 합니다.

편집하다:

나는 내가 사용하는 배포판이 중요하다고 생각하지 않습니다. 왜냐하면 내가 시스템을 탑재했다면 똑같은 문제가 될 것이기 때문입니다. 어쨌든 저는 debian sid를 사용하고 있지만 systemd, udev(및 일부 종속성)와 같은 일부 패키지는 실험용 브랜치에서 왔으며 현재 버전 219-9에 있습니다.

답변1

사용 중인 Linux의 버전/종류는 확실하지 않지만 사운드 장치의 ACL은 udev 규칙을 통해 ConsoleKit에 의해 제어되는 것 같습니다. 내 Debian 호스트의 /lib/udev/rules.d/70-udev-acl.rules에서 다음과 같은 내용을 볼 수 있습니다.

# sound devices
SUBSYSTEM=="sound", TAG+="udev-acl"

콘솔킷이 데이터베이스에 사운드 장치를 추가하지 않고 사운드 장치의 ACL을 관리하지 않도록 표시를 해제하려고 합니다.

답변2

제가 말하려는 것은 제가 Linux 데스크탑의 오디오에 대해 아는 바가 거의 없다는 것입니다. 이것이 도움이 되지 않는다면 사과드리고 싶습니다.

오디오 장치에 대한 그룹 권한을 설정하겠습니다.

chgrp audio <dev-path>
chmod g+rw <dev-path>

아마록이 운영하는 그룹으로. 이 그룹에서 amarok을 강제로 실행하려면 systemd를 사용하십시오. 먼저 amarok systemd 파일을 /etc/systemd/user/에 복사하고 수정합니다:

[Service]
Group=audio

(전체 파일이 아닌 수정 사항입니다.)

그러나 오늘날 Linux 오디오 시스템의 다층적 특성으로 인해 더 "복잡한" 대답이 있을 수 있습니다.

답변3

vnc 프레임 버퍼에서 플레이어를 실행하는 것은 어떻습니까? 민트 17에서는...

# apt search vfb
p   xvfb                            - Virtual Framebuffer 'fake' X server
p   xvfb:i386                       - Virtual Framebuffer 'fake' X server

VNC를 사용하여 다음에 설명된 대로 데스크탑을 볼 수 있습니다.https://en.wikipedia.org/wiki/Xvfb

답변4

Pulseaudio는 아래에서 찾을 수 있는 xdg 자동 시작을 통해 시작됩니다 ~/.config/autostart/. 라는 파일이 있고 pulseaudio.desktop해당 파일에서 exec기본 줄을 다음 줄로 변경했습니다.

Exec=/usr/bin/sg audio -c "pulseaudio -D"

시스템에 로그인하면 pulseaudio 프로세스는 다음과 같습니다.

$ ps -eo user,group,args | grep pulse
morfik   audio    pulseaudio -D
morfik   audio    /usr/lib/pulseaudio/pulse/gconf-helper

이제 나는 항상 음악을 들을 수 있다. 이것이 제가 찾던 해결책이라고 생각합니다.

관련 정보