리눅스 chmod: Difference between revisions
From CS Wiki
No edit summary |
No edit summary |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:리눅스]][[분류:정보보안기사]] | [[분류:리눅스]][[분류:정보보안기사]] | ||
해당 파일에 대한 권한을 변경한다. | 해당 파일에 대한 권한을 변경한다. | ||
* 유닉스와 리눅스 모두에서 명령어와 옵션이 같음 | |||
* 경로 : /bin/chmod | |||
==사용법== | ==사용법== | ||
=== 문법 === | |||
<pre class='shell'> | <pre class='shell'> | ||
$ chmod [권한] [파일] | |||
</pre> | </pre> | ||
=== 옵션 === | |||
* 모드 : 새로운 모드(접근 권한) | |||
* 파일명 : 모드를 변경하고 싶은 파일이나 디렉터리 이름 | |||
* -c, --changes : 변경된 파일 정보를 출력한다. | |||
* -f, --silent, --quiet : 대부분의 에러 메시지를 출력하지 않는다. | |||
* --help : 사용법을 출력한다. | |||
* -R, --recursive : 하위 디렉터리에 있는 모든 디렉터리/파일을 변경한다. | |||
* --reference=filename : 지정한 파일을 참조하여 퍼미션을 변경한다. | |||
* -v, --verbose : 각 파일 정보를 상세히 출력한다. | |||
* --version : 버전 정보를 출력한다. | |||
== 예제 == | |||
* ex) chmod 707 log.txt | |||
* ex) chmod u=rw o-r log.txt | |||
* 권한에 대해선 [[리눅스 권한]] 문서를 참조 | |||
* 설정된 권한을 보기 위해선 [[리눅스 ls]] 명령어를 사용 | |||
=== 전체 바꾸기 === | |||
* 특정 디렉터리 하위의 전체 파일/폴더에 대한 권한 변경을 위해선 -R 옵션을 이용한다. | |||
<pre> | |||
$ chmod -R 755 ./* | |||
</pre> | |||
* 그러나, 일반적으로 파일과 폴더는 같은 권한을 가지지 않음 | |||
** 파일은 666을 기본으로 하고, 폴더는 777을 기본으로 하며, | |||
** [[umask]]가 022인 경우 파일은 644, 폴더는 755로 적용되는 등, 동일하게 설정하지 않는 것이 상식적 | |||
* 이렇게 파일과 폴더 전체를 대상으로 퍼미션을 변경하는 경우 chmod -R 을 사용하기 적절치 않다. | |||
* find 명령어를 사용하는 것이 일반적이다. | |||
<pre> | |||
$ find /var/www/html -type d -exec chmod 755 {} \; | |||
$ find /var/www/html -type f -exec chmod 644 {} \; | |||
</pre> | |||
==같이 보기== | ==같이 보기== | ||
* [[리눅스 chgrp|chgrp 명령어]] : 파일에 대한 소유 그룹을 변경한다. | * [[리눅스 chgrp|chgrp 명령어]] : 파일에 대한 소유 그룹을 변경한다. | ||
* [[리눅스 권한]] | * [[리눅스 권한]] | ||
* [[리눅스 특수권한]] | * [[리눅스 특수권한]] |
Latest revision as of 04:16, 11 October 2021
해당 파일에 대한 권한을 변경한다.
- 유닉스와 리눅스 모두에서 명령어와 옵션이 같음
- 경로 : /bin/chmod
사용법[edit | edit source]
문법[edit | edit source]
$ chmod [권한] [파일]
옵션[edit | edit source]
- 모드 : 새로운 모드(접근 권한)
- 파일명 : 모드를 변경하고 싶은 파일이나 디렉터리 이름
- -c, --changes : 변경된 파일 정보를 출력한다.
- -f, --silent, --quiet : 대부분의 에러 메시지를 출력하지 않는다.
- --help : 사용법을 출력한다.
- -R, --recursive : 하위 디렉터리에 있는 모든 디렉터리/파일을 변경한다.
- --reference=filename : 지정한 파일을 참조하여 퍼미션을 변경한다.
- -v, --verbose : 각 파일 정보를 상세히 출력한다.
- --version : 버전 정보를 출력한다.
예제[edit | edit source]
- ex) chmod 707 log.txt
- ex) chmod u=rw o-r log.txt
- 권한에 대해선 리눅스 권한 문서를 참조
- 설정된 권한을 보기 위해선 리눅스 ls 명령어를 사용
전체 바꾸기[edit | edit source]
- 특정 디렉터리 하위의 전체 파일/폴더에 대한 권한 변경을 위해선 -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 {} \;