특정 작업을 수행할 때 find
오류 du
가 ~/.cache
발생합니다.
$ ls ~/.cache/gnome-control-center
ls: cannot open directory /home/user1/.cache/gnome-control-center: Permission denied
소유자가 디렉터리를 읽거나 탐색할 수 없도록 하는 이상한 권한이 있습니다(그러나 공유된 경우 사용자 그룹은 가능합니다).
$ ls -ld ~/.cache/gnome-control-center
d-w-r-xr-T. 2 user1 user1 4096 Sep 30 16:51 /home/user1/.cache/gnome-control-center
이는 쓰기 전용 드롭박스처럼 보이기 시작하지만 일관되지 않게 적용되므로 "그룹" 및 "기타"는 이를 쓰기 전용이 아닌 읽기 전용으로 처리합니다. (이전 엔터프라이즈 환경에서) 기본 그룹이 있다고 가정하면 user
(거부가 우선하고 권한이 왼쪽에서 오른쪽으로 읽히기 때문에) 누구나 디렉토리를 읽을 수 있습니다.와는 별개로소유자. 그러나 상위 항목은 소유자 .cache
만 읽고 탐색할 수 있으므로 그럴 수 없습니다.
확인했어요이런 일은 다른 사람들에게도 일어난다. 나는 두 가지 질문을하고 있다고 생각합니다 :
- 이 허가가 어리석은 이유가 문서화되어 있습니까?
- 자신의 홈 디렉토리에 저장된 디렉토리에서 소유자를 잠그는 데에는 어떤 이유가 있을 수 있습니까?
답변1
이것은 버그이며 GNOME 3.30에서 수정되었습니다.gitlab.gnome.org/GNOME/gnome-control-center/-/issues/49.
0700
이 문제는 지원되지 않는 사용자 디렉터리 권한의 원시 8진수 값으로 인해 발생하며, 이 값은 10진수로 잘못 변환됩니다 700
. 이 문제를 해결하려면 값을 문자열 '0700'
값 으로 작성해야 합니다 meson.build
.
원천:github.com/GNOME/gnome-control-center/commit/37a6b940cb83d97b808da77f397e34100beb263f
빌드: config.h의 "USER_DIR_MODE" 값 수정
meson은 사용자 구성 디렉터리를 생성할 때 기본 권한으로 사용되는 원시 8진수 값으로 "USER_DIR_MODE"를 정의합니다.
그러나 중간자는 원래의 8진수 값 [0]을 지원하지 않으므로 정의에서 초기 "0" 값이 손실됩니다. 따라서 디렉터리가 잘못된 권한으로 생성되었습니다.
중간자에서 8진수 값을 문자열로 사용하도록 변경되었으므로 정의가 올바른 값을 갖습니다.
수정 #49