ACL을 사용하여 'x'(실행 가능) 비트 설정

ACL을 사용하여 'x'(실행 가능) 비트 설정

생성된 파일에 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이 rwxacl에 있습니다 !!

로컬 디렉토리에 대한 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를 설정하는 방법이 있나요?

OS는 suse 11.4이고 디렉터리는 NFS 3이 마운트되어 있으며 ACL은 파일 시스템에 설정되어 있습니다.

답변1

ACL을 사용하여 강제로 사용할 수는 없다고 생각합니다.세트허가 비트.

사용하여Linux ACL 매뉴얼 페이지참고로 기본 ACL은 파일의 권한에 복사되지만

  1. 파일 권한 비트에 해당하는 액세스 ACL 항목은 모드 매개변수로 지정된 권한에 포함되지 않은 권한을 포함하지 않도록 수정됩니다. [ 등에 open()게 주어짐 creat()].

권한 비트 마스크는 그룹 권한 비트에 해당하므로 여기서 영향을 받습니다.

기본 ACL이 없으면 umask대신 사용되지만 동일한 마스킹이 계속 수행됩니다.

open물론 이는 파일을 생성할 때 권한을 전달하는 권한을 제한할 수 있는 프로그램의 일반적인 사용자 정의와 일치합니다 . 즉, mode 를 사용하여 실행 권한을 제외하거나 0666mode 를 사용하여 다른 사용자가 파일에 액세스하지 못하도록 제외합니다 0600.

답변2

이는 다음 두 가지 질문에서 주변적으로 답변되었습니다.

umask는 ACL에 어떤 영향을 미치나요?

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로 원하는 작업을 수행할 수 없는 것처럼 보인다는 것을 의미합니다.

관련 정보