사용자 관리, 사용자 생성

by 조쉬 posted Sep 21, 2018
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

#사용자 관리

- /etc/passwd : 사용자의 정보가 들어있는 파일

-지워지면 사용자 홈 디렉터리도 그냥 디렉터리와 파일로 남음(user의 기능 X)

- /etc/skel : 사용자 계정을 구성하는 기본적인 뼈대가 들어있는 디렉터리

- /etc/group : 그룹 정보의 저장장소


#>passwd [사용자이름] : 새암호를 설정할수있다 (root일 때만 가능) 

#>su [사용자 이름] : 원하는 사용자로 변경가능 (서버자체로 접속했을 때만 가능)

#>


맨 아랫줄을 보면 구분을 : 으로 한 라인이 있다

user : x : 1000 : 1000 : user : /home/user:/bin/bash

  1     2    3        4      5             6            7


1) 사용자 이름


2) 사용자 패스워드 (사용하지 않음→pw가 지정되지 않은 것과는 다름, pw파일은 /etc/shadow파일에 있음)


3) UID( 사용자의 ID) 사용자를 부를때의 고유 숫자 (0은 root(관리자) 것이다) -> 원래 근본은 1000 user는 닉네임같은것


4) GID( group ID) : 리눅스에서는 사용자들은 그룹을 가지고있다.

만들어지는 사용자들은 그룹을 지정해주지 않으면 자기 자신의 이름과 같은 그룹을 가지고있다.


레드헷 계열에서는 (사용자 생성시 따로 지정되는게 없으면 UID, GID는 1000번부터 시작)


5) Comment : 비고, 주석같이 사용되는 메모


6) 사용자의 홈 디렉터리


7) 사용자 쉘 : 사용자가 사용하는 쉘을 나타냄

 (예전에는 각각의 기능마다 특화된 쉘이 있었지만 지금은 거의다 bash를 사용, ex) csh, ksh ---)



#사용자가 만들어질 떄 생성되는 파일들 /etc/skel


root /home 에 보면 파일들이 사용자가 생성될 때 자동으로 생성되는 숨김파일 들이 있다.


user /home을 한번 지웠었다


그래서 그런지 -bash-4.2$ 로 프롬프트 창이 변했다...


따라서 /etc/skel에 사용자 생성시 자동으로 들어가는 파일 전체를 복사한다



cp /etc/skel/.* /home/user



3개 디렉터리 . .. .mozilla는 디렉터리들마다 고유 파일이기에 옮길 필요가 없고

skel안의 파일들이 .file 즉 .으로 시작하는 숨김파일이므로 옮길때 .*(와일드카드앞에 .을 붙여준다)


옮겨준뒤 사용자 재로그인을 하면 원래 모양으로 돌아온다



#사용자 만들기

root로 접속 후 #>vi /etc/passwd 

맨 아래줄에 입력을 시작한다


user01:x:1001:1001:user01:/home/user01:/bin/bash 입력후 ESC > :wq


#>passwd user01 : 새로만든 사용자 user01의 패스워드를 지정한다



ctrl + alt + F2로 터미널을 바꾼 후 user01로 접속해본다


passwd파일에 user01을 등록해놨기에 접속은 됬지만 아까 user와 같은 현상으로 커멘드가 -bash-4.2$ 로 되어있다.


이때 몇가지 오류가 발생한다 > 오류를 해결하기 위해서 다시 첫번째 터미널(ctrl + alt + F1)로 이동해서 root로 접속한다.

1) 사용자의 홈디렉터리 생성

#> mkdir /home/user01


2) 사용자의 뼈대 생성( skel폴더 복사)

#> cp /etc/skel/.* /home/user01



3) 사용자(user01)의 그룹 1001 지정

#> vi /etc/group : 그룹을 관리하는 파일을 vi편집기로 연다



맨아랫줄에 추가 user01:x:1001: > ESC > :wq


다시 터미널을 바꿔서 user01로 로그인해보면 오류가 사라져있다.


