Linux

22.02.18

가로선 2022. 2. 18. 16:56

 

   목차   

 

1. 사용자 및 그룹 관리

 - 관련된 파일 및 디렉터리

2. /etc/passwd 파일 분석

3. 사용자 계정 생성

 - useradd

 - 사용자 계정 생성시 자동 생성되는 디렉터리 및 파일

 - 사용자 계정 uid 바꿔서 생성

 - 사용자 계정 gid 바꿔서 생성

 - 사용자 계정 Comment 달아서 생성

 - 사용자 계정 홈 디렉터리 변경해서 생성

 - 사용자 계정 shell 형식 변경해서 생성

4. 사용자 계정 삭제

 - userdel

5. 사용자 계정 수정

 - usermod

 - 사용자 계정 uid 수정

 - 사용자 계정 gid 수정

 - 사용자 계정 Comment 수정

 - 사용자 계정 홈 디렉터리 수정

 - 사용자 계정 shell 수정


 

   사용자 및 그룹 관리   

 

   관련된 파일 및 디렉터리   

 - /etc/passwd : id, pw, uid, gid, 코멘트, 홈디렉터리, shell
 - /etc/group : id, pw, gid, 사용자
 - /etc/shadow : id, pw, 마지막으로 패스워드 수정한 날짜, 패스워드 최소 사용기간,

                                패스워드 최대 사용기간, 경고메세지 출력일, 유예기간, 계정만료일
 - /etc/dafault/useradd : 기본그룹, 유예기간, 계정만료일, 로그인 shell, spool 생성여부
 - /etc/login.defs : 메일사서함위치, 패스워드 최소 사용일, 패스워드 최대 사용일, 

                                    경고 메세지 출력일, 패스워드 최소 길이, 패스워드 암호화 방식 sha512
                                    uid 시작 및 끝 번호 지정, gid 시작 및 끝 번호 지정
 - /etc/skel : 사용자 계정 생성시 기본적으로 홈디렉터리에 복사하는 파일 및 디렉터리 

 

 - head, tail : 문서의 앞쪽 부분부터 or 뒷쪽 부분 부터 볼 수 있는 명령어

    ex) head -5 /etc/passwd(이런 식으로 많이 사용)

 

 

   /etc/passwd 칼럼별 분석   

 - 칼럼 : 콜론으로 구분

 

/etc/passwd 분석

 - lee2: : 사용자 id
 - x: : 사용자 pw
 - 2006: : uid (user identity, 사용자별로 고유하며 기본적으로 1000번 부터 생성)

    - /etc/login.defs에서 생성
    - 만일 순차적 2000번 uid를 사용하면 그 다음 계정은 2001로 생성됨 / 중간에 제외된 uid 사용 x

        - 즉, 위의 예제는 lee의 uid가 2005기 때문에 2006으로 설정된 것이다
 - 2006: : gid (그룹별로 고유하며 기본적으로 1000번 부터 생성)
    - 사용자 계정을 생성하면 동일한 그룹이 자동생성
 - : : 코멘트(설명)
 - /home/lee2: : 사용자의 홈 디렉터리
 - /bin/bash : 사용자가 로그인 할때 주어지는 Shell

 

처음 생성한 first라는 사용자 계정의 uid, gid가 1000으로 시작한다

 

 

   사용자 계정 생성   

 - useradd 사용

 

   사용자 계정 생성시 자동 생성되는 디렉터리 및 파일   

 - /home/사용자 계정이름 : 사용자의 홈디렉터리

 - /var/spool/mail/사용자 계정이름 : 메일 사서함 파일(= /var/mail/사용자 계정이름)

    - 둘 중 한 곳이라도 삭제가 되면 다른 곳도 삭제가 된다(같은 파일)

 

lee라는 계정을 생성했을 때 자동으로 생성되는 2곳

 

   사용자 계정 uid 바꿔서 생성   

 ex) useradd -u 2100 lee3

 

lee3에 uid 2100을 주어 생성

    - 보통이라면 lee3의 uid는 2007이여야 하지만, -u 옵션을 통해 2100이 되었다

 

   사용자 계정 gid 바꿔서 생성   

 ex) useradd -g 1000 second

 

second 사용자를 만들 때 -g를 통해 gid를 바꿨다

    - second 사용자의 경우, 보통이라면 gid가 1001되었을 것이다

    - useradd -g 2000 third 를 했을 때는 2000이라는 그룹이없어 사용자가 만들어 지지 x

        - 즉, 존재하는 그룹에 한해서만 바꿔서 생성할 수 있다

 

