권한 거부됨: 디렉토리에 CD를 넣습니다.

권한 거부됨: 디렉토리에 CD를 넣습니다.

저는 Chromebook을 사용하고 있으며 셸을 통해 Android 컨테이너 내부를 탐색하고 싶습니다. 컨테이너는 경로에 마운트됩니다 /run/containers/android_XXXXX. cd디렉토리에 들어가려고 하면 Permission Denied. 로 명령을 실행해 보았지만 sudo어떤 이유로 cd명령에 액세스할 수 없게 되었습니다. chmod u+x디렉토리를 실행했지만 주사위가 없습니다.

여기에서 어떤 조치를 취할 수 있나요?

나는 stat다음을 반환하는 디렉토리를 실행했습니다.

  File: ‘android_XXXXXX/’
  Size: 80              Blocks: 0          IO Block: 4096   directory
Device: fh/15d  Inode: 59640       Links: 3
Access: (0700/drwx------)  Uid: (655360/ UNKNOWN)   Gid: (655360/ UNKNOWN)
Context: u:object_r:tmpfs:s0
Access: 2016-10-31 04:04:52.680000040 +0000
Modify: 2016-10-31 04:04:52.200000040 +0000
Change: 2016-10-31 04:44:54.990001186 +0000
 Birth: -

답변1

디렉토리는 drwx------uid가 655350(비밀번호 파일에 나열되지 않은) 사람만이 읽거나 입력할 수 있도록 되어 있습니다.

sudo cd명령 을 찾을 수 없는 것이 cd예상되며 이는 쉘에 내장되어 있습니다. 내장되어 있지 않으면 작동하지 않습니다. 현재 셸의 프로세스 ID가 54000이고 /bin/cd 명령을 실행했는데 PID 54309일 수 있습니다. 프로세스 54309의 디렉터리가 변경된 다음 종료됩니다. 프로세스 54000은 여전히 ​​원래 디렉터리에 있습니다.

chmod u+x권한을 변경합니다 user (owner).

당신이 원하는 것은sudo chmod go+rx /run/containers/android_XXXXX

답변2

언급된 @icarus와 같은 권한을 확인하는 것 외에도 ACL(액세스 제어 목록)을 확인하여 getfacl기본 파일 액세스 권한을 재정의하는 규칙이 없는지 확인해야 합니다.

참고: getfacl시스템에 존재하지 않는 경우에는 문제가 아닐 수 있습니다.


문제가 되어서는 안 되는 ACL의 예입니다.

$ getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

이는 표준 POSIX 액세스 규칙 외에 추가 ACL 규칙이 적용되지 않았음을 나타냅니다. ls -ald권한 측면에서 의 출력과 일치하는 것을 볼 수 있습니다 . ( -d인수는 ls내용이 아닌 디렉토리 자체를 표시하도록 지시합니다.)

$ ls -ald test/
drwxr-xr-x 2 root root 4096 May  8 19:11 test/

문제를 일으킬 수 있는 ACL의 예입니다.

$ getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
user:mc:r--
group::r-x
mask::r-x
other::r-x
$ ls -ald test/
drwxr-xr-x+ 2 root root 4096 May  8 19:11 test/

이 경우 의 출력을 보면 ls -ald문제가 없다고 생각할 수 있습니다. 그러나 ACL 규칙은 POSIX 규칙보다 적용되기 때문에 사용자는 mc실행 권한이 부족하여 디렉터리로 변경할 수 없으며 다른 권한 집합이 mc.

하지만 주목할 점은 소유자 권한이 다른 모든 ACL 규칙보다 우선하는 것처럼 보이며 그룹 소유자 권한도 마찬가지라고 생각합니다.

Arch Wiki에는 ACL에 대한 자세한 정보가 있습니다. 확인해 보세요https://wiki.archlinux.org/title/Access_Control_Lists그들에 대해 더 알고 싶다면.


getfacl당연히, 그것이 문제인지 항상 확인하고 싶지 않을 수도 있고 확인하는 것을 잊어버릴 수도 있습니다. 다행히 ls -al추가 ACL 규칙이 적용되면 알려줍니다. 의 출력을 살펴보면 ACL 규칙이 적용될 때마다 권한 비트 목록 끝에 이 표시되는 것을 ls -al볼 수 있으며 , 그렇지 않은 경우에는 표시되지 않습니다(적어도 짧은 테스트에서는 그런 것으로 보입니다). +.

+TLDR: 의 권한 목록에 이 표시되면 ls -al액세스 제어 목록( getfacl)을 확인하세요.

관련 정보