Today
-
Yesterday
-
Total
-
  • 💡 [Linux-Unix] 유저와 그룹에 대해 Araboza
    | 프로그래밍 분야/Unix-Linux 2021. 3. 28. 03:46

    사용자(User)

    윈도우에서도 유저 개념이 있지만, 윈도우는 대체로 1~2명의 사용자가 사용하는것이 고작이다. 반면, 리눅스는 하나의 컴퓨터를 여러 명이 사용하는 경우가 많다. 즉, 멀티유저 운영체제의 성격이 강하다.

    따라서 유저 관리가 중요한데, 먼저 '현재 접속중인 유저'를 조회하는 방법이다. users

    그리고 전체 유저를 조회하는 방법이다. cat /etc/passwd

    passwd 문서는 모든 유저의 정보를 저장하는 DB라고 한다. 근데 왜 내 계정인 syoon은 보이지 않는거지? 내 uid는 6자리 숫자인데 여기에는 3자리까지의 계정밖에 나와있지 않다. 이 부분은 더 공부가 필요할 것 같다...

    각 필드의 의미는 다음과 같다.

    /etc/passwd

     

                root:x:0:0:root:/root:/bin/bash

                  ①  ②③④    ⑤    ⑥     ⑦          

     

    ① 필드 1 : 사용자명

    ② 필드 2 : 패스워드(/etc/shadow 파일에 암호화되어 있음)

    ③ 필드 3 : 사용자 계정 uid

    ④ 필드 4 : 사용자 계정 gid

    ⑤ 필드 5 : 사용자 계정 이름(정보)

    ⑥ 필드 6 : 사용자 계정 홈 디렉토리

    ⑦ 필드 7 : 사용자 계정 로그인 쉘



    출처: https://webdir.tistory.com/129 [WEBDIR]

     

    참고로, useradd나 adduser를 통해 수동 생성된 계정과 그룹의 uid는 500이상이다.

    500이하는 시스템용 유저 및 시스템용 그룹.

    uid는 user id, gid는 group id의 줄임말이다. id는.... 네, identification..

    보면 별별 유저가 참 많은데, 이는 대부분 '프로그램의 계정'이다. 프로그램이 설치시 자동으로 등록된다. 프로그램도 권한때문에 리눅스에서 동작하려면 계정을 만들어야 하기 때문이다.

     

    너무 복잡해서 유저 이름만 보고싶다 하면, 다음 커맨드로 확인할 수 있다.

    cut -f1 -d: /etc/passwd

     

    sudo useradd [이름] sudo adduser [이름] 유저 생성 (root 권한이 있는 유저 및 Admin 계정에서만 생성 가능)

    sudo passwd [이름] 패스워드 생성 (상동)

    sudo usermod [옵션] [이름] 유저 정보 변경

    su [이름] 유저 변경

    exit 이전 유저로 복귀

    sudo userdel -r [이름] sudo delsuer -r [이름] 유저 삭제 (-r 옵션으로 홈 디렉터리까지 모두 삭제)

     

     

    그룹(Group)

    리눅스가 워낙 많은 유저를 수용하는 경우가 많다보니, 자원에 대한 접근 권한 설정 등의 문제로 유저 개개인을 관리하기보다 묶어서 관리하는 것이 효율적일 경우가 많다. 그래서 리눅스에서는 그룹(Group)이라는 개념이 활용된다.

     

    유저는 하나의 기본 그룹(Primary Group)과 다수의 보조 그룹(Secondary -)에 포함될 수 있다.

    passwd에서 유저 목록을 확인할 수 있었듯, 그룹 목록은 다음 방법으로 확인할 수 있다.

    cat /etc/group

     

    각 필드의 의미

     - 그룹명 : 그룹패스워드(암호화) : 기본 그룹 gid : 소속된 유저들

     

    그룹 관련 명령어로는 유저와 마찬가지로 groupadd, groupmod, groupdel이 있다. 역시 sudo를 이용하므로 root 권한이 필요하다.

     

     

    유저가 속한 그룹 조회

    groups [유저] 유저가 속한 그룹들을 출력해준다.

    id [유저] 상동. 다만 uid와 gid를 표시해주며, 다양한 옵션을 사용할 수 있다. (man id 참조)

sangilyoon.dev@gmail.com