본문 바로가기

Dev. Server/Linux

[리눅스] 사용자계정생성 옵션&명령어 (사용자생성 - useradd & 사용자계정 정보보기)

 

 

 

 

 

◆ 현재 우리는 관리자이기때문에 일반 사용자에 대해서 수정,삭제,생성 등을 할 실습을 하기위해 처음 리눅스 설치할때 만든 사용자로 사용해보겠습니다 !

 

 

 

우선, 빨간색처럼 tail /etc/passwd ( 사용자 계정 정보가 저장되어있음 ) 명령어를 사용하면
아래와 같은 현재 리눅스 사용자 계정에 대해 모두 출력됩니다.
제일 아래 있는 whtjdgh31은 제가 처음 만든것이고, 그 위의 계정들은 시스템이 필요에 의해서 만들어진것이다.
★절대 함부로 삭제해서는 안된다. 또한, 사용자 관련 정보파일이라는 점도 명심해야한다.★

 

 

 

whtjdgh31 : 사용자 계정명 처음 우리가 만든 계정명이다.
x : 비밀번호로써, 화면에 보여지지않는다.
1000 : 처음 1000은 user id 이다. 컴퓨터가 지정한 숫자로 표현이고, 내가 만든 whtjdgh31을 컴퓨터는 1000으로 사용하겠다는 의미이다.
1000 : 2번째 1000은 gid(group id)이다. 그룹은 따로 만들지 않으면 자동으로 부여된다.
whtjdgh31 : 주석이다. 내가 만든 whtjdgh31계정에 대해서 부연 설명한것이다.
/home/whtjdgh31 : whtjdgh31의 홈 디렉토리 경로를 표현한것이다.
/bin/bash : shell(명령어 해석기)

 

 

 

안전하게 보호될 사용자 계정 정보가 들어가있다.(사용자의 비밀번호 관련 파일)

 

 

whtjdgh31 : 사용자 계정명
$ ~ ik0 까지 : 사용자에게 부여된 기본암호(인증불가)
17812 : 비밀번호 생성일자, 변경일자
0 : 비밀번호 변경기간 ( 0은 아무때나 비밀번호 변경가능 / 1은 1일동안 못바꿈 등등 )
99999 : 비밀번호 유효기간, 기간이 지나게 된다면 휴먼 상태가 된다. 즉, 못쓰게된다.
7 : 만약 유효기간이 끝나면 경고일수이다. 7일동안 비밀번호 변경기회를 준다.

 

 

 

계정이 속한 그룹ID 및 그룹 목록들에 대한 정보를 나타내준다.
사용자를 만들때 반드시 그룹도 필요하다. 하지만, 사용자를 만들고나서 그룹을 안만들게되면 자동으로 계정과
같은 이름의 그룹을 생성해준다.

 

 

 

whtjdgh31 : 그룹명이다.
x : 그룹 비밀번호
500 : gid(group id) 숫자로 된 그룹 아이디가 된다.

 

 

 

 

 

 

우선, "useradd user1"을 입력한후, tail 명령어를 통해 user1이 생성된걸 확인해봅니다.
( useradd user1가 사진속에서 잘려서 없네요..ㅠㅠ)
지금처럼 useradd를 통해 사용자 이름만 부여를 하게되면 기본값으로 만들어집니다.
UID, GID는 이전의 번호 다음 번호로 자동생성됩니다.

 

 

 

 

shell은 번역기입니다. 사용자가 입력하는 값을 번역해서 커널에게 넘겨줘서 사용자가 원하는 것을 실행시켜줍니다.
이런 쉘들은 기능 별로 나눠져 있다고 생각하시면 됩니다.

 

 

 

 

-c는 부연설명을 해주는 옵션이고, -s는 사용자 쉘변경해주는 옵션입니다.
user2만들어진 값을 보면 -c에 의해서 부연설명이 들어간것을 볼수있습니다.
그리고 -s에 의해서 shell도 설정되었습니다.

 

 

 

사용자 비밀번호 확인해주는 명령어입니다.
지금처럼 비밀번호를 만들때 설정해주지않는다면 초록색처럼 !!로 뜨게됩니다.

 

 

 

 

 

지금 만든 user1, user2 모두 비밀번호를 설정해주는 명령어입니다.

 

 

 

 

비밀번호 설정까지 다한다음, shadow로 확인해보니 이전과 다르게 알수없는 값들로 들어가있습니다.

 

 

 

 

 

