man 7 unix
Linux 상태:
Linux 구현에서 파일 시스템에 표시되는 소켓은 해당 소켓이 있는 디렉터리의 권한을 존중합니다. 소유자, 그룹 및 권한은 변경될 수 있습니다. 프로세스에 소켓이 생성된 디렉터리에 대한 쓰기 및 검색(실행) 권한이 없으면 새 소켓 생성이 실패합니다. 소켓 개체에 연결하려면 읽기/쓰기 권한이 필요합니다. 이 동작은 UNIX 도메인 소켓에 대한 권한을 무시하는 많은 BSD 파생 시스템과 다릅니다.이식 가능한 프로그램은 보안을 위해 이 기능에 의존해서는 안 됩니다.
UNIX 도메인 소켓에 대한 권한을 무시하는 시스템은 무엇입니까?
답변1
예를 들어 HP-UX는 소켓 파일 권한을 무시합니다.
문서에서 다음에 대해 이야기하고 있습니다.소켓 파일 권한. 모든 구현은 상위 디렉터리의 권한을 존중합니다. 이식 가능한 프로그램은 umask
제한적인 권한(패스)을 사용하여 공용 디렉터리에 소켓을 만드는 데 의존하는 대신 개인 디렉터리에 소켓을 만들어야 합니다 .
답변2
이것을 감안할 때, 그것이 무엇을 의미하는지 잘 모르겠습니다
- 소켓은 BSD 및 4.3BSD, 문서에서 유래되었습니다.명확하게 정의됨쓰기 권한이 필요합니다
connect()
. - 리눅스에서도 마찬가지고,읽다권한이 필요하지 않습니다. 그냥 쓰세요.
POSIX에는 없는 것 같습니다.필요하다connect()
소켓 파일에 쓸 수 없지만 명시적으로 허용되면 실패합니다(connect
지정된 소켓이 쓰기 가능하지 않으면 실패할 수 있습니다. [...]). 저것"가능한"권한을 존중하지 않는 시스템이 실제로 있을 수 있음을 나타내지만 BSD에서 파생된 것인지 의심됩니다.