[LINUX] Redhat - User와 Group관리

1000번 이하의 user와 group ID들은 reserve된다. User Manager는 이런 유저를 안보여주고 setup package에 기술되어 있다.
[root@localhost ~]# cat /usr/share/doc/setup*/uidgid
NAME    UID     GID     HOME            SHELL   PACKAGES
root    0       0       /root           /bin/bash       setup
bin     1       1       /bin            /sbin/nologin   setup
daemon  2       2       /sbin           /sbin/nologin   setup
sys     -       3       -               -       setup
adm     3       4       /var/adm                /bin/bash       setup
tty     -       5       -               -       setup
disk    -       6       -               -       setup
lp      4       7       /var/spool/lpd          /sbin/nologin   setup
mem     -       8       -               -       setup
kmem    -       9       -               -       setup
wheel   -       10      -               -       setup
cdrom   -       11      -               -       setup
...


reserve안된 user는 5000번에서부터 시작하는게 recommend이다.  /etc/login.defs 파일에 UID_MIN과 GID_MIN에서 설정할 수 있다.
# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000
UID_MAX                 60000

# Min/max values for automatic gid selection in groupadd
#
GID_MIN                  1000
GID_MAX                 60000

변경되기 전에 만들어진 유저나 group을 위해 1000번부터 default로 시작되게 되어있다.

Redhat은 UPG(User Private Group)을 사용해서 unix group을 쉽게 관리할 수 있다. system에 user가 생성될 때마다 user private group은 생성된다. 이는 user이름과 동일하고 user가 그 그룹의 유일한 멤버가 된다. 이를 통해 새롭게 만들어지는 파일이나 디렉터리 permission을 안전하게 관리할 수 있다. 

새롭게 만들어지는 file이나 directory의 permission을 setting하는 것을 umask라고 하고 유닉스에서는 기본으로 022로 설정되어 있다. 
이 값은 /etc/bashrc 파일에서 수정할 수 있다.
Unix schema에서는 모든 유저(만든 그룹에 속한 유저도) 변경이 불가능하다. 하지만 UPG에서는 group protection이 필요없는 것이 자신만의 그룹을 소유하고 있기 때문이다.
그룹 정보는 /etc/group에서 확인 가능

- Shadow Passwords
multi user환경에서 shadow password는 매우 중요하다. 이는 shadow-utils package를 통해 제공되고 기본으로 enable된다.
UNIX-based system보다 장점은
- /etc/passwd을 /etc/shadow로 encrypte hash하고 root user만이 읽을 수 있다.
- shadow password는 password의 aging을 저장한다.
- shadow password는 /etc/login.defs 파일의 security policy들을 강화한다.

password aging의 경우 독립적으로 /etc/shadow에만 저장되므로 이를 enable하지 않으면 몇몇 utilities나 command는 수행이 안된다.
chage utility를 쓰면 aging parameter설정가능
- gpasswd utilty in /etc/group
- usermode -e, --expiredate or -f, --inactive
- useradd -e, --expiredate or -f, --inactive

GUI인 Users Settings Tool을 사용가능

command-line tool을 사용하는 경우 
id     현재 id확인
useradd, usermod, userdel
groupadd, groupmod, groupdel
gpasswd     Utility primarily used for modification of group password in the /etc/gshadow file which is used by the newgrp  command
pwck, grpck     
pwconv, pwunconv
grpconv, grpunconv

useradd [options] username
passwd username

useradd
-c 'comment'     comment
-d home_directory
-e date     account가 disabled되는 날짜(YYYY-MM-DD)
-f days     password가 expired되는 날짜 0을 주면 바로 disabled되고 -1을 주면 password expired이후에도 disabled가 안된다.
-g group_name
-G group_list     ,로 구분해서 여러 그룹을 줄 수 있다.
-m      home_directory가 없으면 만들어라
-M     home_directory를 만들기 싫을 때
-N     UPG를 만들기 싫을 때
-p password     The password encrypted with crypt
-r     Create a system account with a UID less than 1000 and without a home directory
-s     User's login shell, which default to /bin/bash
-u uid     User ID for the user, which must be unique and greater than 999.

usermod도 useradd와 동일하게 동작한다. 주의할 점은 -G를 할 때 기존 group이 삭제되므로 append의 목적이라면 -a, --append를 -G와 함께 줘야 한다.


기존 버전에서 7으로 migration할 때 uid와 gid는 1-499로 되어있던 것이 1-999로 되므로 /etc/login.defs를 변경하고 수행

useradd juan이 수행되면
/etc/passwd에 
juan:x:1001:1001::/home/juan:/bin/bash가 생성됨
x가 있으면 이 시스템은 shadow password를 사용한다는 의미
비어있는 GECOS 필드는 user의 다른 정보를 제공하는 부분임.

/etc/shadow를 열어보면
juan:!!:14798:0:99999:7:::
!!는 account가 lock이 되었다는 의미
-p로 유저를 만들면 /etc/shadow에 새로운 라인으로 등록됨

juan의 홈을 보면
drwx------으로 설정되어 있음. juan이외에는 누구도 touch못함
/etc/skel이 /home/juan이 기본적으로 copy됨

시스템에 group을 추가하고 싶으면
groupadd [options] group_name
-f, --force     -g gid를 했을 때 gid가 이미 있으면 gorupadd는 새로운 unique한 gid를 groupid로ㅗ 선택한다.
-g gid
-K, --key key=value     /etc/login.defs 를 override한다.
-o, --non-unique     종복된 GID group을 만드는 것을 허용한다.
-p, --password password     새로운 그룹에 대한 encrypted된 password를 제공
-r     1000번 이하의 GID로 system group을 생성한다.

group 멤버들이 /opt/myproject에서 작업하게 하려면
mkdir /opt/myproject
groupadd myproject
chown root:myproject /opt/myproject
chmod 2775 /opt/myproject


usermod -aG myproject username

댓글

가장 많이 본 글