+x 권한이 있는 디렉터리에는 상위 디렉터리가 없습니다. 언제 유용합니까?

+x 권한이 있는 디렉터리에는 상위 디렉터리가 없습니다. 언제 유용합니까?

folder다음 경로라는 폴더가 있다고 가정해 보겠습니다 .

my_path = /a/b/c/d/e/folder

file그리고 해당 폴더에서 호출되는 파일.

그런 다음 /a/에서 그룹 권한을 제거하기 위해 이 명령을 실행한다고 가정해 보겠습니다.

> chmod g-rwx -R /a/

이제 +rx다음 권한을 부여한다고 가정해 보겠습니다 folder.

> chmod g+rx /a/b/c/d/e/folder

그런 다음 내 그룹의 두 번째 사용자가 실행되는 경우:

> ls /a/b/c/d/e/folder

또는

> cat /a/b/c/d/e/folder/file 

g+x그녀에게 권한 오류가 발생하는데, 이는 모든 부모에게 액세스 권한을 제공 해야 하기 때문이라는 것을 알고 있습니다 folder. 그래서 내 질문은,언제 또는 왜+x상위 디렉터리에 권한을 부여하는 것이 유용합니까?아니요그것을 가지고?

감사해요

답변1

디렉토리의 파일을 CD하거나 액세스하려면 모든 상위 디렉토리에 +x 권한이 필요합니다.

파일을 나열하려면 디렉터리에 +r 권한이 필요합니다. 예는 다음과 같습니다.

다음 명령을 실행하여 일부 설정을 구성할 수 있습니다.

mkdir -p /a/b

touch /a/b/{file1,file2}

cd /a

echo 1 > b/file1

echo 2 > b/file2

전원 없음:

pwd
/a$ pwd
/a
/a$ chmod -rwx b
/a$ ls -l
d---------  4 mike  admin  136 Jun  1 14:44 b/
/a$ ls -l b/
ls: : Permission denied
/a$ cat b/file1
cat: b/file1: Permission denied

실행만

/a$ chmod +x b
/a$ ls -l
total 0
d--x--x--x  4 mike  admin  136 Jun  1 14:44 b/
/a$ ls -l b
ls: b: Permission denied
/a$ cat b/file1
a
/a$ ls -l b/file1
-rw-r--r--  1 mike  admin  2 Jun  1 14:43 b/file1

이제 읽어보세요:

/a$ chmod +r b/
/a$ ls -l
/a$ ls -l
total 0
dr-xr-xr-x  4 mike  admin  136 Jun  1 14:44 b/
/a$ ls -l b/
total 16
-rw-r--r--  1 mike  admin  2 Jun  1 14:43 file1
-rw-r--r--  1 mike  admin  2 Jun  1 14:43 file2

이 부분은 다소 혼란스러울 수 있지만 읽기만 하고 실행하지 않으면 실제로 디렉터리에 있는 파일 목록을 볼 수 있지만 inode 메타데이터는 읽을 수 없으므로 권한은 거부되지만 파일 목록은 계속 볼 수 있습니다. 다음 디렉토리에...

/a$ chmod -x b/
/a$ ls -l
total 0
dr--r--r--  4 mike  admin  136 Jun  1 14:44 b/
/a$ ls -l b
ls: file1: Permission denied
ls: file2: Permission denied

답변2

대부분의 경우 전체 디렉터리(하위 디렉터리 포함)에 대한 액세스 및 사용을 방지하려면 해당 디렉터리를 비재귀적으로 삭제하면 됩니다 -x. 따라서 아무런 해를 끼치지 않고 하위 디렉터리를 그대로 둘 수 있었습니다 +x.

하위 디렉터리에 대한 권한을 유지하는 것은 여러 가지 이유로 유용할 수 있습니다(특히 -x모든 사람에게 적용되지는 않지만 적어도 한 명의 사용자가 여전히 작업을 수행할 수 있는 경우).

예를 들어 해당 디렉터리 구조의 권한을 변경하는 동안 해당 컨테이너 디렉터리의 사용을 일시적으로 차단한 다음 +x한 번의 작업으로 전체 트리에 대한 액세스를 다시 활성화(최상위 디렉터리에 부여)할 수 있습니다.

또한 스크립트(반드시 소유자가 실행할 필요는 없음)가 디렉토리 트리를 임시 위치(다른 사람이 읽어서는 안 됨)에 백업하고 모든 것을 tar 파일에 저장하여 디렉토리 트리의 권한 설정을 유지하는 상황이 발생할 수도 있습니다. .

답변3

+x다음과 같은 경우 비재귀적 권한을 사용하고 싶습니다 .

chmod g+x /a /a/b /a/b/c /a/b/c/d /a/b/c/d/e

(사용자가 각 디렉터리 그룹의 구성원이라고 가정합니다. 그렇지 않은 경우 chmod o+x해당 디렉터리에 대해 이 작업을 수행해야 합니다.)

사용자가 작업을 성공적으로 수행하려면 ls /a/b/c/d/e/folder실행 권한이 있어야 합니다.모든읽기 권한이 있는 경로의 디렉터리입니다 folder.

당신이 그렇게한다면

chmod g+x -R /a

작동하지만 그룹에 실행 권한을 부여합니다.모든/a 아래의 파일 및 디렉터리. 이는 불필요하며 파일에 맞지 않을 수 있습니다.

답변4

디렉토리에서 x 비트를 제거하는 일반적인 경우는 사용자를 홈 디렉토리에 잠그는 것입니다.제한된 껍질cd절대 경로 이름에 대한 참조를 허용하지 않고 절대 경로를 사용한 프로그램 실행을 허용하지 않도록 선택할 수 있습니다 . 또한 cd ..홈 디렉터리의 상위 디렉터리에 액세스할 수 없으므로 효과적으로 잠겨 $PATH에 없는 프로그램을 실행할 수 없습니다.

관련 정보