chmod는 파일이나 디렉터리의 권한 등의 모드를 변경합니다.
명령어는 다음과 같이 쓸 수 있습니다.
$ chmod [options] mode file1
권한 변경
chmod 폴더에는 다음과 같이 4개의 파일들이 있습니다. 맨 왼쪽에 9개의 문자 rwxr-xr-x는 파일의 권한(모드)을 의미합니다. ls -l을 사용하면 파일의 권한 상태를 볼 수 있습니다.
chmod$ ls -l
total 16
-rwxrwxrwx 1 js js 6 3월 10 16:02 file1.txt
-rw-r--r-- 1 js js 6 3월 10 16:02 file2.txt
-rw-r--r-- 1 js js 6 3월 10 16:02 file3.txt
-rw-r--r-- 1 js js 6 3월 10 16:02 file4.txt
일반적으로 사용자가 파일에 접근할 때 User, Group, Other의 권한이 있어야 접근이 가능합니다. 이 권한을 보여주는 것이 rwxrwxrwx와 같은 상태입니다.
위의 ls -l 출력 내용에서, rwxrwxrwx는 권한 상태를 보여줍니다. 앞에서 부터 문자 3개 rwx는 Owner의 권한, 그다음 문자 3개 rwx는 Group의 권한, 그 다음 문자 3개 rwx는 Other의 권한입니다.
그리고 권한의 r은 read, w는 write, x는 execute(실행가능)를 의미합니다.
파일에 각 모드마다 권한을 다르게 설정해보겠습니다.
chmod$ chmod u=rwx,g=rx,o=r file1.txt
위의 명령어로 user에 rwx(read, write, execute), group에 rx(read, write), other에 r(read) 권한을 file1.txt에 부여하였습니다.
ls -l로 확인해보시면 설정한대로 변경된 것을 볼 수 있습니다.
chmod$ ls -l
total 16
-rwxr-xr-- 1 js js 6 3월 10 16:02 file1.txt
위의 명령어 $ chmod u=rwx,g=rx,o=r file1.txt는 다음과 같이 간결하게 사용할 수도 있습니다.
chmod$ chmod 754 file1.txt
chmod$ ls -l
total 16
-rwxr-xr-- 1 js js 6 3월 10 16:02 file1.txt
754는 u=rwx,g=rx,o=r를 의미합니다. 7은 user, 5는 group, 4는 other의 권한입니다. 그리고 각 숫자는 다음 권한들의 조합(합)입니다.
- 4는 read를 의미
- 2는 write를 의미
- 1은 execute를 의미
- 0은 아무 권한도 없는 것을 의미
그래서 7은 read, write, execute(4+2+1) 권한들의 조합이고, 6은 read, write(4+2+0) 권한들의 조합입니다.
하위 폴더 전체 권한 변경(Recursive)
폴더 전체의 권한을 변경해주려면 -R옵션을 사용하면 됩니다. Recursive하게 폴더 아래의 하위 폴더들 까지도 모두 적용됩니다.
$ chmod -R 755 chmod/
확인해보면 폴더 내부의 모든 파일의 권한이 755로 변경된 것을 확인할 수 있습니다.
$ ls -l chmod/
total 16
-rwxr-xr-x 1 js js 6 3월 10 16:02 file1.txt
-rwxr-xr-x 1 js js 6 3월 10 16:02 file2.txt
-rwxr-xr-x 1 js js 6 3월 10 16:02 file3.txt
-rwxr-xr-x 1 js js 6 3월 10 16:02 file4.txt
특정 권한 추가/제거
User의 execute 권한만 빼고 싶다면 간단히 u-x를 사용하면 됩니다. 다른 권한들은 건드리지 않고 user의 x권한만 뺀다는(-) 의미입니다.
$ ls -l
-rwxr-xr-x 1 js js 6 3월 10 16:02 file1.txt
$ chmod u-x file1.txt
$ ls -l
-rw-r-xr-x 1 js js 6 3월 10 16:02 file1.txt
반대로 권한을 부여하려면 u+x를 입력하면 됩니다. 다른 권한은 건드리지 않고 user의 x권한만 더한다는(+) 의미입니다.
$ ls -l
-rw-r-xr-x 1 js js 6 3월 10 16:02 file1.txt
$ chmod u+x file1.txt
$ ls -l
-rwxr-xr-x 1 js js 6 3월 10 16:02 file1.txt
group, other도 모두 비슷하게 사용하시면 됩니다. 그리고 위에서는 하나의 권한만 제거, 추가하였지만 다음처럼 여러개의 권한을 빼거나 더할 수 있습니다. 예를들어, group에서 read와 write를 제거하려면 g-rw을 사용하면 됩니다.
$ ls -l
-rwxr-xr-x 1 js js 6 3월 10 16:02 file1.txt
$ chmod g-rx file1.txt
$ ls -l
-rwx---r-x 1 js js 6 3월 10 16:02 file1.txt
모든 타입에 권한을 부여하기
모든 User, Group, Other 들의 권한을 한번에 변경하려면 a=를 사용하면 됩니다. a=rwx는 모든 그룹에 rwx 권한을 설정하라는 의미입니다.
$ chmod a=rwx file1.txt
$ ls -l
-rwxrwxrwx 1 js js 6 3월 10 16:02 file1.txt
Related Posts
- Linux - 파일, 디렉토리 삭제 명령어(rm -rf, rmdir)
- Linux - 파일이 수정된 날짜/시간 확인 방법
- Linux - touch로 파일 생성, 파일의 날짜/시간 변경
- Linux - zip, unzip으로 압축 및 압축 해제
- Linux - 디렉토리 용량 확인
- Linux - IP 주소 확인
- Linux - kill 명령어로 실행 중인 프로세스 종료
- Linux - MAC Address 확인 방법
- Linux - ps 명령어로 실행 중인 프로세스(PID) 확인
- Linux - ping 테스트 방법
- Linux - 심볼릭 링크 생성 및 삭제
- Linux - 터미널에서 현재 작업 위치 확인
- Linux - find 명령어
- Linux - df, du 명령어 정리 (파일, 디스크 용량 확인)
- Linux - wget으로 파일 다운로드 (zip, tar.gz 압축 해제)
- Linux - tar, tar.gz, tar.bz2 압축/해제 명령어 정리
- Linux - cat 명령어 사용 방법
- Linux - chmod 명령어 사용 방법 (권한, 모드 변경)
- Linux - chown 명령어로 소유자 변경하는 방법
- Linux - history 명령어 사용 방법 (Shell 사용 기록)
- Linux - tee 명령어로 터미널 출력 내용을 파일로 저장하기
- 리눅스 - 쉬뱅(Shebang)은 무엇인가?
'OS > Linux' 카테고리의 다른 글
[명령어] sar 설명 (0) | 2021.11.20 |
---|---|
[AWS] linux에서 nc (Netcat) 을 이용하여 방화벽 확인하기 (0) | 2021.11.16 |
[리눅스(Linux) 명령어] zip 파일 및 폴더 압축하기 (unzip 압축풀기) (0) | 2021.11.16 |
[AWS] Linux rpm으로 설치한 package 삭제하기 (0) | 2021.11.05 |
[AWS] Linux yum 으로 설치한 package 삭제하기 (0) | 2021.11.04 |
댓글