사용자 권한을 기반으로 권한 설정

사용자 권한을 기반으로 권한 설정

내 시스템의 기본 umask 설정으로 인해 파일 권한은 항상 그룹에 기본적으로 부여되고 다른 사람에게는 액세스 권한이 없습니다. 일반적으로 괜찮지만 다른 사람이 액세스해야 하는 소프트웨어를 설치하면 짜증이 납니다. 설치 후 사용 권한을 기준으로 트리에 있는 모든 파일 및 폴더의 권한을 재설정하는 빠른 방법이 있습니까?

쓰기를 제외한 기본적으로 사용자를 복사합니다.

rwx------ to rwxr-xr-x
rw------- to rw-r--r--

답변1

find이를 수행하려면 다음 방법을 사용할 수 있습니다 .

find <dirpath> -perm 700 -type d -exec chmod 755 {} \;  ## For directories
find <dirpath> -perm 600 -type f -exec chmod 644 {} \;  ## For files

답변2

다음을 수행할 수 있습니다.

find . ! -type l -print0 |
  perl -0 -lne '
    $m = (lstat$_)[2] & 07777;
    $u = ($m >> 6) & 5;
    chmod $m | $u | ($u<<3), $_'

즉, 사용자 권한을 얻고 제거합니다.쓰다비트( & 5) 및또는그게 도착한다그룹그리고다른권한.

답변3

당신이 선량한 UNIX 사용자이고 파일 이름에 공백이 없다고 가정합니다.

for file in $(find . -type f -o -type d)
do \
    user_perm=$(stat -c %a $file |cut -c1)
    other_perm=$(($user_perm&5))
    chmod $user_perm$other_perm$other_perm $file
done

관련 정보