-G 옵션을 통해 추가 그룹을 주었다

    - fourth 사용자의 경우 기본 gid가 1003이고, -G 옵션을 통해 추가 그룹 1002까지 주었다

    - /etc/passwd에서는 추가 그룹까지는 확인할 수 없어 명령어 id를 이용해서 확인하여야 한다

 

   사용자 계정 Comment 달아서 생성   

 ex) useradd -c five fifth

 

-c 옵션을 통해 fifth에 코멘트를 달아주었다

    - -c 옵션을 통해 five라는 comment를 작성

 

   사용자 계정 홈 디렉터리 변경해서 생성   

 ex) useradd -d /test/sixth sixth

 

-d 옵션을 통해 home 디렉터리 변경

    - -d 옵션을 통해 본래 sixth의 홈디렉터리였을 /home/sixth에서 /test/sixth로 변경해서 생성

 

   사용자 계정 shell 형식 변경해서 생성   

 - shell : 명령어 해석기

 - 사용자 계정에서만 아니라 

    chsh(change shell) -s /bin/sh root 이런 형식으로 변경할 수 있다

 

chsh 명령어를 사용하여 shell 형식 변경

 

 - echo $SHELL

 

bash 쉘을 사용중이다

 - ex) useradd -s /bin/sh seventh

 

-s 옵션을 통하여 shell 변경

    - 보통 shell은 /bin/bash로 형성되지만, -s 옵션을 통해 /bin/sh로 변경

 

/sbin/nologin으로 변경시 바뀌어지는 점

    - /sbin/nologin : 애플리케이션 실행시 필요한 기본 로그인 같은 느낌이라 로그인이 되지 x

        ex) Apache 같은 것이라고 생각

    - su - 로 접속을 시도하려 할 때 메세지가 뜨면서 접속이 되지 않는다

 

/bin/false로 변경시 바뀌어지는 점

    - /bin/false : /sbin/nologin과 동일하지만, /sbin/nologin과는 달리 메세지가 출력 x

 

 

   사용자 계정 삭제   

 

   userdel   

 - 사용자 계정 삭제시 옵션 -r을 사용하지 않으면 귀찮아진다

 

userdel로만 삭제시 /etc/passwd에선 삭제가 된다

 

/home/에 아직 ninth가 남아있다

 

/var/spool/mail/에 아직 ninth가 남아있다

    - userdel의 옵션 -r을 사용하지 않으면 저 2개의 디렉터리에서 수동으로 삭제해주어야한다

   

-r 을 사용하지 않고 삭제 후, 같은 유저를 생성했을 때

    - 만약, 수동 삭제 안한 상태에서 계정 같은 것을 생성하면 오류는 나지만 생성은 된다

    - 그러나, userdel -r로 삭제를 하려하면 삭제가 되지 않는다

        - 자기가 소유주가 아니므로(기존의 gid, uid가 달라짐)

 

 

   사용자 계정 수정   

 

   usermod   

 - useradd의 옵션과 동일하다

 

   사용자 계정 uid 수정   

 

fifth의 uid 수정

    - u 옵션을 통해 uid를 1004 -> 1100으로 수정

 

   사용자 계정 gid 수정   

 

 

fifth의 gid 수정

    - g 옵션을 통해 gid를 1004 -> 1003으로 수정

 

/etc/group 내에 존재하는 그룹으로만 변경이 가능

 

group을 추가하여 gid를 변경

    - groupadd -g 1100 test를 통하여 gid 1100을 가진 test 그룹을 생성(임의로)

    - gid 1100 그룹이 생겨나서 usermod를 통해 gid 1100으로 수정이 가능

        - 수업중엔 크게 좋은 것은 아니라고 언급하셨음

 

 - 추가 그룹 제거 방법

 

fifth의 추가그룹인 fourth를 제거

    - gpasswd -d 사용자 그룹

    - 만약 추가 그룹 되있는 것 말고 그 위에 그룹을 지웠다면, gpasswd -d 사용해서 그룹 삭제

    - 보통 추가 그룹때문에 /etc/passwd 밑에 사용자 계정부터 지우는 것이 좋다

 

   사용자 계정 Comment 수정   

 

fifth의 comment five를 hello 로 수정

 

   사용자 계정 홈 디렉터리 수정   

 

fifth의 홈 디렉터리 수정

    - m 옵션을 써야 사용자의 전 홈 디렉터리에 있던 contents도 같이 옮겨진다

 

   사용자 계정 shell 수정   

 

fifth의 shell 수정