japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~

 
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.
 
 
    리눅스>>리눅스 명령어>>


chown (파일과 디렉토리의 소유주와 소유그룹 변경)
 

chown

CHange OWNer의 약어로서 파일이나 디렉토리의 소유주와 소유그룹을 변경할 때에 사용하는 명령어이다.
파일과 디렉토리의 소유주와 소유그룹은 아래 예와 같이 각각 굵은글자로 표시된 부분이다.

 [root@host1 commmand]# ls -l
합계 12
drwxr-xr-x    2 root     root         4096  9월 15 20:02 dir1
-rw-r--r--    1 root     root           41  9월 15 20:22 file1
-rw-r--r--    1 root     root           56  9월 15 20:22 file2
[root@host1 commmand]#

위의 예어서 dir1이라는 디렉토리와 file1, file2라는 파일은 소유주와 소유그룹이 모두 root로 되어 있다.

즉 파일이나 디렉토리 모두 3번째 필드에 해당하는 것이 소유주이며, 네번째 필드에 해당하는 것이 소유그룹이다.

 

사용형식
       chown [-Rcfv] [--recursive] [--changes] [--help] [--version] [--silent] [--quiet] [--verbose]
       [user][:.][group] file...

 

사용예 #1

위의 file1라는 소유주를 bible로 변경해 보겠다.

[root@host1 commmand]# chown bible file1
[root@host1 commmand]#
[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x    2 root     root         4096  9월 15 20:02 dir1
-rw-r--r--    1 bible    root           41  9월 15 20:22 file1
-rw-r--r--    1 root     root           56  9월 15 20:22 file2
[root@host1 commmand]#

위에서 보다시피 file1 파일의 소유주가 bible로 변경이 되었다.
물론 이런 명령어가 허용이 되려면 파일에 대한 소유권이 있어야만 가능한 일이다.
아무나 파일또는 디렉토리의 퍼미션을 변경할 수 있는 것은 아니다.

자, 그럼 이번에는 소유주와 소유그룹을 한꺼번에 변경하려면 어떻게 할까?
다음의 예를 보자.


사용예 #2

다음과 같이 :(콜론)으로 구분하여 "소유주:소유그룹"을 지정하면 소유주와 소유그룹이 변경이 된다.

[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x    2 root     root         4096  9월 15 20:02 dir1
-rw-r--r--    1 bible    root           41  9월 15 20:22 file1
-rw-r--r--    1 root     root           56  9월 15 20:22 file2
[root@host1 commmand]#
[root@host1 commmand]# chown bible:bible2 file2
[root@host1 commmand]#
[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x    2 root     root         4096  9월 15 20:02 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]#

위의 예는 file2라는 파일의 소유주를 bible, 그리고 소유그룹을 bible2로 변경한 예이다.


사용예 #3

이번에는 디렉토리의 소유주와 소유그룹을 변경해 보자.
리눅스에서는 디렉토리도 파일로 취급하므로 소유주와 소유그룹을 변경하는 방법은 파일과 동일하다.

[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x    2 root     root         4096  9월 15 20:02 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]# chown bible1:bible2 dir1
[root@host1 commmand]#
[root@host1 commmand]# ls -l
합계 12
drwxr-xr-x    2 bible1   bible2       4096  9월 15 20:02 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]#

위의 예는 dir1이라는 디렉토리의 소유주를 bible1으로 변경하고 소유그룹을 bible2로 변경한 예이다.

사용예 #4

서버작업을 하다보면 특정 디렉토리내의 모든 파일과 디렉토리들을 특정 소유주와 소유그룹으로 변경해야하는 경우가 흔히 발생한다.
예를 들어 웹에서 자료실등의 파일업로드 디렉토리의 소유주와 소유그룹을 nobody와 nobody로 해줘야 할때가 종종 있을 것이다.
즉, Apache에서 특정 디렉토리로 파일을 저장하려면 읽기, 쓰기 권한이 있어야하는데 디렉토리의 소유주와 소유그룹을 nobody로 설정해 버리면 간단히 해결할 수 있으므로 이런 작업이 필요하다.

그렇다면 특정 디렉토리내에 있는 모든 파일과 서브디렉토리의 소유주와 소유그룹을 한꺼번에 변경하려면 어떻게 할까?

이는 다음예와 같이 -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]#
[root@host1 commmand]# cd dir1           (dir1 디렉토리로 들어간다)
[root@host1 dir1]#
[root@host1 dir1]# ls -l                 (dir1의 파일들의 소유주와 소유그룹 확인)
합계 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 ..                 (다시 dir1에서 빠져나온다.)
[root@host1 commmand]#
[root@host1 commmand]# chown -R nobody:nobody dir1    (dir1과 그 안에 있는 파일과 디렉토리들의 소유주를 nobody로 소유그룹을 nobody로 변경한다.)
[root@host1 commmand]#
[root@host1 commmand]# ls -l             (dir1의 소유주와 소유그룹 변경확인)
합계 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           (dir1으로 들어간다)
[root@host1 dir1]#
[root@host1 dir1]# ls -l                 (dir1내에 있는 파일과 디렉토리들의 소유주와 소유그룹이 변경되었는가를 확인한다.)
합계 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옵션을 사용하면 된다.


사용예 #5

아래의 예와 같이 -c옵션을 사용하면 변경된 파일들에 대해서 자세한 메세지를 보여준다.
참고로 알아두기 바란다.

[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]# chown -c nobody:bible2 file1
changed ownership of `file1' to nobody:bible2
[root@host1 commmand]#

 

저작권 :  수퍼유저코리아 (www.superuser.co.kr),   무단 재배포및 복사를 금합니다. 

 
   
강사 소개
  박성수    
파파
헐렁고수
 
chgrp (파일과 디렉토리의 소유그룹을 변경)
mkdir (새로운 디렉토리를 생성한다.)

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.