사용자 계정 관리
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 |