본문 바로가기

Ubuntu Linux

사용자 계정 설정하기 (2)

리눅스에서 사용자는 기본적으로 하나 이상의 그룹에 속하도록 되어 있습니다. 시스템 관리자는 사용자 계정을 만들거나 수정하는 것처럼 그룹을 새로 만들거나 기존 그룹의 정보를 수정하고 삭제하는 것도 가능합니다.

 

시스템을 사용하는 사용자가 많아지면 업무나 기능에 따라 사용자들을 적절한 그룹으로 나누고 권한을 조정해야 하는데, 이는 시스템 보안을 위해 관리자가 해야할 중요한 업무입니다.

 

그룹 관리 명령으로는 groupadd, addgroup, groupmod, groupdel이 있는데, 저는 addgroup을 제외한 3개 명령을 작성해보려 합니다.

 

 

그룹 생성하기 : groupadd

새 그룹을 생성하려면 groupadd 또는 addgroup 명령을 사용합니다. groupadd가 useradd와 유사하기 때문에 저는 groupadd만 작성해볼겁니다.

 

groupadd
- 기능 : 그룹을 생성한다.
- 형식 : groupadd [옵션] 그룹명
- 옵션
        -g gid : 그룹의 GID를 지정한다.
        -o : GID의 중복을 허용한다.

- 사용 예 : groupadd gtest                                groupadd -g 2013 gtest                    groupadd -g 2013 -o gtest22

 

만약 옵션 없이 그룹을 생성하게 되면 GID의 가장 마지막 번호 다음 번호로 자동으로 설정됩니다. 이는 useradd와 같습니다.

 

GID를 지정하여 그룹 생성하기

 

특정 GID를 지정해 그룹을 생성할 수 있는데 이런 경우에 사용하는 옵션이 바로 -g 입니다.

 

sudo groupadd -g 3000 gtest02

 

위와 같이 groupadd로 gtest02를 만들고 grep을 통해 /etc/group 을 검색해봤습니다.

 

기존 group 들의 번호와 관계 없이 지정한 3000번으로 지정된 것을 확인할 수 있었습니다.

 

 

 

GID를 중복으로 지정하기

 

그룹을 생성할 때 GID를 기존 GID와 중복으로 지정할 수도 있습니다. 이는 useradd -o 옵션과 거의 같습니다.

 

sudo groupadd -g 3000 -o gtest03

 

위와 같이 GID가 3000인 그룹이 총 2개 생긴 것을 확인할 수 있습니다. 하지만 이 또한 중복지정으로 인해 오는 혼동이 우려되기 때문에 가급적 피하는 것이 좋습니다.

 

 

 

 

 

그룹 정보 수정하기

 

GID 바꾸기 : -g 옵션

 

그룹의 GID나 그룹명을 수정할 때는 groupmod 명령을 사용합니다.

 

groupmod
- 기능 : 그룹 정보를 수정한다.
- 형식 : groupmod [옵션] 그룹명
- 옵션 :
         -g gid : 그룹의 GID를 수정한다.
         -o : GID의 중복을 허용한다.
         -n 그룹명 : 그룹명을 다른 이름으로 바꾼다.

- 사용 예
         groupmod -g 3001 gtest
         groupmod -g 3001 -o gtest22
         groupmod -n gtest1 gtest

 

groupmod 명령에 -g 옵션을 지정하면 GID를 바꾸는 것이 가능합니다. 바로 예시를 보여드리겠습니다.

 

gtest03과 같이 GID가 3000번이었던 gtest02의 GID를 바꿨습니다.

 

 

그룹명 바꾸기 -n 옵션

그룹명을 바꾸는 옵션은 -n 입니다. 그룹명이 바뀌면 기존 파일이나 디렉터리의 소속 그룹명도 자동으로 바뀌게 됩니다. 이름만 바뀌었을뿐 같은 GID 이기 때문입니다. 이번에는 gtest02를 gtest2222로 바꿔보겠습니다.

 

gtest02의 그룹명이 바뀐 것을 확인할 수 있습니다.

 

 

 

그룹 삭제하기

그룹을 삭제할 때는 groupdel 명령을 사용합니다.

 

groupdel
- 기능 : 그룹을 삭제한다.
- 형식 : groupdel 그룹명
- 사용 예 : groupdel gtest

삭제할 그룹의 이름만 지정하면 해당 그룹이 삭제됩니다. gtest2222를 한번 삭제해보겠습니다.

 

 

grep 최하단에 나오던 gtest2222 그룹이 삭제된 것을 볼 수 있었습니다.

 

 

 

그룹 암호 설정하고 사용하기

 

리눅스는 유닉스와 달리 그룹의 암호를 설정하는 gpasswd 명령을 제공합니다. gpasswd 명령은 단순히 그룹의 암호를 설정하는 것 뿐만 아니라 그룹의 암호를 삭제하고 그룹에 멤버를 추가하거나 삭제하는 기능도 제공합니다.

 

gpasswd
- 기능 : /etc/group , /etc/gshadow 파일을 관리한다.
- 형식 : gpasswd [옵션] 그룹명
- 옵션 :
            -a 사용자 계정 : 사용자 계정을 그룹에 추가한다.
            -d 사용자 계정 : 사용자 계정을 그룹에서 삭제한다.
            -r : 그룹 암호를 삭제한다.

사용 예
            gpasswd gtest01
            gpasswd -a test01 gtest01
            gpasswd -r gtest01

 

그룹에 멤버 추가하기 : -a 옵션

 

그룹에 멤버를 추가하려면 -a 옵션을 사용합니다.

sudo gpasswd -a test01 gtest11
sudo gpasswd -a test02 gtest11

위와 같은 명령은 test01, test02 사용자 계정을 gtest11 그룹에 넣는다는 뜻입니다. 기존에 만들어두었던 사용자가 없는 gtest11 그룹에 test01, test02 사용자가 들어가게 될겁니다.

 

 

sudo gpasswd -d test02 gtest11

위와 같이 작성하면 gtest11 그룹의 멤버인 test02가 그룹에서 제외됩니다. 이는 test02 계정 자체가 없어지는 것이 아니라 gtest11 그룹에서 "제외" 만 되는 겁니다.

 

sudo gpasswd gtest11

 

gpaswd 옵션으로 gtest11의 암호를 설정해봤습니다. 해당 암호는 다음과 같은 경우에 사용됩니다.

 

우리가 A라는 사용자 계정을 생성했다고 치겠습니다. 해당 계정은 기본적으로 소속 그룹이 우리가 처음에 지정한 그룹으로 들어오게 될겁니다.

 

우리가 직전에 설정한 gtest11 비밀번호는 위와 같은 상황에 사용됩니다. 해당 계정을 gtest11 그룹으로 옮기려 할 때 비밀번호 입력 이벤트가 발생하고, 올바른 비밀번호를 입력해야만 그룹 이동이 진행됩니다.

 

해당 그룹의 passwd를 삭제하려면,

 

sudo gpasswd -r gtest11

위와 같이 명령하면 됩니다. sudo (root 권한) 명령이기 때문에 따로 비밀번호 입력없이 gtest11의 비밀번호를 없앨 수 있습니다.

 

 

 

'Ubuntu Linux' 카테고리의 다른 글

사용자 관리  (0) 2022.06.05
사용자 계정 생성하기 (1)  (0) 2022.06.02
리눅스 사용자 관리  (0) 2022.05.31
파일 압축하기, 풀기  (0) 2022.05.31
APM을 이용한 웹서버 구축  (0) 2022.05.30