내 umask가 0077이라고 가정하십시오.
foo
특수 권한을 적용하려는 디렉토리 가 있습니다. 내가 만든 모든 파일 foo
은 월드에서 읽을 수 있어야하고 모든 디렉토리는 월드에서 읽고 읽을 수 있어야합니다.
현재 파일을 만들면 0600이되고 디렉토리는 0700이됩니다.
$ cd foo/
$ touch file
$ mkdir directory
$ ls -l
drwx------ 2 nfm nfm 4096 2012-01-12 16:16 directory
-rw------- 1 nfm nfm 0 2012-01-12 16:15 file
내 umask에 관계없이 파일이 0644이고 디렉토리가 0755가되기를 원합니다.
drwxr-xr-x 2 nfm nfm 4096 2012-01-12 16:16 directory
-rw-r--r-- 1 nfm nfm 0 2012-01-12 16:15 file
어떻게하면 되나요?
답변
예, acl은 이것을 할 수 있습니다.
-
파일 시스템이 acl로 마운트되었는지 확인하십시오. 이를 확인하려면을 입력하십시오
mount
. 다음과 같은 다른 권한 중 ‘acl’이 나열되어 있습니다./dev/sda1 on / type ext4 (rw,errors=remount-ro,acl)
acl로 마운트되지 않은 경우 / etc / fstab을 열고 옵션 목록에 ‘acl’을 추가하십시오.
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/sda1 / ext3 noatime,errors=remount-ro,acl 0 1
이제 새로운 옵션으로 실행중인 파일 시스템을 다시 마운트하십시오.
mount -v -o remount /
-
acl 유틸리티를 설치하십시오. 우분투 / 데비안에서 이것은 :
sudo apt-get install acl
-
새 친구는
setfacl
과getfacl
.setfacl
디렉토리의 기본 acl을 변경하는 데 사용하십시오 .setfacl -d -m o:r foo
-d
기본값을 설정-m
하고 acl을 수정하며o:r
“other”에게 읽을 권한을 부여합니다. 디렉토리에서 기본값을 설정 하는 것은 디렉토리에서 setgid 를 설정하는 것과 거의 동일 하지만 그룹을 상속하는 새로 작성된 파일 대신 acl을 상속합니다. 효과적인 그룹 기반 디렉토리 별 umask를 위해 그룹에 기본 권한을 부여하고 새로 작성된 파일을 해당 그룹에 속할 수 있기 때문에 setgid와 acl을 함께 사용할 수 있습니다. -
작업 확인 :
ls -l
이제 표준 파일 권한 외에 acl이 있음을 나타내는 추가 “+”가 표시되어야합니다.% ls -la foo/ drwxr--r--+
를 사용하여 acl에 대한 자세한 정보를 얻을 수 있습니다
getfacl
.% getfacl foo # file: foo # owner: you # group: you user::rwx group::r-- other::r-- default:user::rwx default:group::--- default:other::r--