시스템을 부팅할때 실행 레벨 별로 자동 실행할 서비스를 살펴 보고 업데이트 하는 명령이다.

사용법 : 
chkconfig --list [이름] 
chkconfig --add 이름 
chkconfig --del 이름 
chkconfig [--level 레벨] 이름 <on|off|reset> 
chkconfig [--level 레벨] 이름 

부팅할 때 서비스할 데몬은 /etc/rc.d 각 디렉토리에 모여 있다. rc 뒤에 붙은 숫자는 t 실행 레벨 번호로 rc0.d는 실행 레벨 0이며 rc1.d는 1, rd5.d는 실행 레벨 5에 대한 디렉토리이다.
먼전 rc5.d 디렉토리를 살펴보자. 여기서 K로 시작하는 파일은 시스템을 시작할 때 시작하지 않는 데몬이며, S로 시작하는 파일이 부팅 시 서비스할 데몬이다.
S 다음의 숫자는 시작할 데몬의 순서이다.

# ls /etc/rc.d/rc5.d/ 
K12mysqld           K50snmpd       S05kudzu     S20random      S85gpm 
K15httpd              K50snmptrapd S08ipchains  S25netfs         S90crond 
K15proftpd           K50tux            S08iptables  S26apmd          S90xfs 
K20nfs                 K65identd       S09isdn       S28autofs         S95anacron 
K25squid             K70aep1000     S10network   S55sshd          S95atd 
K34yppasswdd     K70bcm5820    S12syslog    S56rawdevices  S97rhnsd 
K45arpwatch        K74nscd         S13portmap   S56xinetd         S99local 
K45named            K74ypserv      S14nfslock    S60lpd 
K46radvd              K74ypxfrd      S17keytable  S80sendmail 

부팅할 때 시작할 데몬 파일 이름을K로 시작하는 파일에서 S로 시작하는 파일이름으로 변경하여 설정활 수도 있지만 chkconfig 명령을 사용하면 손쉽게 변경할 수 있으며 좀 더 많은 기능을 볼 수 있다.

# chkconfig --list | more 
keytable        0:off   1:on    2:on    3:off   4:on    5:off   6:off 
atd             0:off   1:off   2:off   3:off   4:on    5:on    6:off 
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off 
gpm             0:off   1:off   2:on    3:off   4:on    5:on    6:off 
sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off 
kudzu           0:off   1:off   2:off   3:off   4:on    5:on    6:off 
netfs           0:off   1:off   2:off   3:off   4:on    5:on    6:off 
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off 
random          0:off   1:off   2:on    3:on    4:on    5:on    6:off 
rawdevices      0:off   1:off   2:off   3:off   4:on    5:on    6:off 
apmd            0:off   1:off   2:on    3:off   4:on    5:on    6:off 
ipchains        0:off   1:off   2:on    3:off   4:on    5:on    6:off 
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off 
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off 
anacron         0:off   1:off   2:on    3:off   4:on    5:on    6:off 
lpd             0:off   1:off   2:on    3:off   4:on    5:on    6:off 
portmap         0:off   1:off   2:off   3:off   4:on    5:on    6:off 
xfs             0:off   1:off   2:on    3:off   4:on    5:on    6:off 
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off 
rhnsd           0:off   1:off   2:off   3:off   4:on    5:on    6:off 
autofs          0:off   1:off   2:off   3:off   4:on    5:on    6:off 

위 목록중 keytable 데몬이 런 레벨 5에서 해제 되어 있다. 이를 활성화하도록 해보자

# chkconfig --level 5 keytable on 

--list 옵션은 서비스 정보를 살펴 볼 수 있다.

# chkconfig --list keytable 
keytable        0:off   1:on    2:on    3:off   4:on    5:on    6:off 

설정한 실행 레벨 5에서의 데몬 서비스를 다시 해제해 보자

# chkconfig --level 5 keytable off 
# chkconfig --list keytable 
keytable        0:off   1:on    2:on    3:off   4:on    5:off    6:off 

--del 명령으로 지정한 데몬 서비스와 관련된 모든 실행 레벨에 해제할 수도 있다.

# chkconfig --del keytable 
# chkconfig --list keytable 
keytable        0:off   1:off    2:off    3:off   4:off    5:off    6:off 

그럼, 다시 --add 명령어로 1,6레벨을 제외한 모든 레벨을 활성화해 보자.

