모든 마운트를 건너뛰면서 $HOME의 모든 디렉터리에 대한 권한을 빠르게 변경합니다.

모든 마운트를 건너뛰면서 $HOME의 모든 디렉터리에 대한 권한을 빠르게 변경합니다.

사용자의 홈 디렉터리에 하나 이상의 NFS 탑재 지점이 포함되어 있는 경우 해당 탑재를 건너뛰고 디렉터리 권한을 효과적으로 변경할 수 있는 방법은 무엇입니까?

chmod o-rwx사용자의 홈 디렉터리 아래에 있는 제거된 모든 디렉터리에서 실행 하고 싶습니다 .

시스템의 모든 사용자에 대해 이 작업을 수행할 것이므로 루트로 명령을 실행하겠습니다. (NFS 마운트에는 root_squash마운트 옵션이 있습니다.)

내가 시도한 것은 다음과 같습니다. 그러나 예상대로 작동하지 않습니다.

sudo find /home/myuser/ -mount -path ./Documents -prune -o -type d -exec chmod o-rwx {} \;
chmod: changing permissions of '/home/myuser/Documents': Operation not permitted

오류 메시지를 피하고 싶습니다. 게다가 find 명령을 실행하는 데 시간이 오래 걸립니다. 나는 이것이 마운트 지점(많은 디렉터리와 파일이 포함되어 있음)으로 내려간다는 것을 의미한다고 믿습니다.

내 명령의 또 다른 문제는 건너뛸 위치를 명시적으로 코딩해야 한다는 것입니다.모든 사용자에게는 문서가 설치되어 있지만 일부 사용자에게는 다른 이름으로 다른 NFS도 설치되어 있습니다.

내 목표는 chmod o-rwx사용자 계정의 간단한 디렉터리 권한 문제를 자동으로 수정하는 것입니다(예: 내 상황에서 어떻게 이것을 할 수 있습니까?

답변1

이것이 내가 생각해낸 해결책이다:

find /home/$theuser -mount -maxdepth 1 ! -fstype nfs4 ! -fstype nfs -type d -exec chmod o-rwx {} \;

부정적인 fstype옵션은 내 문제 중 하나 또는 두 가지를 해결했습니다. 또 다른 문제(속도)를 수정했습니다 -maxdepth 1.

이 두 가지 옵션을 결합하는 것이 가능합니다 -fstype. 아는 사람이 있으면 이 답변을 편집하십시오.

관련 정보