umask 명령의 목적은 무엇입니까? [폐쇄]

umask 명령의 목적은 무엇입니까? [폐쇄]

umask*nix 운영 체제에서 명령의 실제 용도는 무엇입니까?
어떻게 작동하며 어떤 용도로 사용되나요? 예를 들어

$ umask 022

전에는 정말 고마워요

답변1

umask대부분의 쉘에 내장된 명령이며 시스템 호출에 대한 인터페이스일 뿐입니다. 이에 대한 umask()설명은 쉘 문서에서 찾을 수 있습니다( 시스템 호출 문서 또는 쉘 내장 명령 문서를 man umask가리킬 수 있음 에 유의하세요) 당신 외에).umask()umask

사용자 마스크는 파일이 생성될 때 기본적으로 파일에 자동으로 부여되는 권한을 결정하는 프로세스(상위 프로세스에서 하위 프로세스로 상속되고 명령 실행 전반에 걸쳐 유지됨)의 속성입니다.

umask유틸리티를 사용하면 쉘 프로세스의 사용자 마스크를 설정하여 쉘 세션에서 실행되는 명령으로 생성된 파일에 대한 권한을 제어할 수 있습니다.

모든 쉘은 umask마스크를 8진수로 처리하는 반면 일부 쉘(모든 POSIX 쉘 포함)에서는 for 와 같이 기호로 지정할 수도 있습니다 chmod.

마스크는 권한의 어느 비트가 되어야 하는지를 결정합니다.분명한파일이 생성될 때. 예를 들어 0777이 511이거나 0b111_111_111인 경우 모든 91비트 Unix 파일 권한(3( 읽기, 쓰기, 실행 )) umask 777때문에 권한 없이 파일이 생성됩니다.rwx사용자, 3은그룹, 3은다른)이 삭제됩니다.

기호 형식은 어떤 비트가아니요삭제되었습니다. 그렇게 될 것 umask 777입니다 umask u=,g=,o=.

일반적으로 말하면, 생성한 파일이 전 세계적으로 쓰기 가능( 또는 ) 되는 것을 원하지 않기 때문에 umask에 최소한 w다른 비트가 포함되기를 원합니다.oumask 002umask u=rwx,g=rwx,o=rx

적어도 사용자의 기본 그룹이 개인 그룹(다른 사용자와 공유)이 아닌 시스템에서는 그룹 비트도 설정할 수 있습니다 w.gumask 022umask u=rwx,g=rx,o=rx

A umask 077또는 umask u=rwx,g=,o=귀하가 생성한 모든 파일이 귀하의 비공개인지 확인하십시오(다른 사람이 해당 파일에 액세스할 수 없음). 임시 파일을 생성하는 스크립트에서 종종 다음과 같이 하위 쉘에서 이를 볼 수 있습니다.

(umask 077; echo test > "$tmpfile")

umask서버 비트를 설정하면 u결국 열 수 없는 파일이 생성될 수 있으므로 문제가 발생할 수 있습니다.

사용자 마스크가 적용되어 있음을 참고하세요.위에open()애플리케이션이나 파일 creat()에서 요청한 권한입니다 . ( )일 때 이 작업을 수행하면 creat("file", 0666)권한은 결국 ( )이 됩니다. 애플리케이션은 필요에 따라 계속해서 권한을 호출하거나 나중에 변경할 수 있습니다(그리고 umask는 거기에 영향을 미치지 않습니다).umask022u=rwx,g=rx,o=rx0644u=rw,g=r,o=rfchmod()chmod()

umask인수 없이 8진수 형식으로 현재 사용자 마스크를 보고합니다. umask -S일부 쉘에서는 기호로 보고됩니다. umask -p또는 일단 해석된 출력 쉘 코드는 bash동일한 fish사용자 마스크를 설정합니다.

수정 후에는 이전 umask를 복원하는 데 사용할 수 있습니다.

previous_umask=$(umask)
umask 077
# create some private files
umask "$previous_umask"

1 기술적으로 권한에는 12비트가 있으며, 그 중 3개의 추가 권한 비트는 파일 형식에 따라 다양한 목적으로 사용되는 특수 비트이며 때로는 다른 권한 비트(예: 실행 파일용 setuid, setgid 비트, 실행 파일용 t비트)와 결합되어 사용됩니다. 디렉토리.. .). 일부 시스템에서는 open()이러한 비트가 / 에서 요청될 때 무시됩니다 . creat()응용 프로그램에서 설정할 때(보통 을 전달한 후) / 에 포함되는 데에는 충분한 이유가 있습니다. 시스템 호출에서는 이를 무시합니다.chmod()umaskumask()

관련 정보