# chkconfig --add keytable 
# chkconfig --list keytable 
keytable        0:off   1:on    2:on    3:on   4:on    5:on    6:off 

[관련 명령어]
ntsysv 부팅 시 서비스할 메뉴형 관리 유틸리티
2005/06/21 21:05 2005/06/21 21:05
파일의 권한을 변경하는 명령어

사용법 : chmod [옵션] 모드 파일명 
모드 : 새로운 모드(permissions) 
파일명 : 모드를 변경하고 싶은 파일 이름 
-c, --changes : 변경된 파일들에 대한 정보를 보여준다. 
-f, --silent, --quiet : chmod로 변경되지 않는 파일에 대한 에러를 보여주지 않는다. 
--help : 도움말을 보여준다. 
-R, --recursive : 하위 디렉토리에 있는 모든 디렉토리/파일에 대해 적용 변경한다. 
--reference=filename : 지정한 파일을 참조하여 퍼미션을 변경한다. 
-v, --verbose : 각 파일에 대해 변경에 대한 정보나 변경되지 않은 정보를 상세히 보여준다. 
--version : 버전정보를 보여준다. 

chmod 명령어는 파일이나 디렉토리를 새로운 권한으로 변경하는 명령어이다. 파일의 소유자나 시스템 관리자만이 chmod를 사용할 수 있으며 파일의 소유자, 파일의 그룹, 다른 사용자로 나누어 설정할 수 있다.
chmod를 이용한 파일/디렉토리의 권한 변경은 8진수를 이용 변경법과 기호에 의한 변경법이 있다. 방법이 달라도 같은 변경된 결과를 구할 수 있다.

모드 보기
파일이나 디렉토리는 모두 각각의 권한을 가지고 있다. 파일이나 디렉토리의 권한은 ls명령어를 이용하여 볼 수 있다.
출력된 내용은 다음과 같이 생각할 수 있다.

모드              파일소유자 파일그룹 용량 파일생성시간   파일명 
drwxrwxrw- 1 songsari   fish      46    JAN 21 18:23   dir 
-rw-r----x 1 songsari   fish      46    JAN 21 18:23   test.txt 

모드는 파일을 사용할 수 있는 상태를 뜻한다.

모드           설명                                               8진수표현 
d--------- 파일/디렉토리 구분 (파일:-,디렉토리:d)    
-r-------- 파일/디렉토리 소유자가 읽기 권한이 있다    400 
--w------- 파일/디렉토리 소유자가 쓰기 권한이 있다   200 
---x------ 파일/디렉토리 소유자가 실행 권한이 있다    100 
----r----- 파일/디렉토리 그룹이 읽기 권한이 있다         40 
-----w---- 파일/디렉토리 그룹이 쓰기 권한이 있다        20 
------x--- 파일/디렉토리 그룹이 실행 권한이 있다         10 
-------r-- 다른 사용자가 읽기 권한이 있다                    4 
--------w- 다른 사용자가 쓰기 권한이 있다                   2 
---------x 다른 사용자가 실행 권한이 있다                    1 

기호 모드에 의한 파일 권한변경
기호에 의한 변경밥업은 주요 기능의 기호화한 조합으로 설정할 수 있다. 사용자 기호 는 파일/디렉토리를 사용하려는 사용자에 따른 구분이다. 파일/디렉토리에 소유자나 그룹 그 외의 사용자에 다른 권한을 줄 수 있다. 설정하고 싶은 권한을 퍼미션 기호에서 정하여 설정기호를 이용해 조합하여 사용한다. 예로 test.txt 라는 파일을 다른 사용자가 읽을 수 있는 권한을 준다면 다음과 같이 입력한다.

# chmod o+r test.txt 

test.txt파일에 소유자와 그룹에 읽기 쓰기 권한을 주고 다른 사용자의 읽기 권한을 금지하고자 한다면 다음과 같이 입력한다.

# chmod ug+rw,o-r test.txt 

