끄적끄적 아무기록

Linux 사용자 계정 생성/삭제 (CentOS)

by 현생사는갓생지망생
반응형

사용자 계정 생성 및 삭제

 

이번엔 Xshell이 아닌 putty로 원격 접속을 해볼 것이다.

https://www.putty.org/ 

> Download PuTTY > Alternative binary files

> the SSH and Telnet client itself > 64-bit putty.exe 다운 !!

 

가상머신의 CenTOS6-1의 IP를 1.0.0.21로 설정했으므로 1.0.0.21로 접속한다.

 

리눅스에는 사용자 계정에 관하여 꼭 알아야 할 몇 가지 디렉토리들이 있다.

 

사용자 계정/관리

/etc/passwd - 사용자 정보 파일

/etc/shadow - 사용자 비밀번호 정보 파일

/etc/group - 그룹에 대한 정보 파일

 

계정 생성시 홈디렉토리에 생성되는 기본파일 및 디렉토리 존재, 추가 가능

/etc/skel

 

기본설정 저장

/etc/user/default

 

vi /etc/user/default 로 내용을 살펴보면,

기본 홈 디렉토리나, 기본 Shell,  Skel, 메일 사서함을 만들것인지 등의

기본 정보들이 기록되어있는 것을 볼 수 있다.

만약 변경하고 싶다면 vi편집기를 이용하여 변경해주면 된다.

 

/etc/login.defs 파일에는

> 메일 사서함의 위치

> 사용자 패스워드 설정 정보

> UID,GID의 최소 최대값

> 패스워드 암호화 방식 등이 설정되어 있다.

이것 또한 변경하고 싶다면 vi편집기로 변경해주면 된다.

 

1. 사용자 계정 생성

useradd a

확인 > tail -5 /etc/passwd

 a:      x:      500:     500:              :        /home/a:         /bin/bash

ID:    PW:    UID:    GID:    coment:    홈디렉토리    제공된shell

 

shell이란?

리눅스의 명령어 해석기

내가 사용하는 Shell 확인 > echo $SHELL

 

useradd 옵션

-u : 사용자 UID지정, GID도 자동으로 바뀐다.

(기본은 500부터지만, 변경이 되었었다면 마지막 UID의 다음으로 생성된다.)

-g : 사용자 GID지정, 그룹이 생성되어있어야 한다.

-G : 그룹 추가

-c : 코멘트

-d : 사용자 홈디렉토리 지정

-s : 사용자 Shell 지정

 

UID,GID,group -> id [사용자계정] 으로 확인 가능.

 

2. 사용자 계정 패스워드 설정

passwd [계정]

관리자 계정에서만 다른 일반 사용자의 암호를 설정할 수 있고

일반 사용자는 자신의 암호만 설정 가능하다.

 

3. 사용자 계정 삭제

만약, userdel a 로 삭제해주었다면 tail -5 /etc/passwd 에서는 안보이지만

ls /home , ls /var/spool/mail 에는 아직 있다.

다시 useradd a 하면 안만들어지는건 아닌데 문제가 생긴다.

반드시 userdel -r 로 지워주기 !!

 

문제 !!

# 사용자 i 생성

UID 5000, GID 5000, 추가그룹 1000, 코멘트 hh,

홈디렉토리 /home_1 , 로그인 시키지 않는다. (/sbin/nologin)

=> useradd -u 5000 -G 1000 -c hh -d /home_1/i -s /sbin/nologin i

(그룹 1000이 만들어져있어야 한다.)

 

# 사용자 a 생성

UID,GID 기본값, 코멘트는 admin, 기본홈디렉토리, shell은 sh

=> useradd -c admin -s /bin/sh a

 

# 사용자 b 생성

UID,GID 기본값, 추가그룹 a, 코멘트는 sales, /home_1/b, 로그인되지 않음

=> useradd -G a -c sales -d /home_1/b -s /sbin/nologin b

 

a, b 패스워드 설정하고 로그인 해보기.

+

그룹 추가 및 삭제 = groupadd / groupdel [그룹]

 

4. 설정 정보 바꾸기 -> usermod

기본 옵션은 useradd 옵션과 동일하다.

주의할 점은,

사용자의 홈디렉토리를 변경해줄 때 usermod -d [바꿀위치] -m [사용자] 로 해주어야

/etc/skel 에 있는 모든 파일들이 그대로 다 옮겨진다.

