ACL을 사용하여 umask를 재정 의하여 지정된 디렉토리 세계에서 작성된 모든 파일을 읽을 수 있습니까? 0600이되고 디렉토리는 0700이됩니다. $ cd foo/ $ touch

내 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은 이것을 할 수 있습니다.

  1. 파일 시스템이 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 /
    
  2. acl 유틸리티를 설치하십시오. 우분투 / 데비안에서 이것은 :

    sudo apt-get install acl
    
  3. 새 친구는 setfaclgetfacl. setfacl디렉토리의 기본 acl을 변경하는 데 사용하십시오 .

    setfacl -d -m o:r foo
    

    -d기본값을 설정 -m하고 acl을 수정하며 o:r“other”에게 읽을 권한을 부여합니다. 디렉토리에서 기본값을 설정 하는 것은 디렉토리에서 setgid 를 설정하는 것과 거의 동일 하지만 그룹을 상속하는 새로 작성된 파일 대신 acl을 상속합니다. 효과적인 그룹 기반 디렉토리 별 umask를 위해 그룹에 기본 권한을 부여하고 새로 작성된 파일을 해당 그룹에 속할 수 있기 때문에 setgid와 acl을 함께 사용할 수 있습니다.

  4. 작업 확인 : 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--
    

답변

마스크 ACL 속성을 다음과 같이 설정하여 디렉토리에 대한 umask를 강제 실행할 수도 있습니다.

setfacl -d -m mask:07 .


답변

OnDir을 설치 하고 필요에 따라 올바르게 구성하십시오. 나는 여기 에있는 비슷한 문제에 답했다 .


답변