본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

해당 파일에 대한 권한을 변경한다.

  • 유닉스와 리눅스 모두에서 명령어와 옵션이 같음
  • 경로 : /bin/chmod
$ chmod [권한] [파일]
  • 모드 : 새로운 모드(접근 권한)
  • 파일명 : 모드를 변경하고 싶은 파일이나 디렉터리 이름
  • -c, --changes : 변경된 파일 정보를 출력한다.
  • -f, --silent, --quiet : 대부분의 에러 메시지를 출력하지 않는다.
  • --help : 사용법을 출력한다.
  • -R, --recursive : 하위 디렉터리에 있는 모든 디렉터리/파일을 변경한다.
  • --reference=filename : 지정한 파일을 참조하여 퍼미션을 변경한다.
  • -v, --verbose : 각 파일 정보를 상세히 출력한다.
  • --version : 버전 정보를 출력한다.

권한을 바꿀 수 있는 사용자

편집 원본 편집
  • 파일의 권한(모드)은 그 파일의 소유자와 root(슈퍼유저)만 바꿀 수 있다.
  • 파일에 대한 쓰기 권한은 파일의 내용을 고칠 권한이지 권한을 바꿀 권한이 아니다. 쓰기 권한이 있어도 소유자가 아니면 chmod 는 Operation not permitted 로 실패한다.
  • 소유자를 바꾸는 chown 은 root 만 할 수 있다. 소유 그룹은 소유자가 자신이 속한 그룹으로만 바꿀 수 있다(chgrp).
  • SetUID 가 설정된 실행 파일은 실행하는 동안 파일 소유자의 권한으로 실행된다 → 리눅스 특수권한
  • ex) chmod 707 log.txt
  • ex) chmod u=rw o-r log.txt
  • 권한에 대해선 리눅스 권한 문서를 참조
  • 설정된 권한을 보기 위해선 리눅스 ls 명령어를 사용

숫자 모드 읽기

편집 원본 편집

숫자 세 자리는 차례로 소유자(User)·그룹(Group)·다른 사용자(Other)이고, 읽기 4 + 쓰기 2 + 실행 1 을 더한 값이다.

숫자 기호 뜻
755 rwxr-xr-x 소유자는 읽기·쓰기·실행, 그룹과 다른 사용자는 읽기·실행
775 rwxrwxr-x 그룹에게도 쓰기 권한을 준다
777 rwxrwxrwx 모두에게 모든 권한. 보안상 피한다
644 rw-r--r-- 일반 파일의 흔한 권한
555 r-xr-xr-x 아무도 쓸 수 없다(소유자도 쓰기 없음)
  • -R 이 없으면 지정한 디렉터리 자신의 권한만 바뀌고 그 안의 파일과 하위 디렉터리는 그대로다. 하위까지 한꺼번에 바꾸려면 chmod -R 755 /var/www/upload 처럼 쓴다.
  • 특정 디렉터리 하위의 전체 파일/폴더에 대한 권한 변경을 위해선 -R 옵션을 이용한다.
$ chmod -R 755 ./*
  • 그러나, 일반적으로 파일과 폴더는 같은 권한을 가지지 않음
    • 파일은 666을 기본으로 하고, 폴더는 777을 기본으로 하며,
    • umask가 022인 경우 파일은 644, 폴더는 755로 적용되는 등, 동일하게 설정하지 않는 것이 상식적
  • 이렇게 파일과 폴더 전체를 대상으로 퍼미션을 변경하는 경우 chmod -R 을 사용하기 적절치 않다.
  • find 명령어를 사용하는 것이 일반적이다.
$ find /var/www/html -type d -exec chmod 755 {} \;
$ find /var/www/html -type f -exec chmod 644 {} \;