Linux 로컬 디렉터리 권한은 루트가 아닌 경우 물음표입니다.

Linux 로컬 디렉터리 권한은 루트가 아닌 경우 물음표입니다.

저장 장치 장애, 원격 스토리지(SAN, NAS) 장애 등 유사한 상황을 본 적이 있으며, 마운트 권한으로 인해 발생하는 유사한 상황도 본 것 같습니다. 그러나 내 홈 디렉토리와 동일한 파일 시스템에서 이런 일이 발생하는 것을 본 것은 이번이 처음입니다.

어떤 종류의 권한이 있나요? ACL이 아닌 SELinux가 아닌 마운트(동일한 ext4 파일 시스템에 있음)는 확실히 아닙니다. 그리고 뭐?

이 디렉토리가 어떻게 생성되었는지 기억이 나지 않습니다. 어떤 종류의 소프트웨어에 의해 생성되었을 가능성이 높습니다.

나에게 가장 이상한 부분은 디렉토리가 해당 디렉토리나 상위 정보(마지막 명령)를 볼 수조차 없다는 것입니다.

저는 Linux Mint Sarah를 사용하고 있습니다.

user01@MyPC ~/somedirectory $ ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ?            ? workspace
user01@MyPC ~/somedirectory $ ls -ld ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
drw-r--r-- 3 user01 user01 4096 Rgs 27  2016 ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:
user01@MyPC ~/somedirectory $ sudo file ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:: directory
user01@MyPC ~/somedirectory $ sudo ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
viso 4
drwxr-xr-x 3 user01 user01 4096 Rgs 27  2016 workspace
user01@MyPC ~/somedirectory $ sudo stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
  File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3937216     Links: 3
Access: (0644/drw-r--r--)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 12:57:33.990819052 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2017-03-13 14:56:40.960468954 +0200
 Birth: -
user01@MyPC ~/somedirectory $ sudo getfacl ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
# file: deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:
# owner: user01
# group: user01
user::rw-
group::r--
other::r--
user01@MyPC ~/somedirectory $ stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
  File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3937216     Links: 3
Access: (0644/drw-r--r--)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 12:57:33.990819052 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2017-03-13 14:56:40.960468954 +0200
 Birth: -
user01@MyPC ~/somedirectory $ stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
stat: nepavyksta patikrinti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
user01@MyPC ~/somedirectory $ sudo stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
  File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3937217     Links: 3
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 12:58:46.845727190 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2016-12-02 13:56:08.298109826 +0200
 Birth: -
user01@MyPC ~/somedirectory $ stat .
  File: '.'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3278479     Links: 23
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 09:46:22.102269130 +0300
Modify: 2017-09-20 17:33:04.564009275 +0300
Change: 2017-09-20 17:33:04.564009275 +0300
 Birth: -
user01@MyPC ~/somedirectory $ ll ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/.': Permission denied
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/..': Permission denied
viso 0
d????????? ? ? ? ?            ? ./
d????????? ? ? ? ?            ? ../
d????????? ? ? ? ?            ? workspace/

속성:

user01@MyPC ~/somedirectory $ sudo lsattr ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/
-------------e-- ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace
user01@MyPC ~/somedirectory $ sudo lsattr ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
-------------e-- ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace/directory2

답변1

파일을 읽을 때 권한을 확인하는 것으로 충분합니다. ls 폴더를 읽고 실행해야 합니다.

chmod -R a+X ./deploy_dir

대문자 X는 폴더(및 실행 비트가 설정된 파일)에서만 실행을 설정합니다.

답변2

파일을 읽을 수 있는 권한을 얻으려면 stat(2)해당 파일을 호출하고 파일이 포함된 디렉터리(경로의 모든 디렉터리)에 대한 실행/액세스 권한이 필요합니다. 이는 파일 이름을 사용하는 다른 모든 시스템 호출과 사실상 동일합니다. 그러나 디렉터리의 내용(파일 이름 목록)을 읽으려면 해당 디렉터리에 대한 읽기 권한만 필요합니다.

귀하의 예제 스니펫에서:

~/somedirectory $ ls -l .../bin/D\:
ls: negaliu pasiekti '.../bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ?            ? workspace

ls전화를 시도했는데 stat(".../bin/D:/workspace")오류가 발생하고 불만이 제기되었습니다. 일부 시스템에서는 여기처럼 디렉토리 readdir로 표시되는 .getdentsstatworkspace

여기서는 x 비트를 가진 사용자가 없음을 알 수 있습니다.

~/somedirectory $ ls -ld .../bin/D\:
drw-r--r-- 3 user01 user01 4096 Rgs 27  2016 .../bin/D:

루트는 권한 비트를 완전히 무시하므로 루트로서 전체 목록을 얻을 수 있습니다.

답변3

파일 속성을 보려면 해당 디렉터리에 대한 읽기 권한이 있어야 합니다. 이것이 불가능할 경우 물음표가 표시됩니다.

이 사용자가 정보를 읽을 수 없는 이유는 디렉터리 속성( .../D:/.위)을 확인하세요. 또 다른 가능한 원인은 디렉토리가 삭제되었거나 액세스 모드와 다른 이유로 액세스할 수 없다는 것입니다(예: 네트워크 파일 시스템, 오래된 핸들).

답변4

내 솔루션:

$ sudo mount -v | grep mount_point

이것은 mount_point에 마운트된 파일 시스템을 보여주고 아무것도 표시되지 않더라도 내 마운트 지점이 여전히 마운트되어 있음을 보여줍니다.

$ umount -f mount_point

이제 디렉토리 권한 및 권한이 올바르게 표시됩니다.

관련 정보