이번에는 디렉터리를 지정해서 사용자 한명을 더 추가해보겠습니다.
옵션없이 설정했기에 기본값으로 저장됩니다.
이런 기본값은 skel이라는 곳에서 기본값을 셋팅해놓고있기에 user3는 기본값을 가지고 생성됩니다.

 

 

 

 

 

 

* Skel이란?
- 기본 골격이고, 사용자가 생성되면 skel의 값들을 그대로 부여받아 만들어진다.
- skel에 있는 기본값으로 설정이 된 사용자가 만들어진다.

 

 

 

 

ls -l /etc/skel이라고 치면 확인할수없습니다. 왜냐면 skel아래는 모두 숨김파일로 존재합니다.
-la 옵션을 통해 숨김파일까지 나오게합니다.

 

 

 

숨김파일을 확인하기위해서 위처럼 -al옵션을 해줘야한다.
만약에 "ls -l /home/user1 " 이라고 치면 합계 0 이라고해서 출력된다.

 

 

 

.bash_logout : 사용자가 로그아웃할때 실행되는 명령어 및 파일들이 저장되어있는 파일
.bash_profile : 사용자가 로그인 할때 실해오디는 명령어 및 파일들이 저장 되어있는 파일
.bashrc : 사용자 계정들이 공통으로 사용할 단축키 또는 개인이 필요에 의해 설정 하는 단축키를 저장하는 파일 alias의 경우,
터미널 or 정원이 차단되면 사라지지만, ".bashrc"를 지워지지 않는다.
.mozilla : 웹브라우저 관련 환경 설정들이 저장 되어잇는 디렉터리
.bash_history : 홈 디렉토리가 생성되고 사용자 계정이 로그인 하고 사용 후에 생성되는 파일로 사용했던 명령어 및

 

 

 

 

 

이번에는 skel에 하나의 파일을 만들고 다시 사용자를 만들어보겠습니다.
skel아래 test라는 파일을 생성한후, ls명령어에 -la옵션을 붙여서 숨김파일까지 출력되게해서
test파일이 생성되었는지 확인해봅니다.

 

 

 

 

 

user4를 useradd명령어를 통해 생성해주고, ls -al를 통해 확인해보면
기본값으로 test파일이 생성된걸 볼수있습니다.
바로 위에서 test파일을 skel안에 만들었기에 기본값으로 들어가게됩니다.

 

 

 

 

 

이번에는 방금만든 test파일을 삭제해서 원래대로 만들어줍니다.

 

 

 

 

사용자들의 설정 값들을 tail -5 /etc/passwd를 통해 확인해보고, 기본설정값들도 cat /etc/default/useradd를 통해 확인해봅니다.

 

 

 


 

 

 

 

 

 

 

◆ skel
* GROUP = 100 ( -g옵션 사용 ) : 계정 만들때 기본 그룹 100
* HOME = /home (-b옵션 사용) : 기본 사용자 생성시의 home디렉토리
* INACTIVE = -1(-f옵션 사용) : 비밀번호 만료일을 이야기하며 -1은 비활성화
* EXPIRE = (-e 옵션 사용) : 값이 없고, 날짜는 무제한
* SHELL = /bin/bash (-s 옵션 사용) : 사용자 만들때 기본 쉘 적용
* SKEL = /etc/skel(옵션없음) : 기본 skel의 경로에 있는 값으로 skel적용
* CREATE_MAIL_SPOOL = yes (옵션없음) : yes로 되어있어서 메일함이있다는 뜻이며, /vcr/spoo;/mail/에 만들어짐

 

 

 

 

사용자를 만들면 기본값으로 설정되어있는 지금의 값으로 설정이 된다.
혹시라도 사용자를 만들때 옵션을 부여해서 다른값을 주고싶다면, useradd -D 옵션을 원하는 방향을 만들어지게 하면 된다.

 

 

 

 

test_user파일을 생성해주고, 사용자 생성자 -D기본값에서 -b홈을 변경하기위해 옵션을 다음과같이 사용했습니다.
user5를 생성하고 tail을통해확인하면 기본값으로 test_user를 홈디렉토리로생성됩니다.

 

 

 

다시한번 확인해보면 처음과다르게 초록색처럼 test_user파일이 홈디렉토리로 설정된걸 볼수있다.

 

 

 

-b옵션을 통해 바꿔줬기에 다시 원래대로 돌려놔야합니다.
위사진처럼 -b옵션을 사용해서 /home디렉토리로 변경해줍니다.