권한이 거부되었습니다: 디렉토리에 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

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

sudo cdcd이 명령은 셸에 내장된 명령이므로 찾을 수 없습니다 . 내장되어 있지 않으면 작동하지 않습니다. 현재 셸의 프로세스 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 규칙을 언제 적용해야 하는지 알려줍니다. 출력을 보면 ls -alACL 규칙이 적용되는 한 권한 비트 목록 끝에 a가 표시되는 것을 볼 수 있습니다 +. 그렇지 않으면 (적어도 간단한 테스트에서는) 표시되지 않습니다.

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

관련 정보