gpasswd -a c a > c를 a그룹에 추가 (usermod -G 와 동일)

 

gpasswd -a c a > c를 a그룹에 추가 (usermod -G 와 동일)

 

5. 패스워드 설정

/etc/shadow

 test1 !!  17792  40  10  17845 
 ID 암호화된 PW  마지막 PW 변경 날짜(70.01.01기준)  최소 사용일 수  최대 사용일 수  만료 경고일 수  inactive 기간   계정 만료일


패스워드가 설정되어있지 않으면 !! 로 표시.

최대 사용일 수 : 9999 > 무제한

 

옵션 보려면 chage -l

ex. 현재 test1 의 설정 정보 확인 :  chage -l test1

 

/etc/shadow 의 정보들 중 암호와 관련이 없는 것은 계정 만료일 뿐이다.

계정 만료일이 암호 만료일이나 유예기간 안쪽이면 안되며,

암호를 바꾸면 나머지 기간들은 자동으로 뒤로 밀리는데

계정 만료일은 바뀌지 않으므로 신중히 설정해주어야 한다.

보통 계정 만료일은 임시 사용자 계정에만 지정해준다.

 

설정이 잘 되었는지 확인하는 방법은

date -s [YY/MM/DD] 로 서버의 날짜를 바꾸어 직접 접속해보는 것이다.

 

문제 !!

# 계정 test1 생성

1. passwd 최소 사용일 수 : 3일

2. passwd 만료 경고일 수 : 7일

3. passwd 사용 최대일 수 : 40일

4. passwd inactive 기간 : 10일

5. 계정 만료일 : 2018년 11월 10일

6. 반드시 모두 원격 접속해서 결과값 확인

 

# 계정 test2 생성

1. passwd 최소 사용일 수 : 4일

2. passwd 만료 경고일 수 : 4일

3. passwd 사용 최대일 수 : 60일

4. passwd inactive 기간 : 5일

5. 계정 만료일 : 2019년 1월 30일

6. 반드시 모두 원격 접속해서 결과값 확인

 

# 사용자 계정 aa, bb, cc, dd  생성

1. 사용자 aa은 계정 생성 시 uid=1001, 추가 그룹은 0,  나머지 설정은 기본값
=> useradd -u 1001 -G 0 aa

2. 사용자 bb는 계정 생성 시 uid=2001, 추가 그룹은 0,  home디렉토리는 /home/bb로 설정
=> useradd -u 2001 -G 0 -d /home/bb bb

3. 사용자 cc는 계정 생성 시 uid, gid는 기본값, 코멘트 dumb, login Shell은 /bin/sh로 구성
=> useradd -c dumb -s /bin/sh cc

4. dd는 uid=2003, 기본그룹 2003, 추가 그룹은 0과 bb그룹, 그리고
코멘트는 admin, 로그인 쉘은 /bin/bash로 설정
=> useradd -u 2003 -G 0,bb -c admin -s /bin/bash dd

5. 사용자 계정의 기본적인 홈디렉토리 구성파일 저장위치?
=> /etc/skel

6. 사용자 계정의 500 이후로 설정이 되게 하는 구성파일 위치?
=> /etc/login.defs 
7. 계정 만료일등을 설정하는 파일은?
=> /etc/shadow에서 확인, chage 명령어로 설정.

8. 사용자 bb 계정의 홈디렉토리를 /home_1/bb로 변경
=> usermod -d /home_1/bb -m bb

9. 이후 만들어지는 사용자 계정의 홈디렉토리 위치를 기본적으로
/home_1/사용자계정이름 으로 구성파일을 변경!
=> vi /etc/default/useradd 에서 HOME수정.

 

계정 삭제시 반드시 userdel -r 계정이름!!

 

만약 사용자 계정을 100개 만들어야 한다면 ?!

하나하나 일일히 다 만들어주기는 힘들다. -> 스크립트 활용하기.

ex. a ~ z 까지의 사용자 계정 생성

users='a b c d e f g h i j k l m n o p q r s t u v w x y z'
for i in $users; do
	useradd ${i};
 	echo 'It1' | passwd --stdin ${i};
done

 

이것을 응용하여 한 줄에 ID, PW 만들어주려면

useradd aa | echo 'It1' | passwd --stdin aa
반응형

블로그의 정보

현생이네

현생사는갓생지망생

활동하기