다음 권한이 설정된 디렉토리가 있습니다.
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
. 그룹에 대한 추가 쓰기 권한과 다른 사람에 대한 읽기 권한은 어떻게 나타 났습니까?
답변
세트
여기에는 두 가지 힘이 있습니다. 첫 번째는 폴더에서 활성화 된 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
.
즉, 파일을 원인입니다 foo.txt
및 bar.txt
과 같이 만들 수 :
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
권한 및 umask
보고있는 권한은 또 다른 문제입니다. 이 설정은의 설정에 의해 관리됩니다 umask
. umask
다음 명령으로 설정 한 내용을 확인할 수 있습니다 umask
.
$ umask
0002
참고 : 이 비트는 “모드”비트라고도합니다.
마스크이므로 활성화 된 권한과 관련된 비트를 비활성화합니다. 이 예제에서 내가 원하는 유일한 비트는 other에 대한 쓰기 권한입니다.
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
내가 “소프트”설정이라고했던 것입니다. 결코 절대적인 것은 아니며 여러 가지 방법으로 유닉스에서 상당히 쉽게 우회 될 수 있습니다. 많은 도구가 작업의 일부로 권한을 지정할 수있는 스위치를 사용합니다.
가지고 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
구성 된 권한을 사용하여 파일을 완전히 무시하고 내려 놓을 가능성이 큽니다 .