역사적으로 umask는 왜 이런가요?

역사적으로 umask는 왜 이런가요?

umask는 항상 나를 넘어뜨립니다. 논리적으로 나는 chmod 스타일 매개변수 대신 "setmask"를 선호합니다. 왜 이런 일이 일어나는지 아는 사람이 있나요?

답변1

비록 내가 틀렸을 수도 있지만 나는 이것이 두 가지 생각에서 비롯된 것이라고 믿습니다.

  • 처음에는 UNIX 개발 권한이 완전히 공개되었습니다. 보안 시대 이전에는 특정 사람들만 파일을 읽기/쓰기/실행 가능하게 만들려는 생각은 불필요했습니다. 따라서 이러한 관점의 자연스러운 진행은 권한의 개념을 취하고 이를 제한하는 것입니다. 권한의 0 값을 가져와서 추가하는 대신.

  • 또 다른 이유는 대부분의 경우 특정 거부가 지정된 허용보다 더 정확한 결과를 생성하기 때문입니다. 상황에 따라 요구 사항도 다릅니다. 예를 들어 기본 디렉터리 권한은 다음과 같습니다. 755기본 파일 권한은 다음과 같습니다.644

당신이 특별하다면허용하다실행 후 디렉터리와 파일로 변환해야 합니다. 그런 다음 실행이 활성화되지 않은 디렉터리 또는 활성화된 파일 중 하나를 선택해야 합니다. 그러나 디렉토리필요작업을 활성화합니다. 따라서 추가 권한을 구체적으로 추가하는 대신 제거하도록 선택할 수 있습니다.

umask를 사용하면 0000여전히 일반 파일에 대한 실행 권한이 없습니다. 반대로 수행하면 그런 식으로 디자인하기가 더 어려울 것입니다.

답변2

umaskcreat(2) 및 open(2)에 의해 생성된 파일에 대한 권한은 지정되지 않습니다. 강제로 적용해야 하는 비트만 지정합니다.끄다, 보안을 무시하는 프로그램이 취약점을 생성하는 것을 방지합니다.

일반적인 IT 규칙은 숫자로 표시된 "기본값" 및 "변경하지 않음" 옵션을 나타냅니다 0. 여기서 umask = 0은 creat(2) 이후의 스키마가 전혀 변경되어서는 안 되며 프로그램이 creat(name, 모델). umask에 비트가 설정되면분명한생성된 파일의 해당 권한 비트(즉, 프로그램 로직을 일부 변경함) 그렇기 때문에 이런 부정적인 논리가 나오는 것입니다.

답변3

setmaskUNOS(1980년부터)에서 사용할 수 있는 명령입니다.

이 명령은 오랫동안 umask유사한 기능을 제공해 왔습니다.

부르다:

umask -S 반전 마스크를 chmod와 유사한 기호 패턴으로 가져옵니다.

umask u=rwx,g=rx,o=rx에 해당하는 것을 얻으십시오 uask 022.

그래서 당신의 소원이 이루어졌습니다.

관련 정보