내 Linux 시스템 중 일부에는 다음과 같은 디렉터리 트리가 있습니다.
/dir1/dir2/dir3/dir4/target
각 dir[1-4] 디렉터리 아래에는 여러 디렉터리가 있으며 이러한 모든 디렉터리(및 해당 하위 디렉터리)에는 750
권한이 있습니다. 이제 others
"대상" 디렉터리와 해당 하위 디렉터리를 찾아보고 싶습니다 . chmod -R o+rx
에서 실행하면 권한이 변경되지만 /dir1/dir2/dir3/dir4/target
상위 디렉터리에 권한이 없기 때문에 사용자는 디렉터리에 액세스할 수 없습니다. 서버 중 하나에서 다음 권한을 부여하여 문제를 해결했습니다./dir1/dir2/dir3/dir4/target
755
others
r-x
chmod -R o+x /dir1
chmod -R o+rx /dir1/dir2/dir3/dir4/target
위 명령이 /dir[1-4]의 모든 하위 디렉터리에 "traverse" 권한도 부여한다는 점을 고려하면 /dir[1-4] 디렉터리와 "/" 디렉터리에만 순회 권한을 제공하는 더 나은 명령이 있습니까? dir" [1-4]" 디렉토리 rx 권한 대상 디렉토리?
답변1
x
"기타" 디렉터리 /dir1/dir2/.../target
와 모든 중간 디렉터리(루트 디렉터리 제외)에 대한 권한과 r
경로 끝에 있는 디렉터리에 대한 권한을 설정합니다 .target
dir=/dir1/dir2/dir3/dir4/target
chmod o+r "$dir"
while [ -n "$dir" ]; do
chmod o+x "$dir"
dir=${dir%/*}
done
특정 디렉토리 경로에 대해 다음 명령이 실행됩니다.
chmod o+r /dir1/dir2/dir3/dir4/target
chmod o+x /dir1/dir2/dir3/dir4/target
chmod o+x /dir1/dir2/dir3/dir4
chmod o+x /dir1/dir2/dir3
chmod o+x /dir1/dir2
chmod o+x /dir1
dir
마지막 항목과 그 이후의 모든 항목을 제거하면 루프가 반복될 때마다 변수 값이 변경됩니다 /
.