본문 바로가기

Red Hat Linux

Linux user와 group 사용법 - Red Hat Enterprise Linux Technical Overview (6)

 

User와 Group

Linux에서 모든 사용자는 디폴트로 항상 하나의 그룹에 속하게 되는데, 사용자명과 동일한 이름의 그룹이다. 사용자가 속할 수 있는 다른 그룹을 보조 그룹(Supplimentary Group)이라고 한다. 

 

 

 

user 관련 명령어

`user`까지만 치고 탭을 두 번 누르면 `user`로 시작하는 여러가지 명령어 옵션이 출력되는 것을 볼 수 있다.

user 관련 명령어 용도
useradd 사용자 생성
userdel 사용자 삭제
usermod 사용자 속성 변경 

 

 

 

useradd 명령어

`useradd 사용자명` 명령어로 사용자를 원하는 이름으로 생성할 수 있다. 

 

 

 

id  명령어

`id 사용자명`을 수행하면 해당 사용자의 식별자인 id, 그룹정보를 확인할 수 있다. 이때 `gid`는 해당 유저의 primary group을 나타낸다. 아래 사진을 보면 gid의 이름은 `john`으로, 사용자 이름과 그룹 이름이 동일한 것을 확인할 수 있다. 사용자를 처음 생성하면 사용자의 디폴트 그룹이 동일한 이름으로 생성된다. `groups`는 해당 사용자가 속한 다른 보조 그룹을 뜻한다. 

 

 

 

group관련 명령어

`group`까지만 치고 탭을 두 번 누르면 `group`로 시작하는 여러가지 명령어 옵션이 출력되는 것을 볼 수 있다.

 

group 관련 명령어 용도
groupadd 그룹 생성
groupdel 그룹 삭제
groupmod 그룹 속성 변경 

 

 

 

user를 group에 가입 시키기

우선 `groupadd 그룹명` 명령어로 그룹을 원하는 이름으로 생성할 수 있다. `usermod -aG 그룹명 사용자명` 명령어로 해당 사용자를 해당 그룹에 가입시킬 수 있다. `id john`을 수행하면 groups에 beatles가 추가된 것을 확인할 수 있다. john은 beatles의 멤버가 되었으므로, beatles가 가진 권한을 모두 동일하게 부여받는다.

 

 

 

passwd 명령어

`passwd 사용자명` 명령어를 통해 해당 사용자에게 비밀번호를 할당할 수 있다. 

 

 

 

userdel 명령어

`userdel 사용자명`을 사용하면 해당 사용자가 삭제된다. 사용자의 데이터는 자동으로 삭제되지 않고 남아있는다. 

 

 

 

사용자 계정 정보가 담긴 passwd 파일

passwd 파일은 `/etc/passwd`에 위치해있는데, `/etc` 하위에 있는 것을 보면 알 수 있듯이 configuration file(구성 파일)이다. 파일 명을 보면 오해하기 쉽지만 이곳이 비밀번호가 저장되는 곳은 아니다. 해당 파일 내에서 특정 유저에 대한 정보를 출력하기 위해서 `grep 사용자명 /etc/passwd`명령어를 수행하면 다음과 같은 내용을 확인할 수 있다. 

john:x:1000:1000: john:/home/ john:/bin/bash

 

 

 

사용자의 비밀번호

사용자 비밀번호는 `shadow`라는 파일에 저장된다. `grep 사용자명 /etc/shadow`를 수행하면 다음과 같은 결과를 확인할 수 있는데, `사용자명:` 다음에 나오는 해시가 암호화된 비밀번호다. 

john:$5XvmYk2.GXVWhDo2TYGN2hCitD/wU9Kov.uZD8xsnleuf1r0ARX3qodIKiDsdoQA444b8IMPMOnUWDmVJVkeg1::0:99999:7:::

 

 

 

/etc/group 파일

`grep 그룹명 /etc/group` 명령어를 수행하면 그룹 구성 파일인 `/etc/group` 파일 내용 중에서 해당 그룹명이 포함된 줄을 출력해준다. 아래 출력을 보면 wheel이라는 그룹의 아이디는 10이고, student라는 유저가 속해있음을 알 수 있다.

wheel:x:10:student

 

 

 

sudo 명령어

sudo 명령어를 사용하면, 임시로 root 권한으로 명령어를 수행할 수 있다. `sudo grep student /etc/shadow` `/etc/shadow` 파일의 내용을 조회하는 것은 root만 할 수 있기 때문에 일반유저로 로그인했을 때는 `permission denied`가 뜨는 것을 확인할 수 있다. sudo 명령어를 붙이면 student 유저인지 확인하기 위해 student의 비밀번호를 입력하면 root 권한으로 명령어를 수행할 수 있게 된다. 

 

 

sudo -u 옵션

`-u`옵션을 사용하면 특정 유저로서 명령어를 수행하게 된다. 따라서 현재 로그인한 유저를 확인할 수 있는 명령어인 `whoami`를 사용하여 다음과 같이 실험을 해보면, 실제로 student로 로그인한 상태에서도 다른 유저라고 답하는 것을 볼 수 있다. 

[student@servera ~]$ sudo -u cockpit-ws whoami
cockpit-ws
[student@servera ~]$ sudo whoami
root

 

 

 

유저 변경 명령어 su - 

`su`는 switch user를 뜻한다. `su - 사용자명`을 수행하면 해당 사용자로 로그인된다. 사용자명을 명시하지 않으면 root로 변경된다. 

 

 


 

본 포스트 시리즈는  RH024 Red Hat Enterprise Linux Technical Overview 」 강좌를 요약한 내용입니다.