본문 바로가기

개발/shell

사용자 계정 관리

사용자 계정 관리

1. 계정의 이해
리눅스의 계정은 오피스텔의 임대에 비유 할수 있다.
루트권한, 로그인, 계정생성, 소유권, 퍼미션, 그레커, 열쇠글, 계정삭제
 

2. 계정생성
* 생성 : useradd [옵션] 계정명 (adduser 와 같음)
* 변경 : usermod [옵션] 계정명
* 삭제 : userdel [옵션] 계정명

-> /etc/passwd 파일에 계정 정보 저장

(실습)
# useradd kim                (==adduser kim)
# ls -l /home
# useradd -c 010-1213-4567 hong
# cat /etc/passwd | grep hong
 * assuser 옵션

 hong:x:502:502:010-123-4567:/home/hong:/bin/bash
사용자계정:사용자비번:사용자UID:사용자소속그룹:사용자정보:사용자홈디렉토리:사용자로그인쉘

-> 사용자비번은 /etc/shadow에 숨겨져 있다.
-> 사용자UID의 체계
0 : 관리자
1~499 : 시스템 계정
500이상 : 사용자 계정
-> 사용자 그룹 ID : 500부터 시작

                                      옵션                                    기 능
 -c 설명(코멘트)  설명 패스워드 파일에 새로운 사용자 설명 추가
 -d 디렉토리  디렉토리 디렉토리 위치 지정
 -e 유효기간  유효기간 지정된 날짜에 사용자의 계정을 삭제
 -f 비활성일수  비활성일수 패스워드가 만기된 후 계정이 영구히 말소될 때까지의 기간
 -u uid  사용자 ID에 대한 값
 -s shell  사용자의 로그인 쉘을 지정
 -n  사용자 계정 추가 기본 모드를 지정하지 않을 때
 -G [그룹, ...]  사용자가 기본 그룹 이외의 다른 그룹에 추가하고자 할 때
 -M  홈디렉토리를 만들지 않겠다.

(실습)
# mkdir /users
# useradd -d /users/kang kang     <--주의: -d 옵션을 사용하지 않으면 /etc/passwd를 직접 수정 함.
# ls -l /users
# cat /etc/passwd | grep kang

>> 사용자 디렉토리 생성 과정
새로 생성된 디렉토리의 기본적인 숨김 파일들은 /etc/skel디렉토리 내에 있는 파일들이 복사 된 것.

3. adduser 명령 기본 설정값 변경 ( useradd -D )
옵션 알아 보기
-b    기본 홈
-e    기본 만료일(2007-12-15 의 형태로 지정)
-f    기본 비 작동일(기본적으로-1지정으로 비활성화 꺼져있음,0은 기간 만료후 계정사용 불가)
-g    기본 그룹
-s    기본 쉘
-m -k -skel 디렉토리 (/etc/나디 대신 다른 경로의 skeletion을 이용하고자 할 때)
-m 사용자 계정 경로 없이 계정 생성

(실습)
# adduser -D                                       <-- 사용자 생성 명령어 기본 설정값 확인
# adduser -D -b /users                        <-- 기본 홈 디렉토리를 /home에서 /user로 변경
# adduser -D
# adduser -D -s /bin/false
# adduser -D

# adduser fedora                                 <-- 새로운 사용자를 추가
# cat /etc/passwd | grep fedora           <-- 확인
 

4. 사용자 계정 삭제
# userdel fedora
# cat /etc/passwd | grep fedora
# ls -l /users                                    <-- 아직 삭제된 계정의 홈디렉토리는 남아 있다.
# userdel -r kang
# ls -l /users                                   <-- 계정 삭제시 -r옵션을 사용하면 디렉토리 및 파일 모두가 한번에 삭제 됨.
 

>> 계정 서비스를 보류한 사용자의 계정 처리
/etc/passwd의 열쇠글 필드를 * 표시로 처리 -> 로그인 불가
 

>> 실계정을 발급하되 로그인은 불가능하도록 처리
/etc/passwd 파일에서 /bin/bash 부분을 /bin/false로 변경
 

 

5. 계정 열쇠글 지정 및 변경
1) /etc/passwd 파일을 직접 열어서 열쇠글 변경 (비추천)

2) 시스템 관리자에 의한 사용자 계정 열쇠글 변경
(실습)
# useradd fedora2
# passwd fedora2

                  -> 사용자 비밀번호를 두 번 입력한다.


3) 사용자가 직접 열쇠글 변경
$ passwd
          -> 자신의 현제 비밀번호를 입력한 후,
          -> 다시 자신의 비밀 번호를 두 번 입력한다.

>> 사용자가 열쇠글을 변경 시 유의할 사항
1. 열쇠글은 숫자로만 지정해서는 안됩니다.
2. 열쇠글은 사전적인 쉬운 단어로 지정해서는 안됩니다.
3. 열쇠글은 6자 이상이어야 하는데 이는 /etc/login.def 파일에 명시되어 있습니다.
4. 열쇠글은 이전에 사용하였던 열쇠글과 동일해서는 안됩니다.
7. 열쇠글은 여러 문자와 숫자를 조합하여 사용하는 것이 가장 좋습니다.

