직렬 포트와 통신하도록 설계된 프로그램과 상호 작용하는 Linux 응용 프로그램을 설정하고 있습니다. 이상한 점은 내가 소유자 사용자( klipper
)라면 심볼릭 링크를 통해 pty에 접근할 수 있지만, 소유자 사용자가 아니면 다른 사용자( octoprint
)가 pty의 소유자 그룹에 속해 있어도 pty에 접근할 수 없다는 점이다. .
문맥상 심볼릭 링크는 에 있고 /tmp/printer
pty는 에 있습니다 /dev/pts/1
. SELinux가 설치되지 않았습니다. 설치 옵션은 다음과 같습니다.tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
$ ls -l /tmp/printer
lrwxrwxrwx 1 klipper klipper 10 Oct 19 21:30 /tmp/printer -> /dev/pts/1
$ ls -l /dev/pts/1
crw-rw---- 1 klipper tty 136, 1 Oct 19 22:41 /dev/pts/1
$ groups klipper
network tty uucp klipper
$ sudo -u octoprint picocom /tmp/printer
<...>
FATAL: cannot open /tmp/printer: Permission denied
$ sudo -u octoprint picocom /dev/pts/1
<...>
Terminal ready
답변1
나는 이것이 일반적으로 설정되는 끈적한 비트 때문이라고 생각합니다 /tmp
. 권한을 살펴보면 마지막 비트가 심볼릭 링크 내부의 액세스가 해당 소유자로 제한된다는 /tmp
것을 알 수 있습니다 . 해결책은 다른 위치에 심볼릭 링크를 만드는 것일 수 있습니다.t
/tmp