자 그럼 명령어를 아무리 아무리!!!!! 쳐도 명령어를 실행하지 않는다


이유는 권한이 없기 때문이다 > 아주 중요한 부분이다. 권한설정을 잘해줘야 보안에 첫걸음을 디딘것이다.

root로 돌아가서 권한설정을 해준다 > /home 파일의 주인을 설정해주면 된다


~ #> cd /home && ls -l


#> chown user01. /home/user01


#> ls -l


소유자가 user01로 변경되어 이제 user01사용자가 user01 home디렉터리의 주인이 되었다


다시 user01 터미널로 돌아가서 명령어를 쳐보면 된.다.



#사용자 생성2 : 위에 방법들이 너무 힘들었다 ...

#>useradd [생성될 유저 이름] : 위에 과정들을 명령어 하나로 만들어준다.


#>useradd test01 && passwd test01

#> tail -3 /etc/passwd && ls -l /home/


권한또한 해결 되어있는 것을 볼 수 있다.

default 값으로 모든 값들을 지정해서 만들어 주는데 옵션에 따라 지정이 가능하다


[명령어 : useradd의 옵션]

-u <uid_number>    UID 지정    #>useradd -u 1100 test02


-g <gid_number>    GID 지정    #>useradd -g 1002 test03        그룹 확인 #> tail -4 /etc/group

                   

>>test03의 그룹 1002는 먼저 생성한 user02의 그룹과 동일하기에 따로 그룹이 생성되지 않았다


-c <command> : comment 지정    #>useradd -c "linux user test04" test04


-d <homedir_path>    홈디렉터리 지정    >    default값으로 path가 /home 아래로 들어가기에 보안에 취약하다

1) /(최상위경로에) linux폴더 생성 > -d 옵션을 사용해서 유저생성



이렇게 사용해 주시면 됩니다.


옵션을 여러개 사용할 수 도있지만 귀찮고 변경하는경우에도 직접접근의 필요성으로 사용자를 수동으로 만들어 지는것을 연습해 봤습니다.



#useradd 기본값 #vi /etc/default/useradd

파일을 열었을 때 라인앞에 #이 붙어있으면 그 라인은 주석처리가 된다.



GROUP = 그룹

HOME = 홈 디렉터리

SHELL = 쉘 번역기 디렉터리

SKEL = useradd를 만들었을 때 같이 만들어지는 디렉터리(뼈대)

CREATE_MAIL_SPOOL = 유저간의 메일함 만들기


#ls -l /var/spool/mail

mail...함 ?? mail함은 유저들간의 정보를 주고받을 수 있는 디렉터리이다.

value를 yes로 해놓으면 자동으로 생성되나, user을 직접만든경우 메일함이 필요한 경우 직접 만들어야 한다.

--> but 로그인시 메일함이 자동으로 만들어진다.

자동으로 만들어진 메일함의 디렉터리 이름은 유저이름과 동일하다




@useradd 의 기본값 file을 통해서 user들이 생성되니깐 기본값을 바꾸는 옵션도 있을겁니다.

#>useradd -D -b <path>  : -D의 -b옵션 : home디렉터리 경로를 path경로로 바꾼다


home 디렉터리의 경로를 바꾸었으니 이제부터 생성되는 유저들은 /linux폴더에서 생성됩니다.


#useradd defaul option -D

-b :   home

-s :    shell

-g :   group

-f :    inactive

-e :    expire


skel, mail함같은 경우 옵션이 없기에 vi편집기를 이용해서 직접편집해주어야 한다. 

#>userdel test01 : test01사용자 삭제 ..


passwd와 group만 삭제가 완료되고 홈 디렉터리와 메일함은 남아있네요.


이때 옵션 -r을 사용해서 디렉터리 까지 전부 삭제시켜줍니다. #> userdel -r guest



이때 gid는 기본 값일때만 삭제됩니다.


예를 들어 2명의 사용자가 그룹을 사용중일때 한 사용자가 사라진다면 그룹이 사라 지지 않는다는것을 볼 수 있습니다.