저는 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 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 규칙을 언제 적용해야 하는지 알려줍니다. 출력을 보면 ls -al
ACL 규칙이 적용되는 한 권한 비트 목록 끝에 a가 표시되는 것을 볼 수 있습니다 +
. 그렇지 않으면 (적어도 간단한 테스트에서는) 표시되지 않습니다.
+
TLDR: 권한 목록에 이 내용이 표시되면 ls -al
액세스 제어 목록( getfacl
)을 확인하세요.