User Management > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

User Management 정보

PHP User Management

본문

User Management  

8.1 사용자 관리 개념
1)리눅스는 윈도우 시스템과 달리 멀티유저모드를 지원하는 운영체제이다.
물론 윈도우가 다중 사용자 모드를 지원하지 않는다는 것은 아니지만 진정한 의미의
다중 사용자 체제를 지원하지는 않는다.
리눅스는 개인용 서버 시스템이기 때문에 다중 사용자와 다중 작업 환경을 지원하는
운영체제이고 다중 사용자를 관리하기 위한 여러 설정들이 필요하다. .
2) user account(계정)
계정을 달리 user account라고 한다.
계정이란 리눅스/유닉스 시스템에 접근하여 시스템을 사용할  수 있는 사용자 ID와
패스워드 자체를 말하고 단지 ID와 패스워드 인증이 없이는 시스템을 사용할 수 없다.
사용자 ID는 시스템에서 특정 사용자를 유일하게 식별하는 수단이고 패스워드는 인증을 위한 것이다..
ID와 패스워드를 입력하고 인증을 받는 과정을 달리 로그인 과정이라 하는데 이는
인증된 사용자가 시스템을 사용한다는 의미이다.
사용자가 로그인을 한 후 사용하는 자신의 작업영역 위치를 홈 디렉토리라 한다.
root유저, 즉 root 계정의 홈 디렉토리는 /root이고 이는 /(root)와 구별되어야 한다.
root 사용자의 계정은 /root이고 /는 시스템의 최상위 디렉토리이다.
일반 유저, 일반 사용자의 홈디렉토리는 /home/$계정명으로 만들어진다.

