저는 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
)을 확인하세요.