[Linux] chmod 로 파일 권한 변경하기
개요
chmod 명령어는 리눅스의 파일이나 디렉토리의 권한을 변경하는 명령어입니다.
사용법
리눅스에서 사용되는 명령어는 모두 대소문자를 구분하니 주의해주세요.
chmod 명령어의 사용법은 다음과 같습니다.
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
or: chmod [OPTION]... OCTAL-MODE FILE...
or: chmod [OPTION]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.
With --reference, change the mode of each FILE to that of RFILE.
-c, --changes like verbose but report only when a change is made
-f, --silent, --quiet suppress most error messages
-v, --verbose output a diagnostic for every file processed
--no-preserve-root do not treat '/' specially (the default)
--preserve-root fail to operate recursively on '/'
--reference=RFILE use RFILE's mode instead of MODE values
-R, --recursive change files and directories recursively
--help display this help and exit
--version output version information and exit
Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
기본 사용법은 아래와 같이 변경하고자 하는 권한과 파일명을 명시하여 실행하면 됩니다.
chmod 755 test.txt
리눅스 파일 권한
리눅스 파일은 user, group, others 별로 read, write, execute 권한을 부여할 수 있습니다.
ls 명령으로 현재 파일에 부여되어 있는 권한을 확인할 수 있습니다.
[root@peterdev ch]# ls -l
total 0
-rw-r--r-- 1 root root 0 Jun 4 08:45 test.txt
-rw-r--r-- 에서 맨앞의 - 는 file 인지 directory인지 구분하는 symbol 입니다.
[root@peterdev test]# ls -l
total 44
-rwxr-xr-x 1 root root 8576 May 10 08:38 a.out
-rw-r--r-- 1 root root 214 May 10 08:38 arr1.c
-rw-r--r-- 1 root root 425 May 10 07:30 arr.c
drwxr-xr-x 2 root root 4096 Jun 4 08:45 ch
drwxr-xr-x 2 root root 4096 May 3 14:27 john
-rw-r--r-- 1 root root 0 May 8 14:40 mv_test.dat
-rw-r--r-- 1 root root 0 May 9 06:06 new_file
-rw-r--r-- 1 root root 5 May 9 06:09 new.txt
drwxr-xr-x 2 root root 4096 May 3 14:27 peter
-rw-r--r-- 1 root root 33 May 14 09:00 test1.txt
-rw-r--r-- 1 root root 33 May 8 14:56 test2.txt
이렇게 directory인 경우에는 d 라는 symbol로 표시됩니다.
rw-r--r-- 로 표시되는 부분이 부여된 권한을 나타내는데 3개씩 끊어서 보면
앞에 3개가 user 즉 소유자(owner)의 권한이고,
중간에 3개는 group 에 대한 권한,
마지막 3개가 others 에 대한 권한이 됩니다.
이 권한을 8진수로 표현하면 rwx 권한을 다 갖는 경우 7이 됩니다.
각 권한을 숫자값으로 표현하면 r = 4, w = 2, x = 1 이기 때문에
r + w + x = 7
이렇게 되는 것이죠.
파일에 user와 group 에 대해서만 read 권한을 부여하려면 440 으로 적용하면 됩니다.
+, - 기호를 사용해서 특정 권한을 더하거나 뺄 수도 있습니다.
예제
chmod 700 test.txt
chmod +x test.txt
chmod g+w test.txt
chmod o-rwx test.txt
-Peter의 우아한 프로그래밍
여러분의 공감과 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 주시면 감사하겠습니다.