다음 권한이 설정된 디렉터리가 있습니다.
drwxr-s---. user group folder
데스크탑에서 이 폴더에 액세스하고 마우스 오른쪽 버튼을 클릭하여 새 파일 호출을 생성합니다 foo.txt
. 그런 다음 터미널을 사용하여 명령을 사용하여 다른 파일을 만들었습니다 $ touch bar.txt
.
이 파일의 권한을 확인하면 다음과 같은 권한이 있습니다.
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
나는 그것을 기대하고있어 -rw-r-----. user group
. 그룹에 대한 추가 쓰기 권한과 다른 사람에 대한 읽기 권한은 어떻게 제공됩니까?
답변1
부팅 설정
여기에는 두 가지 힘이 작용하고 있습니다. 첫 번째는 폴더에서 활성화된 setgid 비트입니다 folder
.
drwxr-s---. user group folder
이는 s
줄 시작 부분의 문자 팩에 있습니다. 그들은 다음과 같이 그룹화됩니다:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
즉 r-s
, 이 폴더 내에 생성된 모든 파일이나 디렉터리에는 자동으로 그룹이 group 으로 설정됩니다 group
.
이것이 파일이 다음과 같이 생성되는 원인입니다 foo.txt
.bar.txt
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
권한 및 마스크
당신이 보는 권한은 또 다른 이야기입니다. 이는 귀하의 설정에 의해 제어됩니다 umask
. umask
다음 명령을 사용하여 설정을 볼 수 있습니다 umask
.
$ umask
0002
노트:이러한 비트를 "모드" 비트라고도 합니다.
이는 마스크이므로 활성화된 권한과 관련된 모든 비트를 비활성화합니다. 이 예에서 내가 끄고 싶은 유일한 것은 다른 사람의 쓰기 액세스입니다.
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
이 명령에서 "비트"는 10진수 형식으로 표시됩니다. 따라서 2는 쓰기 비트인 이진수 010과 같습니다. 4(100)는 읽기를 비활성화하려는 것을 나타냅니다. 7 (111)은 읽기/쓰기/실행이 모두 비활성화됨을 의미합니다. 여기에서 구축을 시작하세요.
$ umask 007
다른 사용자의 읽기/쓰기/실행 비트를 비활성화합니다.
파일은 어떻습니까?
음, umask
새 파일을 만들 때 설정되는 권한을 제어합니다. 따라서 다음 컬렉션이 있는 경우 umask
:
$ umask 007
새 파일을 터치하기 시작하면 다음과 같이 생성된 것을 볼 수 있습니다.
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
다른 것으로 바꾸면 이렇게 말하세요.
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
그러나 이미 생성한 파일에는 아무런 영향을 미치지 않습니다. 이봐:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
그렇다면 파일 탐색기에서는 무슨 일이 벌어지고 있는 걸까요?
이것이 umask
제가 "소프트" 설정이라고 부르는 것입니다. 절대적인 것은 아니며 Unix에서는 다양한 방법으로 상당히 쉽게 우회할 수 있습니다. 많은 도구에는 작업의 일부로 권한을 지정할 수 있는 스위치가 있습니다.
예를 들어 mkdir
:
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
-m
스위치를 사용하면 umask
명령 touch
에 이 기능이 없으므로 창의력을 발휘해야 합니다. 다음 제목의 U&L Q&A를 참조하세요.명령줄에 설정된 권한으로 파일을 생성할 수 있나요?이 방법에만 해당됩니다.
다른 방법? umask
파일 브라우저가 이 작업을 수행하거나 완전히 무시 하고 umask
파일을 배치하기 위해 구성한 모든 권한을 사용합니다.