使っていますマルチプレクサ作るセッションの共有/tmpでtekkitを呼び出しました。
1つの重要な例外を除いて、すべてがうまく機能します。 tmuxセッションが閉じても、/tmp/tekkitソケットファイルはそのまま残ります。これは今大きな問題です。ソケットファイルの所有者以外は誰もこのセッションを再開できません。
実行コマンド:tmux -S /tmp/tekkit new -d sh TekkitLaunch.sh
他のすべてのユーザーに以下を提供します。error connecting to /tmp/tekkit (Operation not permitted)
すべてのユーザーは同じグループに属し、ソケットファイルに対する完全なrwx権限を持ちます。
通常、セッションを閉じた後にソケットファイルのリンクを解除しますが、これも機能しません。ファイル所有者のみがリンクを解除できます。。他のすべてのユーザーは、必要な権限を持っていても接続を解除できず、次のエラーが表示されます。unlink: cannot unlink '/tmp/tekkit': Operation not permitted
次のようにファイルのリンクを解除します。unlink /tmp/tekkit
私の質問は次のとおりです
私は何が間違っていて、どうすればいいですか?
ㅏ) ソケットファイルはそのまま残りますが、最初のセッションが閉じられた後に他のユーザーと新しいセッションを開始できます。
2) ファイル所有者ではないユーザーからソケットファイルのリンクを解除します。
どちらのソリューションもスーパーユーザーアクセスなしで作業する必要があります!
ご協力ありがとうございます。
答え1
シンボリックリンクは/tmp
シンボリックリンクの所有者のみを追跡できます。
Ubuntu 10.10以降では、/ tmpなど、グローバルに書き込み可能な固定ディレクトリのシンボリックリンクをたどることはできません。フォロワーとディレクトリの所有者がシンボリックリンクの所有者と一致しない場合。
どちらのソリューションもスーパーユーザーアクセスなしで作業する必要があります!
私が知る限り、これは不可能です。
このセキュリティ機能を無効にする唯一の方法は無効にすることですprotected_symlinks
(これはセキュリティに影響を与えるroot
ため必要です)。
または経由
sysctl -w fs.protected_symlinks=0
fs.protected_symlinks=0
ファイルに追加または/etc/sysctl.d
直接編集する/etc/sysctl.conf