chown
chown 명령어는 CHange OWNer의 약어로서 파일(File)이나 디렉토리(Directory)의 소유자와 소유 그룹을 변경할때에 사용하는 명령어이다.
위의 그림에서 doomguydir 이라는 디렉토리와 doom1, doom2, doom3 라는 파일은 소유자와 소유그룹이 모두 root로 되어 있다. 즉, 파일이나 디렉토리 모두 3번째 필드에 해당하는 것이 소유자며, 4번째 필드에 해당하는 것이 소유그룹이다.
※ 명령어 위치 : /bin/chown
※ 아래 실습에서 필요한 파일은 본인이 아무 파일 3개, 디렉토리2개를 만들기를 바란다.
# touch doom1
# touch doom2
# touch doom3
# mkdir doomguydir
# mkdir our_hero
<실습> 특정 파일의 소유자 변경하기
chown 명령어로 doom1 이라는 파일의 소유자를 변경해 보자.
-rw-r--r-- 1 root root 0 10월 16 11:19 doom1
# chown itbank doom1
-rw-r--r-- 1 itbank root 0 10월 16 11:19 doom1
소유자가 변경된것을 알 수 있다.
물론, 이런 명령어가 허용이 되려면 파일에 대한 소유권이 있어야 가능하다.
아무 파일 또는 디렉토리의 소유자를 변경할 수 있는 것은 아니다.
<실습> 특정 파일의 소유자와 소유그룹을 동시에 변경하기
chown 명령어로 doom2 라는 파일의 소유자와 소유그룹을 동시에 변경해 보자.
-rw-r--r-- 1 root root 0 10월 16 11:19 doom2
# chown itbank:itbank doom2 // : (콜론)으로 구분해서 넣어야 한다.
-rw-r--r-- 1 itbank itbank 0 10월 16 11:19 doom2
<실습> 특정 디렉토리내의 소유자와 소유그룹을 모두 한꺼번에 변경하기
리눅스에서는 디렉토리도 하나의 특수파일로 인식하기 때문에 파일의 소유자와 소유그룹을 변경하는 방법과 디렉토리의 소유자와 소유그룹을 변경하는 방법이 동일하다.
먼저 # mkdir our_hero 디렉토리를 만들자.
drwxr-xr-x 2 root root 4096 10월 16 11:32 our_hero
# chown itbank:doom our_hero
drwxr-xr-x 2 itbank doom 4096 10월 16 11:32 our_hero
<실습> 특정 디렉토리내의 모든 파일과 소유자와 소유그룹을 모두 한꺼번에 변경하기
서버작업을 하다보면 특정 디렉토리내의모든 파일과 디렉토리들을 특정 소유자와 소유 그룹으로 변경해야 하는 경우가 흔히 발생한다.
예로 웹에서 자료실 등의 파일 업로드 디렉토리의 소유자와 소유그룹을 nobody 와 nobody로 해줘야 할 때가 많다.
즉, 아파치에서 특정 디렉토리내에 파일을 저장하려면 읽기, 쓰기 권한이 있어야 하는데 디렉토리의 소유자와 소유그룹이 nobody로 설정해 버리면 간단히 해결할 수 있으므로 이런 작업이 필요하다.
이번에는 our_hero 디렉토리의 모든 파일과 소유자와 소유그룹을 모두 한꺼번에 변경해 보자.
drwxr-xr-x 2 itbank doom 4096 10월 16 11:39 our_hero
# chown –R nobody:nobody our_hero
drwxr-xr-x 2 nobody nobody 4096 10월 16 11:39 our_hero
# cd our_hero
# ls –al
-rw-r--r-- 1 nobody nobody 0 10월 16 11:39 111.txt
-rw-r--r-- 1 nobody nobody 0 10월 16 11:39 1234.txt
<실습> 파일과 디렉토리의 소유자 또는 소유그룹변경시에 변경되는 내용에 대한 메시지 확인하기
# chown –c itbank:itbank doom3
<실습> 파일의 소유자와 소유그룹변경시에 UID와 GID로 지정하여 변경하기
일반적으로 chown 명령어로 소유자와 소유그룹을 변경할 때에 계정명(ID)과 그룹명으로 지정한다.
하지만 chown 에서 ID와 그룹명대신 UID와 GID를 지정하여도 변경이 된다.
[참고] UID와 GID를 보려면 /etc/passwd
# grep 500 /etc/passwd // grep 특정 파일에 패턴(500)을 찾고자 할때
doom:x:500:500:leesangchul:/home/doom:/bin/bash
-rwxr-xr-x 1 root root 0 10월 16 11:19 doom3
# chown 500:500 doom3
-rwxr-xr-x 1 doom doom 0 10월 16 11:19 doom3
<실습> 특정 디렉토리내의 모든 파일과 디렉토리의 소유자와 소유그룹을 모두 한꺼번에 변경할때에 UID와 GID를 지정하여 변경하기
위 내용을 이해하였으면 알 것이다. –R 옵션을 사용하여 직접 해보자.
파일이나 디렉토리 등 모두 같은 형식으로 하면 된다.
Linux/Commands Part