4) 새도우 열쇠글 시스템(Shadow Password System)
# cat /etc/passwd | grep root
# pwunconv                              <-- 열쇠글 필드에 x대신 열쇠글이 나타나도록 설정.
# cat /etc/passwd | grep root
# pwconv                                  <-- 새도우 열쇠글 시스템 적용.
# cat /etc/passwd | grep root
>> pwunconv 상태에선 사용자 비밀번호 변경이 불가함.

5) /etc/shadow
1계정명:2열쇠글:3최종변경일:4변경최소일수:5변경유예기간:6변경경고일수:7사용불가날짜:8만료일:9예약

6) chage를 이용한 계정 열쇠글 관리
chage [-I][-m최소유효일][-M최대유효일][-W경고일수][-l비활성일수][-E만료일][-d]사용자계정
# chage -M 15 -E 2009/01/16 fedora2
# chage -l fedora2

 

6. 계정 사용자 정보 변경
$ su -          (su 뒤에 - 또는 -l을 붙이지 않으면 완전한 root권한을 얻지 못한다.)
     -> 슈퍼유저(root)의 열쇠글 입력
# usermod -s /bin/tcsh fedora2
# cat /etc/passwd | grep fedora2

>>usermod의 옵션 정리
-c 내용
-d 홈디렉토리
-e 만료일
-G 그룹
-s 기본 쉘
-u UID
-l 사용자 계정명 변경
 

7. 사용자 계정 바꾸기(su)
$ su -
    -> root의 열쇠글 입력
# su kim
    -> kim의 열쇠글 입력
$ exit         (원래의 사용자로 돌아 간다.)
 

 

8. 로그인 관리
[1] 특정 계정 로그인 허용 및 불허 정책 (실행 레벨 2, 3 번에서 사용)
1) /etc/pam.d/login 파일의 맨 윗줄 수정(추가)
auth required /lib/security/pam_listfile.so item=user sense=allow file=/etc/loginuser onerr=succeed

2)/etc/loginuser 파일 생성 및 로그인 가능한 계정 추가
이 파일안에 로그인 가능한 계정만 추가
#반대인경우 1.번에서 sense=deny file부분을  nologinuser로 한다음 2번에서 nologinuser를 생성
 

@혹자는 로그인 불허하는 방법으로 제일쉬운 방법을 /etc/passwd에서 그 계정에 해당하는 쉘종류를
/bin/bash에서 /bin/false로 변경하는 거라고 한다.

@또한 잠깐동안 못쓰게 할려면 /etc/passwd에서 그 계정의 두번째 컬럼부분의 x에 해당하는 부분을 *
로 잠깐 바꾸는 법이다.

>> PAM에 의한 계정의 로그인 허용과 불허 방법은 콘솔, 텔넷, FTP, SSH에서 모두 적용 가능.
>> X-windows로 접속할때는 적용 되지 않는다.
 

[2] su - 명령 사용자 제한
1) /etc/pam.d/su 파일 수정
auth suuficent /lib/security/pam_rootok.so
auth requried /lib/security/pam_wheel.so use_uid

이 두부분이 아마 주석처리 되어있을껀데..이부분을 주석을 제거한다.

2) ./etc/group의 wheel그룹에 su 명령 사용가능한 계쩡 추가
예를 들어 wheel:x:10:root,계정명 이런식으로 고친다.
 

%추가로 로그 기록을 위한 debug옵션 추가를 한당.
auth required /lib/security/pam_wheel.so debug use_uid

%verify 하는 법
tail /var/log/messages
 

 

9. 일반사용자가 루트 권한 행사하기(sudo)
1) /etc/sudoers 파일의 설정 형식
사용자                호스트                                  명령어
root                   ALL=(ALL)                              ALL <-- root사용자에 대한 모든 권한.
%wheel             ALL=(ALL)                              ALL <--whell그룹에 대한 루트 권한.
fedora          ALL=/sbin/shutdown,          /usr/sbin/adduser <--일반사용자에 대한 특정권한

2) sudo 사용법
형식 : $ sudo 명령어
$ sudo shutdown -r now
password:

 

10. X에서 사용자 계정 관리
1) system-config-users 실행
Alt++F2눌러 실행 창에서 system-config-users 명령 입력
 

 

11. 그룹관리
1) 그룹 생성
형식 : groupadd [-g gid [-o]] [-r] [-f] 그룹명
groupadd의 옵션
-g 그룹의 고유 ID
-o 그룹의 고유 ID를 500이하의 값으로 지정하는 경우 사용
-r 그룹의 ID를 500이하의 값으로 자동 지정
-f 강제로 그룹을 추가하는 옵션

(실습)
# groupadd fedoramembers
# groupadd -g 801 fedoramembers2
 

2) 그룹 속성 변경
형식 : groupmod [-g 향 [-o]] [-n 그룹명] group
groupmod의 옵션
-g 그룹의 고유 ID
-o 그룹의 고유 ID를 500이하의 값으로 지정하는 경우 사용
-n 변경될 그룹명

(실습)
# groupmod -n fedoragroup fodoramembers
# groupmod -g 802 fedoragroup 

3) 그룹 삭제
(실습)
# groupdel fedoramembers2

'개발 > shell' 카테고리의 다른 글

chmod 권한에 대해서  (0) 2012.02.05
find 명령어  (0) 2012.02.05
부팅시 자동실행 스크립트  (0) 2012.02.05
오라클 자동 시작 만들기  (0) 2012.02.05
네트웍 활성화  (0) 2012.02.05