ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리눅스] 사용자 관리, 사용자 생성
    서버/리눅스 2017. 3. 17. 19:32

    #사용자 관리

    - /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명의 사용자가 그룹을 사용중일때 한 사용자가 사라진다면 그룹이 사라 지지 않는다는것을 볼 수 있습니다.







    '서버 > 리눅스' 카테고리의 다른 글

    [리눅스] 그룹  (0) 2017.03.20
    [리눅스] 사용자 수정, 사용자 삭제  (0) 2017.03.20
    [리눅스] 명령어  (0) 2017.03.16
    [리눅스]쉘, 쉘의 기능  (0) 2017.03.15
    [리눅스] putty  (0) 2017.03.15

    댓글

Designed by Tistory.