シリアルポートと通信するように設計されたプログラムと対話する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