이 경우 쉼표(,)를 이용해 한번에 중복 설정할 수 있다.
[b]사용자 기호
u : user-파일/디렉토리의 소유자
g : group-파일/디렉토리의 그룹
o : other-다른 사용자
a : all-소유자, 그룹, 다른 사용자 모두(아무 표시 안할 경우 기본으로 설정됨)
퍼미션 기호
r : read-파일/디렉토리에 읽기 권한을 준다.
w : write-파일/디렉토리에 쓰기 권한을 준다
x : execute-파일/디렉토리에 실행 권한을 준다.
s : set user(group) ID-파일 실행 시 파일의 소유자 혹은 그룹 권한으로 실행된다.
t : sticky bit-Sticky 비트를 설정한다.
u : user-현재 소유자의 퍼미션 설정과 같은 내용으로 변경된다.
g : group-현재 그룹의 퍼미션 설정과 같은 내용으로 변경된다.
o : other-현재 다른 사용자의 퍼미션 설정과 같은 내용으로 변경된다.
l : locking-강제로 파일을 잠근다.
설정기호
+ : 퍼미션 허가-지정한 퍼미션을 허가한다.
- : 퍼미션 금지-지정된 퍼미션을 금지시킨다.
= : 퍼미션 지정-지정된 퍼미션만 허가하고 나머지는 금지 시킨다.
8진수를 이용한 권한 변경
네 자리의 8진수를 이용하여 파일/디렉토리의 권한을 변경한다. 기본 8진수 테이블에 있는 숫자를 더해서 사용한다.
예로 test.txt 라는 파일에 소유자는 읽기 쓰기 실행 권한을 그룹은 읽기 실행 권한을 다른 사용자는 읽을 수 있는 권한을 준다면

# chmod 754 test.txt 

파일 소유자 위치에 일기(4), 쓰기(2), 실행(1)을 더하여 7을 넣는다. 그룹에는 읽기(4), 실행(1)을 더해서 5를 다른 사용자 위치에는 읽기 권한만 주어 4를 넣어 준다.
8진수 모드 변경
파일/디렉토리 소유자
0400 -파일/디렉토리의 소유자에게 읽기 권한을 준다
0200 -파일/디렉토리의 소유자에게 쓰기 권한을 준다
0100 -파일/디렉토리의 소유자에게 실행 권한을 준다
파일/디렉토리 그룹
0040 -파일/디렉토리의 그룹에게 읽기 권한을 준다
0020 -파일/디렉토리의 그룹에게 쓰기 권한을 준다
0010 -파일/디렉토리의 그룹에게 실행 권한을 준다
다른사용자
0004 -다른 사용자에게 읽기 권한을준다
0002 -다른 사용자에게 쓰기 권한을준다
0001 -다른 사용자에게 실행 권한을준다

4000 -파일 실행 시 파일의 소유자 혹은 그룹 권한으로 실행된다.
2000 -파일 실행 시 파일의 소유자 혹은 그룹 권한으로 실행된다.
1000 -Sticky 비트

파일 정보를 보기 위해 ls를 사용한다.

# ls -al 
drwxr-x---    6 root     root         4096 Mar 29 23:02 . 
drwx-----x   19 root     root         4096 Mar 17 09:23 .. 
-rwxr-xr-x   19 root     root        14096 Mar 17 09:23 test1.bmp 
drwxr-xr-x   19 root     fish         4096 Mar 17 09:23 songsari 

test1.bmp 파일을 소유자는 "읽기 쓰기 실행" 그룹은 "읽기 쓰기" 다른 사용자는 "실행으로 변경 해보자.

기호 모드로 변경
현재 소유자는 읽기 쓰기 실행 권한으로 되어 있어서 수정할 필요가 없으며 구룹은 읽기 실행 권한으로 되어 있으므로 실행 권한을 금지시키고 쓰기 권한을 주며 다른 사용자는 일기 실행 권한으로 되어 있으므로 읽기 권한을 금지시키며 된다.
그룹(u)에 실행(x)권한 금지, 쓰기(w)권한 주기 : u-x+w
다른 사용자(o)에 읽기(r)권한 금지 : o-r

# chmod u-x+w,o-r test1.bmp 

8진수 모드로 변경
소유자의 일기(400) 쓰기(200) 실행(100)권한을 그룹에 읽기(40) 쓰기(20) 다른 사용자는 실행(1) 권한을 준다.
소유자 읽기 쓰기 실행 : 400+200+100 : 700
그룹 읽기 쓰기 : 40+20 : 60
다른 사용자 실행 : 1 : 1

# chmod 761 test1.bmp 

[관련 명령어]
chfn 사용자 정보 변경
chgrp 그룹변경
chown 소유자 변경
chsh 셀 변경
2005/06/21 21:03 2005/06/21 21:03
파일에 대한 사용자와 그룹을 변경하는 명령어

