디렉토리 권한 예외

디렉토리 권한 예외

저는 Fedora를 다음과 같이 사용하고 있습니다.

[root@PANTRY 1000]# os
Linux 6.5.12-200.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Nov 20 22:12:09 UTC 2023 unknown
[root@PANTRY 1000]#

다음과 같이 비정상적인 권한을 표시하는 "doc"라는 하위 디렉터리가 있습니다.

[root@PANTRY 1000]# ld
ls: cannot access 'doc': Permission denied
ls: cannot access 'gvfs': Permission denied
drwx------. 4 me me  80 Nov 28 21:13 app
drwx------. 2 me me  60 Nov 28 20:07 at-spi
drwx------. 2 me me  60 Nov 29 06:30 dconf
d?????????? ? ?  ?    ?            ? doc
drwx--x--x. 2 me me  60 Nov 29 00:36 gdm
drwx------. 3 me me  60 Nov 28 20:07 gnome-shell
drwx------. 2 me me  40 Nov 28 20:07 gnupg
d?????????? ? ?  ?    ?            ? gvfs
drwx------. 2 me me  40 Nov 29 08:23 gvfsd
drwx------. 2 me me 100 Nov 28 20:07 keyring
drwx------. 2 me me  80 Nov 28 20:07 pulse
drwxr-xr-x. 7 me me 180 Nov 28 20:44 systemd
[root@PANTRY 1000]#

그 위치는 아래와 같습니다:

[root@PANTRY 1000]# pwd
/run/user/1000
[root@PANTRY 1000]#

나는 이 디렉토리를 고의로 만든 적이 없습니다.

"루트"로도 디렉터리에 "cd"할 수 없습니다. 아래를 참조하세요.

[root@PANTRY 1000]# cd /run/user/1000/doc/
bash: cd: /run/user/1000/doc/: Permission denied
[root@PANTRY 1000]#

"gvfs"가 비슷한 권한을 가지고 있다는 것을 알았지만 이전에도 본 적이 있습니다. 이것은 아티팩트입니까 아니면 실제 디렉터리입니까? 어떻게 처리해야 합니까?

답변1

/run마운트 는 /run/user/<$UID>두 가지 유형의 메모리 내 파일 시스템 tmpfs이므로 맞습니다. "실제"(읽기: 영구 저장소 지원) 디렉터리가 아닙니다.

/run/user/<$UID>/doc그리고 /run/user/<$UID>/gvfs마운트도 메모리 파일 시스템 유형입니다 fuse.portal. FUSE 모듈의 파일 시스템 기능은 다음과 같습니다.이를 제어하는 ​​사용자 ID로만 읽을 수 있습니다.. root해당 사용자로 쉘을 root사용 su <username>하거나 열지 않으면 (UID 0) 조차도 이 설치에서 읽을 수 없습니다 sudo -i -u <username>.

다음 명령을 실행하여 마운트와 해당 유형을 확인할 수 있습니다.

mount |grep /run

FUSE 파일 시스템에 대한 소유자가 아닌 액세스를 허용하도록 설치 시 분명히 fusermount -o allow_other ...지정할 수 있지만 이 디렉터리를 마운트하는 방법이나 현재 사용하는 옵션을 변경하는 방법을 모르겠습니다. 제거하면 fusermount -u /run/user/1000/doc문제가 발생할 수 있습니다.

기능은 무엇입니까?

~에 따르면FHS(파일 계층 표준) 최신 초안, /run:

이 디렉토리에는 시스템이 시작된 이후 시스템을 설명하는 시스템 정보 데이터가 포함되어 있습니다. 시작 프로세스가 시작될 때 이 디렉터리의 파일을 지워야 합니다(필요에 따라 제거하거나 잘라냄).

이 디렉토리의 목적은 한때 /var/run에 의해 제공되었습니다. 일반적으로 프로그램은 /run에 대해 설정된 이전 버전과의 호환성 요구 사항을 충족하기 위해 /var/run을 계속 사용할 수 있습니다. /run을 사용하도록 마이그레이션된 프로그램은 /var/run 섹션에 달리 명시되지 않는 한 /var/run 사용을 중지해야 합니다.

프로그램에는 /run 하위 디렉터리가 있을 수 있습니다. 이는 여러 런타임 파일을 사용하는 프로그램에 권장됩니다. 사용자는 /run 하위 디렉터리를 소유할 수도 있지만 /run 자체 및 기타 하위 디렉터리의 무단 사용을 방지하기 위해 액세스 권한을 적절하게 제한하도록 주의를 기울여야 합니다.

("시작할 때 지워야 합니다" 맞죠? 인메모리 파일 시스템을 완벽하게 사용하는 것 같습니다!)

디렉토리의 경우 /run/user/<$UID>다음 명령으로 생성됩니다.pam_systemd또는eloginddconf, pulse, gnome-keyring-daemon 등과 같이 사용자가 로그인할 때 백그라운드에서 실행되는 다양한 사용자 프로그램에서 사용되는 이러한 프로그램에는 잠금 파일, PID 파일, 소켓 등과 같은 임시 저장 위치가 필요합니다. . 시스템에 기록된 다양한 사용자 UID에 대한 디렉터리 수는 몇 개입니까? 일반적으로 디스크에 저장되지 않습니다. 그 이유는 여기에 대한 정보가 포함되어 있기 때문입니다.달리기프로그램이므로 시스템을 종료하거나 다시 시작한 후에는 더 이상 사용할 수 없습니다. 이는 또한 SSD의 마모를 줄여줍니다(약간이지만).

/run/user/<$UID>/gvfs그놈 데스크탑 환경은 그놈 데스크탑 실행과 관련된 서비스를 위해 특별히 추가된 것 같습니다 .

관련 정보