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
- Ubuntu/Linux - 특정 이름이 들어간 파일 모두 찾고 삭제하기
- Ubuntu/Linux - 특정 이름이 포함된 프로세스 모두 종료
- Ubuntu/Linux - 사용자 계정 이름 확인 (id, whoami)
- Ubuntu/Linux - E: unable to locate package 에러 해결
- Ubuntu 22.04/20.04 - Yarn 설치 방법
- Linux/Ubuntu - grep 명령어로 문자열 검색
- Linux/Ubuntu - 터미널에서 seq로 명령어 N회 반복
- Linux/Ubuntu - wc 명령어로 Line(줄) 개수 세기
- bash: pip: command not found 문제 해결 (Linux/Ubuntu)
- Ubuntu 22.04 - Swap 메모리 늘리기
- Linux - 파일이 수정된 날짜/시간 확인 방법
- Linux - 파일, 디렉토리 삭제 명령어(rm -rf, rmdir)
- 우분투 22.04 - deb 파일 설치하기
- Ubuntu 20.04 - OpenJDK 11 설치, 삭제
- Linux - ps 명령어로 실행 중인 프로세스(PID) 확인
- Ubuntu 20.04 - SSH 설치와 접속 방법
- Ubuntu에서 PPA 저장소 추가, 제거 방법
- Ubuntu 22.04 - Brave 브라우저 설치
- Ubuntu 22.04 - 프로스트와이어(FrostWire) 설치
- Ubuntu 22.04 - Remmina 설치 방법
- Ubuntu 22.04 - Rust 설치하기
- Ubuntu 22.04 - 텔레그램 설치하기
- Ubuntu - Deluge 토렌트 클라이언트 설치
- Ubuntu JDK 17 (OpenJDK) 설치, 삭제
- Ubuntu 20.04 스팀(Steam) 설치 방법
- Ubuntu에서 draw.io 설치하는 방법
- 우분투에 VMware 설치하기
- [Ubuntu] VMware에서 Windows 11 설치
- Vi/Vim에서 1줄 또는 여러줄 삭제 방법
- Vi/Vim에서 라인 번호 표시하 기
- 우분투에서 rar 압축, 압축 풀기
- Ubuntu에서 구글 드라이브 사용하기 (로컬 폴더에 마운트)
- [Ubuntu] apt-cache search, 설치 가능한 패키지 검색
- Ubuntu - DNS 캐시 삭제 방법
- Ubuntu에서 사용할 수 있는 Text Editor 소개