사용법 : 
chown [옵션...] 소유자: [그룹] 파일... 
chown [옵션...] .그룹 파일... 
-f, --silent, --quiet : chown 명령으로 변경되지 않은 파일들에 대해 에러메세지를 보여주지 않는다. 
-R, --recursive : 하위 디렉토리/파일에 모두 적용하여 바꾼다. 
-v, --verbose : 변경되는 진행되는 자세하게 상태를 보여준다. 
--help : 도움말을 보여준다. 
--version : 명령어에 대한 버젼을 보여준다.

chown 명령어는 파일에 대한 소유자와 그룹을 지정한 소유자의 그룹으로 변경한다. 아파치 웹 서버 서비스를 위한 index 디렉토리를 한 번 살펴보자. 레드헷 패키지로 설치한 경우 이는 /var/www/html 디렉토리가 된다. 지금 현재 index.html의 소유자와 그룹은 모두 admin으로 되어 있다.

# ls -al /var/www/html/index.html 
-rw-r--r-- 1 admin admin  408 12월 3 09:34 /var/www/html/index.html 

index.html의 소유자와 그룹을 모두 webmaster로 변경해 보자

# chown webmaster,webmaster /var/www/html/index.html 

index.html 파일의 소유자와 그룹이 모두 webmaster로 변경되었다.

# ls -al /var/www/html/index.html 
-rw-r--r-- 1 webmaster webmaster 408 12월 3 09:34 /var/www/html/index.html 

소유자만 변경할 경우, 다음과 같이 한다.

# chown admin index.html 

변경된 파일의 소유권을 확인해보자. 이제 index.html 파일의 소유자는 admin이 되었으며, 그룹은 webmaster 그룹이 되었다.

# ls -al /var/www/html/index.html 
-rw-r--r-- 1 admin webmaster 408 12월 3 09:34 /var/www/html/index.html 

그럼 그룹만 변경할 경우도 있다. 이때는 점(.)으로 시작하는 그룹을 지정한다.

# chown .webadmin index.html 

변경된 그룹을 확인해 보자. 소유자는 admin 그대로 유지되어 있으며 변경된 webadmin그룹을 확인할 수 있다.

# ls -al /var/www/html/index.html 
-rw-r--r-- 1 webmaster webadmin 408 12월 3 09:34 /var/www/html/index.html 

/var/www/html를 포함하여 하위 디렉토리/파일까지 모두 소유권을 적용 변경하려면 -R 옵션을 사용한다
현재 /var/www/html 디렉토리 내의 소유권은 root 계정과 그룹으로 되어 있다.

# ls -al /var/www/html 
total 32 
drwxr-xr-x    5 root     root         4096 Dec 21 20:41 . 
drwxr-xr-x    5 root     root         4096 Dec 10 19:05 .. 
-rw-r--r--    1 root     root         2890 Dec 10 19:05 index.html 
drwxr-xr-x    3 root     root         4096 Nov 12 00:13 manual 
drwxr-xr-x    2 root     root         4096 Nov 12 00:13 mrtg 
-rw-r--r--    1 root     root         1154 Dec 10 19:05 poweredby.png 
-rw-r--r--    1 root     root           17 Nov 11 19:39 test.php 
drwxr-xr-x    2 root     root         4096 Mar 29 04:02 usage 

/var/www/html 디렉토리를 포함하여 그 하위 디렉토리의 파일과 디렉토리까지 webmaster 계정과 그룹으로 변경해 보자. 이는 -R 옵션을 사용한다.

# chown -R webmaster.webmaster /var/www/html 
# ls -al /var/www/html 
total 32 
drwxr-xr-x    5 webmaster  webmaster         4096 Dec 21 20:41 . 
drwxr-xr-x    5 root     root         4096 Dec 10 19:05 .. 
-rw-r--r--    1 webmaster  webmaster         2890 Dec 10 19:05 index.html 
drwxr-xr-x    3 webmaster  webmaster         4096 Nov 12 00:13 manual 
drwxr-xr-x    2 webmaster  webmaster         4096 Nov 12 00:13 mrtg 
-rw-r--r--    1 webmaster  webmaster         1154 Dec 10 19:05 poweredby.png 
-rw-r--r--    1 webmaster  webmaster           17 Nov 11 19:39 test.php 
drwxr-xr-x    2 webmaster  webmaster         4096 Mar 29 04:02 usage 

[관련 명령어]
newgrp 현재 속해 있는 그룹을 바꾼다.
2005/06/21 21:00 2005/06/21 21:00