🐧 Linux, shell, web server/🥁 Ubuntu

사용자 및 그룹관리, sudo 권한 부여

DarrenKwonDev 2020. 12. 26. 01:58

사용자(/etc/passwd), 그룹 확인(/etc/group)

 

/etc/passwd 에는 정의된 유저를 확인할 수 있다.

사용자 이름 : 암호 :사용자 ID : 사용자가 소속된 그룹 ID : 추가정보 : 홈 디렉토리 : 기본쉘

 

모든 유저는 적어도 하나의 그룹에 소속되어야 함 그룹은 /etc/group에 정의되어 있음.

비밀번호는 x로 표시되어 있음. 보안 문제로 인해 비밀번호는/etc/shadow라는 파일에서 따로 관리함.

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

... 시스템에서 이용하는 여러 계정들...(중략)

ubuntu : x : 1000 : 1000 : ubuntu,,, : /home/ubuntu : /bin/bash

 

root 계정은 0번 유저이고 0번 그룹에 속하며 홈 디렉토리는 /root 쉘은 /bin/bash를 사용함.

0번 그룹이 무엇인가 head /etc/group을 통해 출력해보았더니 root:x:0이다.

0번 그룹의 이름은 root이라는 것을 알 수 있다.

root의 비밀번호가 굼금해졌다. head /etc/shade를 통해 출력해보니 암호화된 root의 비밀번호를 찾을 수 있었다.

 

ubuntu 계정은 1000번 유저이고 1000번 그룹에 속하며 홈 디렉토리는 /home/ubuntu이고 bash 쉘을 사용한다.

1000번 그룹은 무엇인가. tail /etc/group을 통해 출력해보니 ubuntu:x:1000이다.

1000번 그룹의 이름이 ubuntu라는 것을 알 수 있다.

 

이렇게 이름이 일치하는 이유는, 별다른 설정을 하지 않으면 그룹 이름은 생성한 유저 이름과 같은 것으로 만들어진다.

 

또, 유저를 생성하면 /home 디렉토리에 유저별로 파일이 생긴다. 윈도우에서 사용자 폴더가 생기는 것과 동일하다.

여기서, 유저 홈 디레토리 생성시 에 /etc/skel 경로에 있는 내용을 자동으로 복사형 각 유저의 파일에 기본적으로 넣어주게 된다. 따라서 유저 홈 디렉토리에 특정한 내용물을 공통적으로 넣고싶다면 /etc/skel에 넣어주자.

 

 

사용자 관련 명령어

 

유저는 생성하는 방식은 adduser, useradd 두 방법이 있습니다.

 

adduser가 더 편리합니다. 패스워드가 기타 정보를 유저 생성 당시에 만들어내기 때문입니다.

useradd가 그렇다고 나쁜 건 아닙니다. useradd를 사용할 때는 보통 -m 옵션을 붙여서 사용자 계정을 추가합니다.

 

adduser

사용자 추가. 따로 설정을 주지 않으면 추가함에 따라 같은 이름의 group도 만들어집니다.

adduser --uid --gid --home --shell newuser1 

 

생성된 유저는 /home/[username] 디렉터리를 할당 받습니다.

 

그룹 생성을 먼저한 뒤 그룹 아이디를 확인한 후 해당 그룹에 속하도록 만들어보겠습니다.

groupadd ubuntuGroup
tail /etc/group // 생성한 그룹의 ID가 1001인 것을 확인함
useradd --gid 1001 user1 // --gid 옵션
useradd --gid 1001 user2 // --gid 옵션

다른 유저지만 같은 group에 속한 것을 확인할 수 있습니다.

 

passwd

비밀번호 설정

 

sudo passwd [username]

 

만약 현재 사용 중인 계정의 비밀번호를 변경하고 싶다면 단순히 sudo passwd 만 입력하면 됩니다.

 

 

usermod

사용자 설정 변경 (sudo 권한을 주기 위해 그룹을 옮기는 등 다양하게 사용됩니다)

 

// gunsmoke 유저를 대상으로 sudo 그룹에 추가(-a append) 합니다
// 만약 a 플래그가 없다면 그룹이 '변경'됩니다.
usermod -a -G sudo gunsmoke 

 

userdel

사용자 삭제

사용자 디렉토리까지 지우기를 원한다면 user -r 을 사용합시다.

userdel newuser2 // newuser2 유저 정보만 지우고 유저의 홈 디렉토리는 안 지워집니다.

user -r user1 // r옵션을 붙이면 user1의 홈 디렉토리까지 지웁니다.

 

change

사용자의 비밀번호를 주기적으로 변경하도록 설정

 

change -m 2 newuser1

 

 

사용자 계정 전환

 

su - [username]

 

 

그룹 관련 명령어

 

groups

현재 사용자가 속한 그룹을 보여줌

 

groupadd

새로운 그룹 생성

 

groupadd ubuntuGroup

 

groupmod

그룹의 속성 변경

groupmod --new-name mygroup1 newgroup1

 

groupdel

그룹 삭제

 

groupdel newgroup2

 

gpasswd

그룹의 암호 설정. 잘 사용 안함. 사용자 비밀 번호 정도만..

 

gpasswd newgroup1

 

 

사용자에게 sudo 권한 부여하기

sudo를 실행할 수 있는 권한은 /etc/sudoers 에서 지정할 수 있습니다.

cat 명령어로 확인해보니 아래와 같은 내용을 확인할 수 있습니다.

 

root 계정과 admin나 sudo 그룹에 속한 계정은 루트 권한을 얻을 수 있다는 것을 확인할 수 있습니다. 

sudo usermod -a -G sudo gunsmoke

 

해당 유저의 group이 바뀐 것을 확인할 수 있습니다.

 

이제 sudo 명령을 사용할 수 있게 되었습니다!