각 가정 사용자를 재귀적으로 선택합니다.

각 가정 사용자를 재귀적으로 선택합니다.

좋습니다. 내 홈 폴더에는 약 100개의 디렉터리가 있으며 각 디렉터리는 홈 사용자가 소유합니다. 때로는 일부 파일을 루트로 수동으로 교체해야 하므로 권한이 엉망이 되고 일부 파일은 더 이상 해당 사용자에게 속하지 않습니다. 이 문제를 해결하려면 항상 홈 디렉터리에서 다음 명령을 사용해야 합니다.

chown -R user:user user/

이제 100명의 사용자 모두에 대해 이 작업을 수행할 수 없기 때문에 몇 가지 단축키를 찾고 있습니다.

나는 무엇을 할 것인지 알고 싶습니다:

chown -R *:* *

답변1

완전한 대답은

1) 예를 들어 파일을 엽니다. vi chown_homedirs

2) 다음 코드를 입력하세요

#!/bin/bash

cd /home &&    
for h in *
  do 
    chown -R "$h:$h" "$h"; 
  done

3) 파일 저장

4)chmod +x chown_homedirs

5) 실행./chown_homedirs

참고: 사용자 디렉터리에 공백이 있으면 항상 확장명을 인용해야 합니다. 확장을 참조하지 않으면 작업이 실패하고 예상치 못한 결과가 발생할 수 있습니다.

답변2

당신은 그것을 사용할 수 있습니다통계자료파일의 사용자 및 그룹 소유권을 얻은 다음 이를 사용하여 파일을 업데이트합니다.

#!/bin/bash
cd /home
for file in *
do
    user=$(stat -c %U "$file")
    group=$(stat -c %G "$file")
    echo chown -R "$user":"$group" "$file"
done

여기에는 소유자/그룹/디렉토리가 동일하지 않은 경우가 포함됩니다. 테스트 결과가 괜찮아 보이면 당연히 에코를 삭제하세요.

관련 정보