8.2 새로운 계정의 등록
8.2.1 useradd <계정명>으로 유저 등록
useradd 명령으로 시스템에 계정을 설정할 때 계정에 고유한 user id와 group id를 부여한다. 사용자 계정은 각 계정명으로 /home디렉토리 아래에 사용자의 디렉토리를 생성한다. 이때 /etc/skel/* 디렉토리의 모든 파일들이 만들어진 계정의  홈디렉토리로 복사된다.
예를 들어 .bash_profile, .bashrc, 기타 계정에 대한 환경을 설정할 수 있는 파일들이 새로이 생성된 계정의 홈 디렉토리에 복사가 되는데, 일반적으로 명령 프롬프트에서 #ls –al이라는 명령을 실행시키면 각 파일에 대해 자세히 볼 수 있다.

 

 

또한 /etc/passwd, /etc/shadow, /etc/group 파일들은 사용자 데이터베이스 파일로서 이곳에 사용자들에 대한 등록 정보가 저장된다.

8.2.2 사용자 계정 등록[root @edu /home]# useradd <사용자 계정명>
[root @edu /home]# adduser <사용자 계정명>
사용자 등록은 adduser나 useradd 명령으로실행 하면 새로운 계정이 추가된다.
/etc/passwd 파일에 새로운 계정정보가 등록되고 사용자에 대한 환경 설정이 이 파일에 저장된다.
예를 들어 사용자에 대한 쉘 지정이나 사용자의 홈 디렉토리를 설정한다.
또한  shadow passwd 사용시 /etc/shadow 파일에도 신규등록 정보가 저장되는데, 이때 중요한 것은 이 파일에 암호화된 패스워드가 저장되면서 패스워드에 대한 설정이 이루어진다.

8.2.3 사용자 등록
[root @edu00 linux]#useradd linux00
[root @edu00 linux]#grep linux00 /etc/passwd
[root @edu00 linux]#ls /home/linux00
[root @edu00 linux]#grep linux00 /etc/shadow
[root @edu00 linux]#passwd linux00
[root @edu00 linux]#grep linux00 /etc/passwd
[root @edu00 linux]#grep linux00 /etc/shadow
[root @edu00 linux]#grep linux00 /etc/group
일반적으로 계정을 등록했다 해서 그 계정을 사용할 수 있는 것은 아니다.
계정에 대한 패스워드를 부여해야 그 계정에 대한 인증을 할 수 있고 요즘의 추세라면 각 계정에 대한 패스워드 부여는 상당히 중요하다.

8.2.4  사용자 계정 등록 확인
1) /etc/passwd
[root @edu00 /home]#cat /etc/passwd
[root @edu00 /home]#grep user01 /etc/passwd
grep 이란 명령은 특정 문자나 문자열이 있는 라인을 화면에 출력해주는 명령이고

 


이 명령을 실행하면 /etc/passwd 파일에 있는 특정 문자열이 있는 라인을 볼 수 있는데 이를 이용해서 사용자의 등록 결과를 확인하는 것이 가능하다.
: user01:x:500:500::/home/user01:/bin/bash
UID, GID값은 새로운 계정을 추가할 때마다 가장 최근에 부여한 계정의 UID값에 1을 더해서 등록된다.
최초 사용자를 신규 등록할 때 uid, gid 값은 기본적으로 500 부터 시작한다.
2) /etc/group[root @edu /home]#grep /etc/group
: /etc/group 파일의 마지막 GID에 1을 더하여 신규 자용자의 UID,GID 작성3) /etc/shadow
[root @edu /home]#useradd user01
[root @edu /home]#useradd user02
[root @edu /home]#passwd user01
[root @edu /home] #cat /etc/shadow
user01:#$%^#$#$$#FDVD/:11456::99999:7:::
user02:!!:…
…shadow password 등록 결과를 확인하는 것이 가능하다.
기존 패스워드가 부여된 계정은 암호화 되어 저장된다.
패스워드  미부여 계정은 !! 2개로 표시되어 있는 것을 볼 수 있는데 이러한 계정은
당장 사용할 수 없다.
8.2.5  패스워드 부여
[root @edu /home]#passwd <계정명> 
새로운 계정의 패스워드는 passwd라는 명령을 실행하면 된다.
슈퍼유저는 계정의 이름을 인자로 주어 각 계정의 패스워드를 부여할 수 있으며, 일반 사용자는 아무런 인자없이 실행하여 자신의 패스워드를 변경할 수 있다.
생성된 패스워드는 /etc/passwd 파일에 저장이 된다.
shadow 패스워드를 사용할 경우 /etc/shadow 파일에 암호화된 패스워드가 저장이
되고, /etc/passwd 파일에는 ‘x’ 표시만 남게된다.
shadow 패스워드는 기존의 패스워드를 보완한 것으로 모든 사용자가 읽을 수 있는 /etc/passwd 파일에서 암호화된 패스워드만 따로 분리해서 보관하는 것이다.

 


이 파일이 /etc/shadow 파일로 이는 슈퍼유저만이 읽을 수 있다.
기본적으로 등록된 계정에 대한 비밀번호를 부여한다.
신규로 작성한 사용자 계정은 기본적으로 패스워드가 부여되지 않는다.
또한 패스워드를 지정하는 것은 물론 기존 사용자 계정의 패스워드를 변경할 수 있다.
하지만 일반 사용자는 자신의 패스워드만 변경할 수 있다.
[root @edu /home]#passwd user01 
[root @edu /home]#grep user01 /etc/passwd
[root @edu /home]#su – linux
[linux @edu /home/linux]$passwd
[linux @edu /home/linux]$exit

8.3 사용자 삭제
사용자 계정 삭제 : userdel –r <계정명>
사용자 계정은 userdel 명령을 실행하여 삭제할 수 있는데, 이 명령을 실행하면 /etc/passwd, /etc/group, /etc/shadow 파일에서 해당 사용자 계정에 대한 정보가 삭제된다.
[root @edu00 linux]#userdel linux00
[root @edu00 linux]#grep linux00 /etc/passwd
[root @edu00 linux]#grep linux00 /etc/shadow
[root @edu00 linux]#grep linux00 /etc/group
[root @edu00 linux]#ls /home
[root @edu00 linux]#useradd linux00
[root @edu00 linux]#userdel -r linux00
[root @edu00 linux]#ls /home

8.4 그룹 등록과 삭제
[root @edu00 linux]#useradd linux01
[root @edu00 linux]#useradd -n linux00
[root @edu00 linux]#useradd -n nad
[root @edu00 linux]#groupadd -g 55000 admin
[root @edu00 linux]#vi /etc/group
----------------------
......
linux01:x:500:
admin:x:55000:linux01,linux00,nad
......
---------------------
[root @edu00 linux]#groups linux01
linux01:linux01 admin
[root @edu00 linux]#groups linux00
linux00:users admin
[root @edu00 linux]#grep linux00 /etc/passwd
[root @edu00 linux]#groupdel admin
[root @edu00 linux]#cat /etc/group
새로운 그룹을 만들기 위해서는 groupadd 명령을 사용한다.
이 명령으로 생성된 그룹은 /etc/group 파일에 추가되고 shadow 파일을 사용할 경우
/etc/gshadow 파일에도 추가된다.

8.5 그룹과 홈디렉토리를 지정하면서 사용자 등록
[root @edu00 linux]#mkdir /home2
[root @edu00 linux]#useradd -d /home2/linux11-home linux11
[root @edu00 linux]#passwd linux11

 


[root @edu00 linux]#grep linux11 /etc/passwd
linux011:x:503:501::/home2/linux11-home:/bin/bash
[root @edu00 linux]#ls /home2/linux11-home/
[root @edu00 linux]#groupadd -g 55000 Lido
[root @edu00 linux]#groupadd -g 56000 LINUX
[root @edu00 linux]#groupadd -g 57000 PHP
[root @edu00 linux]#cat /etc/group
-----------------------------
......
Lido:x:55000:
LINUX:x:56000:
PHP:x:57000:
........
----------------------------------
[root @edu00 linux]#useradd linux01 -g Lido -G LINUX,PHP -d /home2/linux01->home
[root @edu00 linux]#grep linux01 /etc/passwd
[root @edu00 linux]#groups linux01
[root @edu00 linux]#cat /etc/group
useradd 명령어의 옵션중에 –d 옵션이 있다. 이는 각 계정의 홈 디렉토리를 일시적으로 변경시키는 명령어이고 시스템에서 제시된 본래의 홈 디렉토리 변경은 아니다.

8.5 그룹관리자를 정하고 그룹관리 권한주기
[root @edu00 linux]#groupadd -g 58000 iCLUB
[root @edu00 linux]#useradd nad1 -g Lido -G iCLUB
[root @edu00 linux]#groups nad1
[root @edu00 linux]#su - nad1
[nad1 @edu00 nad1]$ls -l
[nad1 @edu00 nad1]$touch ttl
[nad1 @edu00 nad1]$ls -l
[nad1 @edu00 nad1]$newgrp iCLUB  * 내가 보조그룹으로 되어서 로그인 효과,
새로운 그룹을 로그인
[nad1 @edu00 nad1] $groups
[nad1 @edu00 nad1]$touch ttl2
[nad1 @edu00 nad1]$ls -l
[nad1 @edu00 nad1]$exit
[root @edu00 linux]#exit

[root @edu00 linux]#gpasswd -A nad1 iCLUB
[root @edu00 linux]#useradd nad2 -g Lido
[root @edu00 linux]#groups nad2
[root @edu00 linux]#su - nad1
[nad1 @edu00 nad1]$gpasswd -a nad2 iCLUB
Adding user nad2 to group iCLUB
[nad1 @edu00 nad1]$groups nad2
[nad1 @edu00 nad1]$cat /etc/group
[nad1 @edu00 nad1]$exit
[root @edu00 linux]#cat /etc/gshadow
........
iCLUB:!:nad1(시샵):nad1,nad2(멤버)
........
[root @edu00 linux]#su - nad2
[nad2 @edu00 nad2]$newgrp iCLUB
[nad2 @edu00 nad2]$groups
[nad2 @edu00 nad2]$exit
[root @edu00 linux]#exit
[root @edu00 linux]#su - nad1
[nad1 @edu00 nad1]$gpasswd -d nad2 iCLUB
Removing user nad2 from group iCLUB
[nad1 @edu00 nad1]$exit
[root @edu00 linux]#grep iCLUB /etc/gshadow
[root @edu00 linux]#grep iCLUB /etc/group

8.6 다양한 유형의 사용자 등록
웹 호스팅의 경우 홈페이지에 CGI 게시판을 제공하거나 웹 메일을 제공하는 등 업체마다 여러 유형으로 사용자를 등록해야 하는 경우가 대부분이다.
일반적인 회원가입 사이트의 경우에도 회원에 따라 홈디렉토리에 기본으로 제공해주는 파일들이 몇 가지로 나누어진다.
[root @edu00 linux]#ls -a /home/nad1
[root @edu00 linux]#ls -a /etc/skel
[root @edu00 linux]#cp -R /etc/skel /etc/skel2
[root @edu00 linux]#rm -rf /etc/skel2/Desktop
[root @edu00 linux]#mkdir /etc/skel2/public_html
[root @edu00 linux]#vi /etc/skel2/public_html/index.html
-------------------------------------
<HTML>
<HEAD><TITLE>Testing Homepage</TITLE></HEAD>
<BODY bgcolor=gold>
<font size=7> Welcome to My Homepage !!</font><hr><br>
</BODY>
</HTML>
-------------------------------------------------
[root @edu00 linux]#useradd nad3 -m -k /etc/skel2 -g Lido
: -m 옵션은 make의 의미, -k 옵션은 skel 디렉토리
[root @edu00 linux]#su - nad3
[nad3 @edu00 nad3]$chmod 755 ~
[nad3 @edu00 nad3]$exit
[root @edu00 linux]#netscape http://0/~nad3

8.7 사용자 정보 변경하기
사용자의 쉘을 바꾸거나, 홈 디렉토리를 옮기거나 사용자 로그인명을 바꾸는 등의 일반적인 작업
1) 계정의 변경 : # usermod
사용자와 그룹의 패스워드는 passwd나 gpasswd라는 명령으로 수정할 수 있다.
그 외의 방법으로 계정 관련 파일을 직접 편집하거나 usermod나 groupmod 명령을 이용할 수도 있다.
슈퍼 유저는 계정 이름을 명시하여 해당 사용자의 세부 항목을 변경할 수 있으며, 일반 사용자는 자신의 항목을 변경할 수 있다.
기능 : UID, GID, Home Dir, Shell 등의 변경 가능
2) 홈디렉토리 변경
[root @edu /home]#usermod -d /home2/user01 user01
user01의 홈디렉토리를 /home2/user01로 변경.
변경하고자 하는 디렉토리와  디렉토리 소유권한이 사용자로 되어 있어야 한다.
3) 개인의 UID, GID 변경 가능
#usermod -u 번호 계정명
#usermod -g 번호 계정명
/etc/group 파일에 해당되는 그룹이 있어야 한다.
4) 쉘의 변경
[root @edu /home]# chsh
각각의 일반 사용자의 shell 변경이 가능하다.
root 유저는 일반 사용자의 shell까지 변경이 가능하다.
/bin/*sh 파일이 리눅스에 등록되어 있는 shell이고 이는 /etc/shells에 저장되어 있다.
각 유저의 shell은 /etc/passwd 파일에 등록되어 있다.
5) 새로운 그룹 만들기[root @edu /home]# groupadd  그룹명
새로운 그룹을 추가하면 /etc/group 파일에 새로운 그룹이 추가된다.
0~499까지의 그룹ID는 시스템이 직접 사용하는 시스템 계정으로 사용되고 나머지는 일반 사용자의 그룹 계정으로 사용된다.
새로운 그룹이 만들어질 때 마다 500번부터 시작해 만들어진다.
직접 새 그룹의 GID를 지정하고 싶다면 -g GID 옵션을 준다.

사용 예
[root @edu00 linux]#man usermod
[root @edu00 linux]#usermod -s /bin/csh linux001
[root @edu00 linux]#grep linux001 /etc/passwd
linux001:x:504:55000::/home2/linux001-home:/bin/csh
[root @edu00 linux]#usermod -d /home/linux001 -m linux001
[root @edu00 linux]#grep linux001 /etc/passwd
linux001:x:504:55000::/home/linux001:/bin/csh
[root @edu00 linux]#ls -a /home/linux001
[root @edu00 linux]#usermod -l red linux001
[root @edu00 linux]#grep linux001 /etc/passwd
red:x:504:55000::/home/linux001:/bin/csh

8.8 각 유저의 환경설정 파일 정보 이해
1) etc/passwd각 유저들의 등록 정보가 저장되는 기본 파일이자 사용자의 데이터베이스 파일이라 할 수 있다.
계정명, 홈 디렉토리, shell 정보 등이 저장된다.
이 파일을 수정하면 새로운 설정을 적용시킬 필요없이 바로 시스템에 적용이 된다.2) /etc/shadow
보안을 위한 각 유저의 패스워드를 암호화 하여 저장한다.
root 유저만이 접근할 수 있도록 permission 설정되어 있다.
3) /etc/group
등록된 각 그룹의 정보파일이다.

 

4) /etc/skel새로운 사용자 등록시 이 디렉토리에 있는 파일들이 각 사용자의 홈 디렉토리로 복사된다.
각 유저의 환경설정 파일등의 내용이 저장된다.
새로 만들어지는 유저의 환경설정을 변경코자 할 경우는 이 디렉토리의 파일들의 정보를 변경하면 각 유저의 환경 설정이 변경된다.
5) /etc/default/useradd
새로운 유저가 만들어질 때의 기본 정보 저장
GROUP=100
; 기본 그룹ID가 100으로 설정된다. 이 값은 새로운 사용자 계정이 만들어지면 자동적으로 생기는 기본 그룹(해당 계정과 동일한 이름과 ID를 가진)이 만들어지지 않도록 설정해 두었을 경우에만 사용된다.
HOME=/home
; 사용자의 홈 디렉토리가 위치할 디렉토리를 나타낸다. 즉, 각 계정 사용자들의 홈
디렉토리는 /home 밑에 각 계정의 이름으로 생성된다.
INACTIVE=-1
; 패스워드 유효기간 만료 후 언제 해당 계정을 사용할 수 없게 하는지 일단위로 나타낸다. 기본값은 –1, 즉 이 계정은 결코 취소되지 않는다.
EXPIRE=
; 사용자 계정이 만료되어서 사용할 수 없게 되는 날짜를 나타낸다. 기본적으로 계정은 만료되지는 않는다.
SHELL=/bin/bash
; 등록되는 사용자의 기본 shell을 나타낸다. 여기에서 쓰인 쉘은 /etc/shells 파일에
명시된 유효한 쉘이어야 한다.
SKEL=/etc/skel
; 새로운 사용자 계정이 만들어지면 해당 사용자의 홈 디렉토리에 기본적으로 복사될 파일들이 있는 곳이다. 일반적으로 /etc/skel을 지정하면 굳이 다른 디렉토리로 바꿀 필요는 없다. 각 유저의 환경설정 파일들이 위치한다.
6) /etc/profile, /etc/barshrc 등의 환경설정 파일
 

 

 


8.9 수동으로 일반사용자 등록1) 개념useradd 등의 명령어가 없을 경우 때론 root 유저가 수동으로 각 유저를 등록해줄 필요가 있다.
각 유저의 환경설정 파일과 디렉토리 등을 생성하고 소유권과 그룹정보 등을 생성,
변경하는 방법으로 작업하면 수동으로 일반 사용자를 등록할 수 있다.
2) 새로운 유저의 수동 등록#vi /etc/passwd
user01:x:100:200: user1's home:/home/user1:/bin/csh
# pwconv --> passwd file의 변동내용이 /etc/shadow 에 적용
# mkdir /home/user01
# chown user1 /home/user01
# vi /etc/group  ; 새 그룹 등록
# chgrp user01 /home/user01
#cp –r /etc/skel /home/user01
; etc/skel 디렉토리 내용들을 유저의 홈 디렉토리로 copy
# su – user01
# passwd user01

8.10 사용자 로그인 제한
8.8.1 명령행 제한
[root @edu00 linux] #useradd nad4
[root @edu00 linux]#passwd nad4
[root @edu00 linux]#usermod -L nad4
: -L 옵션은 lock의 의미
[root @edu00 linux]#grep nad4 /etc/shadow
nad4:!$........................
[root @edu00 linux]#telnet 0
login:nad4
password:
Login incorrect
....................

 


[root @edu00 linux]#usermod -U nad4
: -U 옵션은 unlock의 의미
[root @edu00 linux]#grep nad4 /etc/shadow

8.8.2 사용 불가능한 쉘 지정
[root @edu00 linux]#vi /bin/no.sh
-----------------------------------------------
#!/bin/sh
echo -e "\n\n"
echo -e "\t <<< 죄송합니다. 지금은 로그인할 수 없습니다. >>>"
echo -e "\n\t 관리자(*** 개인정보보호를 위한 이메일주소 노출방지 ***)에게 문의 바랍니다. ^^.."
echo -e "\n\n"
-------------------------------------------------
[root @edu00 linux]#chmod 755 /bin/no.sh
[root @edu00 linux]#vi /etc/shells
-------------------------------------
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
/bin/ash
/bin/bsh
/bin/no.sh  <-- 추가
------------------------------------
[root @edu00 linux]#usermod -s /bin/no.sh nad4
[root @edu00 linux]#grep nad4 /etc/passwd
nad4:x:506:55000::/home/nad4:/bin/no.sh
[root @edu00 linux]#telnet 0
login:nad4
password:
Last login: ..............
<<< 죄송합니다. 지금은 로그인할 수 없습니다. >>>

 


관리자(*** 개인정보보호를 위한 이메일주소 노출방지 ***)에게 문의 바랍니다. ^^..

[root @edu00 linux]#usermod -s /bin/bash nad4
[root @edu00 linux]#grep nad4 /etc/passwd

8.8.3 사용 불가능한 쉘 일시적 지정
[root @edu00 linux]#vi /etc/passwd
--------------------------------
..........
linux:*:500:500:nadream:/home/linux:/bin/bash à passwd 부분에 x 대신 *
admin:x:501:501::/home/admin:/bin/false à /bin/bash를 /bin/false로
*linux00:x:502:502::/home/linux00:/bin/bash à username 부분에 * 추가
...........
-----------------------

8.9 계정 만료시키기
[root @edu00 linux]#cat /etc/shadow
[root @edu00 linux]#date
Sun Oct 8 17:44:25 KST 2000
[root @edu00 linux]#usermod -e 2000/10/07 nad4
[root @edu00 linux]#cat /etc/shadow
[root @edu00 linux]#telnet 0
login:nad4
Password:
...............

8.10 새로운 사용자 막기
비상시나 불법 공격을 받을 때 시스템 관리자가 가장 먼저 취해야 할 조치는 문제가 해결될 때까지 사용자의 로그인을 막는 것이다.
신규 로그인을 신속하게 막기 위한 방법이다.
[root @edu00 linux]#vi /etc/nologin
---------------------------------------

 


**************************
      지금은 시스템 점검 중입니다...........
      20:00에 다시 로그인하기 바랍니다. ^^..
      **************************
[root @edu00 linux]#telnet 0
login:linux01
Password:
Login incorrect:

8.11 그룹 정보 변경
[root @edu00 linux]#man groupmod
[root @edu00 linux]#groupmod -n phpCLUB PHP
[root @edu00 linux]#grep phpCLUB /etc/group
[root @edu00 linux]#grep phpCLUB /etc/gshadow
[root @edu00 linux]#groupmod -g 59000 phpCLUB
[root @edu00 linux]#grep phpCLUB /etc/group
[root @edu00 linux]#groups linux001

8.12 사용자 등록 기본값 설정
useradd를 사용하여 새로운 사용자를 등록할 때 적용되는 기본값들은
/etc/default/useradd와 /etc/login.defs 파일에 있다.
8.12.1 /etc/default/useradd
[root @edu00 linux]#vi /etc/default/useradd
-------------------------
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
--------------------------

 


[root @edu00 linux]#man useradd
[root @edu00 linux]#useradd -D .........
: -D 옵션은 default의 의미로 /etc/useradd/default 파일을 의미한다.
8.12.2 /etc/login.defs
[root @edu00 linux]#vi /etc/login.defs
------------------------------------------------------------
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the home
# directory. 
# If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR  /var/spool/mail
#MAIL_FILE .mail

# Password aging controls:
#
# PASS_MAX_DAYS  Maximum number of days a password may be used.
# PASS_MIN_DAYS  Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7

#
# Min/max values for automatic uid selection in useradd
#
UID_MIN     500

 


UID_MAX   60000
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN     500
GID_MAX   60000
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by the user to be removed
# (passed as the first argument).
#
#USERDEL_CMD /usr/sbin/userdel_local
#
# If useradd should create home directories for users by default On RH systems, we # do.
# This option is ORed with the -m flag on useradd command line.
#
CREATE_HOME yes
----------------------------------------------------------

8.13 새로운 슈퍼유저 등록
UID와 GID가 0인 사용자는 슈퍼유저가 된다.
[root @edu00 linux]#useradd -u 0 -g 0 hacker
[root @edu00 linux]#passwd hacker
[root @edu00 linux]#grep hacker /etc/passwd
hacker:x:0:0::/home/hacker:/bin/bash
[root @edu00 linux]#telnet 0
login:nad1
Password:
[nad1 @edu00 nad1]$su - hacker
Password:
[hacker @edu00 hacker]#whoami

 


root
[root @edu00 linux]#vi /etc/cron.daily/uidcheck
--------------------------------------------------
#!/bin/bash     
line=`grep 0:0 /etc/passwd | wc -l`
[ $line -ge 2 ] && grep 0:0 /etc/passwd | mail -s "[ `date +%Y년%m월%d일'
UID 문제 보고서 ]" root
---------------------------------------------------
[root @edu00 linux]#chmod 700 /etc/cron.daily/uidcheck
[root @edu00 linux]#/etc/cron.daily/uidcheck
[root @edu00 linux]#mail
     
8.14 sudo를 이용한 권한 부여
sudo 패키지는 일반 사용자가 허가받은 관리 명령어를 사용할 수 있게 해준다.
시스템 관리를 분담해서 할 수 있다.
[root @edu00 linux]#rpm -qa | grep sudo
sudo-*
[root @edu00 linux]#visudo
----------------------------------------------
User_Alias USER_MANAGERS = linux001, linux002
User_Alias WEB_MASTERS = program, design
User_Alias DB_MANAGERS = oracle, sql

Runas_Alias OP = root
Runas_Alias WEB = www
Runas_Alias DB = oracle, sql
Host_Alias NADREAM = orion, dabang

Cmnd_Alias USER_COMMAND = /usr/sbin/useradd, /usr/sbin/userdel,
/usr/sbin/groupadd, /usr/sbin/groupdel, /usr/sbin/usermod,
/usr/sbin/groupmod

 

 

root  ALL = (ALL) ALL 
# 이사람은(root) 여기에서(ALL) 이 사람의 권한으로((ALL)) 이런(ALL) 명령어를 실행# 한다.
USER_MANAGERS NADREAM = USER_COMMAND, /usr/bin/passwd
[a-z]*, !/usr/bin/passwd root
# root passwd 바꿀 수 없다.
WEB_MASTERS ALL = (WEB) ALL, (OP) /usr/bin/su www
DB_MANAGERS ALL = (DB) ALL
-------------------------------------------------
[root @edu00 linux]#su - linux001
[liux001 @edu00 linux001]$sudo -l
Password:
User linux001 may run the following commands on this host:
(root) /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/groupadd,
/usr/sbin/groupdel, /usr/sbin/usermod,  /usr/sbin/groupmod
(root) /usr/bin/passwd [a-z]*
(root) !/usr/bin/passwd root

[linux001 @edu00 linux001]$sudo /usr/sbin/useradd nad2
[linux001 @edu00 linux001]$sudo /usr/bin/passwd nad2
[linux001 @edu00 linux001]$sudo /usr/bin/passwd root


 

[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]
추천
0

댓글 0개

전체 1,168
개발자팁 내용 검색 PHP에서

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT