나는 사용하고있다멀티플렉서만들다세션 공유/tmp에서 tekkit을 호출했습니다.
한 가지 중요한 예외를 제외하고 모든 것이 잘 작동합니다. 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
내 질문은 다음과 같습니다
내가 뭘 잘못하고 있고 어떻게 해야 할까요?
ㅏ) 소켓 파일은 그대로 두되 첫 번째 세션이 닫힌 후 다른 사용자와 새 세션을 시작할 수 있습니다.
둘) 파일 소유자가 아닌 사용자로부터 소켓 파일의 링크를 해제합니다.
두 솔루션 모두 슈퍼유저 액세스 없이 작업해야 합니다!
당신의 도움을 주셔서 감사합니다.
답변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