특정 디렉토리내의 모든 파일과
디렉토리의 소유자와 소유그룹을 모두 한번에 변경하기
서버작업을
하다 보면 특정 디렉토리내의 모든 파일과 디렉토리들을 특정 소유자와 소유그룹으로 변경해야 하는 경우가 흔히 발생합니다.
예를 들어 웹에서 자료실 등의 파일업로드 디렉토리의 소유자와 소유그룹을
nobody와 nobody로 해줘야 할 때가 종종 있을 것입니다.
즉, Apache에서 특정 디렉토리내에 파일을 저장하려면 읽기, 쓰기
권한이 있어야 하는데 디렉토리의 소유자와 소유그룹을 nobody로 설정해 버리면 간단히 해결할 수 있으므로
이런 작업이 필요합니다.
그렇다면
특정 디렉토리내에 존재하는 모든 파일과 서브디렉토리의 소유자와 소유그룹을 한꺼번에 변경하려면 어떻게 할까요? 이는 다음 예와 같이 chown명령어의
-R옵션을 사용하면 간단히 해결 할 수 있습니다.
아래의 예를 보겠습니다.
[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x 7 bible1
bible2 4096 9월 15 20:41
dir1
-rw-r--r-- 1 bible
root 41 9월 15 20:22
file1
-rw-r--r-- 1 bible
bible2 56 9월 15 20:22
file2
[root@host1 commmand]#
[root@host1 commmand]# cd dir1
[root@host1 dir1]#
[root@host1 dir1]# ls
-l
합계 28
drwxr-xr-x 4 root
root 8192 9월 15 20:40
admin
drwxr-xr-x 4 root
root 4096 9월 15 20:40
board
drwxr-xr-x 2 root
root 4096 9월 15 20:40
phplib
drwxr-xr-x 3 root
root 4096 9월 15 20:41
shop
drwxr-xr-x 2 root
root 4096 9월 15 20:39
system_check
-rw-r--r-- 1 root
root 17 7월 16 2002 test.php
[root@host1 dir1]#
[root@host1 dir1]# cd ..
[root@host1 commmand]#
[root@host1 commmand]# chown -R
nobody:nobody dir1
[root@host1 commmand]#
[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x 7 nobody
nobody 4096 9월 15 20:41
dir1
-rw-r--r-- 1 bible
root 41 9월 15 20:22
file1
-rw-r--r-- 1 bible
bible2 56 9월 15 20:22
file2
[root@host1 commmand]#
[root@host1 commmand]# cd dir1
[root@host1 dir1]#
[root@host1 dir1]# ls -l
합계 28
drwxr-xr-x 4 nobody
nobody 8192 9월 15 20:40
admin
drwxr-xr-x 4 nobody
nobody 4096 9월 15 20:40
board
drwxr-xr-x 2 nobody
nobody 4096 9월 15 20:40
phplib
drwxr-xr-x 3 nobody
nobody 4096 9월 15 20:41
shop
drwxr-xr-x 2 nobody
nobody 4096 9월 15 20:39
system_check
-rw-r--r-- 1 nobody
nobody 17 7월 16 2002 test.php
[root@host1 dir1]#
|
위의 예는 dir1과 그 안에 있는 모든 파일과 디렉토리들의 소유자와 소유그룹을
nobody로 변경한 예 입니다.
dir1내에 또다른 서브디렉토리가 존재한다면 그 안에 있는 모든 파일과 디렉토리들의 소유자와
소유그룹도 nobody로 변경이 됩니다.
즉, 지정된 디렉토리와 그 하위의 모든 파일과 디렉토리들을 한꺼번에 특정 소유자와 소유그룹으로 변경하고자 할 때에는
위의 예와 같이 -R옵션을 사용하면 됩니다.