생성된 파일에 x 비트를 설정할 수 없습니다.
archemar@foobar:~/D> echo echo hello world > v.sh
archemar@foobar:~/D> ls -l v.sh
-rw-rw-r--+ 1 archemar group1 17 Apr 12 08:12 v.sh
x 비트가 없습니다. acl을 살펴보겠습니다.
archemar@foobar:~/D> getfacl v.sh
# file: v.sh
# owner: archemar
# group: group1
user::rw-
group::rwx #effective:rw-
group:group1:rwx #effective:rw-
mask::rw-
other::r--
group1이 rwx
acl에 있습니다!
로컬 디렉터리의 acl을 살펴보겠습니다.
archemar@foobar:~/D> getfacl .
# file: .
# owner: FTP_D_adm
# group: admin
user::rwx
group::rwx
group:group2:rwx
group:admin:rwx
group:group1:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:group1:rwx
default:mask::rwx
default:other::r-x
나는 그룹 1의 구성원입니다:
archemar@foobar:~/D> id
uid=1001(archemar) gid=1001(group1) groups=1001(group1),16(dialout),33(video)
실행해 보도록 하겠습니다
archemar@foobar:~/D> ./v.sh
-bash: ./v.sh: Permission denied
g+x 설정은 간단하지만 실제 파일은 ftp를 통해 전송됩니다. 비트 x를 설정하는 방법이 있나요?
운영 체제는 suse 11.4이고 디렉터리는 NFS 3이 마운트되어 있으며 ACL은 파일 시스템에 설정되어 있습니다.
답변1
ACL을 강제로 적용할 수는 없을 것 같습니다.놓다권한 비트.
사용Linux ACL 매뉴얼 페이지참고로 파일 권한에는 기본 ACL이 복사되어 있지만
- 모드 매개변수에 지정된 권한 이외의 권한이 포함되지 않도록 파일 권한 비트에 해당하는 액세스 ACL 항목을 수정합니다. [주다
open()
등creat()
].
권한 비트 마스크는 그룹 권한 비트에 해당하므로 여기서 영향을 받습니다.
기본 ACL이 없으면 umask
기본 ACL이 사용되지만 동일한 차단이 계속 수행됩니다.
물론 이는 모드를 사용하여 실행 권한을 제외하거나 모드를 사용하여 다른 사용자가 파일에 액세스하지 못하도록 제외하는 등 open
파일이 생성될 때 전달된 권한으로 권한을 제한할 수 있는 프로그램의 일반적인 관행과 일치합니다 . 0666
0600
답변2
이 두 가지 질문은 주변적으로 답변되었습니다.
https://superuser.com/questions/180545/setting-differing-acls-on-directories-and-files
관련 비트는 일반적으로 다음에서 나옵니다 man setfacl
.
perms 필드는 > 권한(읽기(r), 쓰기(w), 실행(x))을 나타내는 문자의 조합입니다.파일이 디렉터리이거나 이미 사용자(X)에 대한 실행 권한이 있는 경우에만 실행됩니다. 또는 perms 필드는 8진수(0-7)일 수 있습니다.
(강조는 내 것)
첫 번째 질문에 대한 답변 중 해당 부분@slm︎다음과 같이:
결론적으로
파일에 실행 권한(차단 또는 유효)이 부여되지 않습니다. ACL, umask 또는 마스크 및 ACL 중 어떤 방법을 사용하는지는 중요하지 않습니다.
디렉터리는 실행 권한을 얻을 수 있지만 이는 마스크 필드 설정 방법에 따라 다릅니다.
ACL 권한에 따라 파일에 대한 실행 권한을 설정하는 유일한 방법은 chmod를 사용하여 수동으로 설정하는 것입니다.
이는 기본적으로 ACL을 사용하여 원하는 작업을 수행할 수 없는 것처럼 보인다는 것을 의미합니다. 실제로 실행 파일을 생성하겠다고 명시적으로 말하는 프로그램은 거의 없기 때문입니다.