파일의 전체 권한 모드가 디렉터리의 경우와 다른 이유는 무엇입니까?

파일의 전체 권한 모드가 디렉터리의 경우와 다른 이유는 무엇입니까?

나는 읽었다 Linux Command Line and Shell Scripting Bible by Richard Blum Christine Bresnahan:

개체의 전체 권한 집합에서 umask 값을 뺍니다.파일에 대한 전체 권한은 모드 666이지만 디렉터리에 대한 전체 권한은 777입니다..

따라서 파일이 동시에 읽기, 쓰기 및 실행 권한을 가질 수 없는 경우 사용자는 작업을 수행해야 할 때마다 파일을 변경해야 합니까? 프로그래머가 자신의 코드를 테스트해야 할 경우 어떻게 해야 합니까? 다른 파일 형식은 어떻습니까? 미리 감사드립니다.

답변1

개체의 전체 권한 집합에서 umask 값을 뺍니다.

이것은 사실이 아닙니다. 아니면 적어도 일반적인 상황에 비해 부정확하고 단순화되었습니다.

  • 먼저 기준가는아니요"전체 권한 집합"은 파일을 생성한 프로세스가 파일의 권한으로 설정되는 것이 아닙니다. 물론 일반 파일의 경우 일반적으로 다음과 같습니다 0666. 즉, 텍스트 편집기가 파일의 권한을 결정하는 것이 아니라 사용자가 umask.

    그러나 파일을 생성하는 프로세스에서는 0666파일 권한을 사용할 필요가 없습니다. 개인 파일(예: SSH 키)의 경우 0600umask가 무엇이든 소유자 외에는 누구도 파일에 액세스할 수 없도록 사용됩니다. 또한 실행 파일의 경우 0777생성된 파일을 실행 가능하게 만들기를 사용할 수 있습니다.

    0777이 비트는 실제로 범용 비트만큼 필요하므로 이는 디렉토리에 일반적입니다 x. r이는 일반 데이터 파일의 경우가 아니므로 0666파일 및 0777디렉터리의 경우가 일반적입니다.

    물론 사용되는 기본 권한은 다른 것일 수도 있지만 이는 아마도 일반적인 경우일 것입니다.

  • 2. umask의 값은 다음과 같습니다.마이너스, 그러나 차단되었습니다. 뺄셈은 한 비트에서 다음 비트로 전달되는 것을 의미하며, 예를 들어 0007에서 빼면 0666가 됩니다 0657. 이것은 umask가 작동하는 방식이 아니며 유용하지 않습니다.

umask는 파일에 액세스할 때만 사용됩니다.만들어진,리눅스 매뉴얼 페이지"파일 모드 생성 마스크"라고도 합니다. 나중에 chmod()umask에 의해 제한되지 않고 권한을 변경하는 데 사용할 수 있습니다.

따라서 파일이 동시에 읽기, 쓰기 및 실행 권한을 가질 수 없는 경우

물론 가능합니다. 실행 불가능한 파일에는 유용하지 않습니다.

답변2

파일은 기본적으로 실행 가능하지 않기 때문에 디렉터리는 실행 가능합니다.

  • 디렉토리의 "실행" 플래그를 사용하면 해당 디렉토리에 있는 파일을 열 수 있으므로 대부분의 경우 필요합니다. "읽기" 플래그를 사용하면 디렉토리 내용을 나열할 수 있지만 디렉토리에 있는 파일을 열 수는 없습니다.
  • 일반 파일의 "실행" 플래그를 사용하면 파일을 실행할 수 있지만 일반적으로 필요하지 않습니다.

관련 정보