> For the complete documentation index, see [llms.txt](https://kde6260.gitbook.io/dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kde6260.gitbook.io/dev/linux/usermod.md).

# usermod 로 그룹에 유저 추가하기

1차 수정일 \[2020.01.19] - 작업 환경 명시

> 작업 환경 : Ubuntu 18.04

[Aqua Microscanner](https://blog.aquasec.com/microscanner-free-image-vulnerability-scanner-for-developers)를 이용하여 보안을 테스트하는 젠킨스 파이프라인을 실행하는 도중에 아래의 메세지와 함께 에러가 발생했다.

```
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: 
Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=w333kxg5rwhirnz2nkzxlrmn1&shmsize=0&t=3c2e3826563ff5197d4ce4d2acf4b38e554496f0&target=&ulimits=null&version=1: dial unix /var/run/docker.sock: connect: permission denied
```

원인은 `jenkins` 계정이 도커 컨테이너를 생성할 권한이 없는 것이었다. `docker` 그룹에 `jenkins`를 추가하면 해결할 수 있다.

#### group 확인

리눅스 내 그룹을 확인하기 위해 `/etc/group` 파일을  조회한다.

```
$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,ubuntu
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
...
ubuntu:x:1000:
jenkins:x:115:
docker:x:116:ubuntu
```

각 행은 아래의 형식으로 구성되어 있다. (비밀번호를 설정하면 새 유저를 추가할 때 비밀번호 입력을 요구할 수 있다.)

&#x20;**그룹이름 : 비밀번호 : 그룹ID : 그룹에 소속된 유저**

`/etc/group` 파일을 확인해보니 `docker` 그룹에는 `ubuntu` 유저만 추가되어 있다.

#### **그룹에 유저 추가**

어떤 그룹에 기존에 있던 유저를 추가하려면 `usermod` 명령어를 사용한다. `usermod`는 'user modification'의 약자로 유저 정보를 변경할 때 쓰는 명령어다.

```
$ sudo usermod -a -G <그룹이름> <추가할 유저이>
```

| option                | usage                                          |
| --------------------- | ---------------------------------------------- |
| -G, --groups \<group> | \<group>의 새로운 목록                               |
| -a, --append \<group> | 유저가 포함되어있는 기존의 그룹에 대한 변경 없이 \<group>에 유저를 추가함. |

`docker`그룹에 `jenkins` 유저를 추가한 후 `/etc/group`을 다시 조회했다.

```
$ sudo usermod -a -G docker jenkins
$ cat /etc/group
...
netdev:x:114:ubuntu
ubuntu:x:1000:
jenkins:x:115:
docker:x:116:ubuntu,jenkins
```

계정이 추가되었으면 젠킨스 데몬을 다시 실행해야 한다.

```
$ sudo service jenkins restart
```
