코딩마을방범대
[우분투] 유저 추가 및 그룹 관리 본문
특정 사용자에 대해 포트를 제한해야 할 일이 생겼다.
이를 위해 유저를 추가하는 절차가 필요하다!
이번 포스팅엔 유저를 관리하는 방법을 다루고, 다음 포스팅엔 포트를 제한하는 방법을 다룰 것이다!
기존 유저 확인
cat /etc/passwd
위 명령어 입력 시 아래와 같이 복잡한 형식으로 여러개가 나열된다.
여기서 찾는 방법도 있지만, 직접 추가하지 않은 시스템 사용자 부분까지 나열되기 때문에 직접 추가한 유저를 찾기는 어렵다.
username:x:UID:GID:full name:home directory:default shell
시스템 사용자를 제외한 일반 유저만 확인하고 싶은 경우 아래 명령어를 사용하면 된다.
아래 명령어 실행 시 일반 사용자들 이름만 확인 가능하다.
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
nobody
dbkim
user01
일반적으로 시스템 그룹의 GID(그룹 ID)는 일정 범위 내에 있다.
리눅스 시스템에서 시스템 그룹의 GID는 1000 미만이므로 이를 이용해서 해당 내용만 출력하는 것이다.
awk -F: awk는 텍스트를 처리하는 데 사용되며, -F: 옵션은 필드 구분자를 콜론(:)으로 설정한다. {if ($3 >= 1000) print $1} 세 번째 필드(즉, GID)가 1000 이상인 경우에만 첫 번째 필드(username)를 출력한다.
그룹 추가
1. 그룹 확인하기
서버에 등록된 사용자 그룹 리스트를 확인할 수 있다.
getent group
getent group | grep [텍스트]
위와 같이 사용 시 [텍스트]가 포함되는 그룹 리스트만 확인할 수 있다.
위 명령어 실행 시 유저 확인과 동일하게 복잡한 형식으로 나열된다.
이것도 동일하게 GID를 이용해 시스템 사용자 그룹 외에 일반 사용자 그룹만 확인이 가능하다.
groupname:x:GID:
아래 명령어를 사용하면 일반 사용자 그룹만 확인이 가능하다.
awk -F: '{if ($3 >= 1000) print $1}' /etc/group
일반적으로 시스템 그룹의 GID(그룹 ID)는 일정 범위 내에 있다.
리눅스 시스템에서 시스템 그룹의 GID는 1000 미만이므로 이를 이용해서 해당 내용만 출력하는 것이다.
awk -F: awk는 텍스트를 처리하는 데 사용되며, -F: 옵션은 필드 구분자를 콜론(:)으로 설정한다. {if ($3 >= 1000) print $1} 세 번째 필드(즉, GID)가 1000 이상인 경우에만 첫 번째 필드(groupname)를 출력한다.
2. 그룹 추가하기
새로운 그룹을 추가할 수 있다.
sudo groupadd [그룹명]
그룹 삭제는 아래 명령어를 사용하면 된다.
sudo groupdel [그룹명]
3. 사용자를 그룹에 추가하기
이미 생성된 사용자를 그룹에 추가할 수 있다.
sudo usermod -aG [그룹명] [사용자명]
-aG는 사용자를 속해 있는 그룹들을 유지하면서 새로운 그룹에 추가(부가 그룹 추가)
-g는 사용자를 메인 그룹을 이동(부가 그룹 삭제)
그룹에서 사용자를 삭제하려면?
sudo gpasswd -d [사용자명] [그룹명]
4. 사용자가 속한 그룹 확인하기
사용자가 속한 그룹을 확인할 수 있다.
groups [사용자명]
그룹에 속한 사용자를 확인하는 방법은 아래 명령어를 이용하면 된다.
grep '그룹명' /etc/group
유저 추가
1. 기본적인 설정을 포함한 유저 생성
기본적인 설정(비밀번호, full name 등) 을 수행하는 명령어로,
완료 후 /home/[사용자명] 에 홈디렉토리가 생성된다!
sudo adduser [사용자명] --ingroup [그룹명]
2. 설정 없이 유저만 생성
기본적인 설정없이 사용자만 생성하므로, 그룹도 지정할 수 없다.
이후 추가적인 명령어로 설정이 가능하다.
sudo useradd -g [그룹명] [사용자명]
홈 디렉토리 설정하기
자동으로 /home/[사용자명] 이 홈디렉토리로 설정된다.
만약 홈디렉토리를 수동으로 지정하고 싶다면, 아래에 설명되어 있다.
sudo useradd -m [사용자명]
패스워드 설정하기
sudo passwd [사용자명]
유저 삭제
sudo userdel -r [사용자명]
-r을 붙이지 않을 경우 사용자 홈과 디렉토리가 삭제되지 않는다
홈 디렉토리 설정하기
자동으로 설정되는 홈디렉토리를 사용해도 되지만, 임의로 폴더를 지정해주고 싶은 경우의 방법이다.
1. 유저를 생성과 동시에 홈디렉토리 설정
홈디렉토리가 이미 설정되어있다면 useradd: user '사용자명' already exists 이라는 문구가 출력되므로 2번 방법을 사용하면 된다.
sudo useradd -d [폴더위치] -m [사용자명]
2. 기존 사용자의 홈 디렉토리 설정
sudo usermod -d [폴더명] [사용자명]
3. 설정된 홈 디렉토리 확인 방법
텍스트에 검색할 유저명이나 디렉토리명을 넣어 확인이 가능하다.
cat /etc/passwd | grep [텍스트]
사용자에게 sudo 권한 부여하기
1. root 사용자로 접속
sudo su
2. visudo 실행
visudo
3. 파일 수정
[사용자명] ALL=(ALL:ALL) ALL
마지막으로 정상적으로 실행되는지 확인한다.
유저 변경을 위해 아래 명령어를 입력해 준 뒤
sudo su [사용자명]
아래 명령어 실행 시 현재 사용 중인 쉘 정보를 알 수 있다.
/bin/sh 로 출력될 경우 정상적인 명령어 입력이 어렵다!
echo $SHELL
따라서 /bin/bash 로 바꾸기 위해 아래 명령어를 실행해주면 된다.
첫 번째는 현재 로그인 중인 사용자의 쉘을 바꾸는 것이고,
두 번째는 sudo 권한을 통해 다른 사용자의 쉘을 바꾸는 것이다.
chsh -s /bin/bash
sudo chsh -s /bin/bash [사용자명]
'💡 백엔드 > 우분투' 카테고리의 다른 글
우분투에서 파일 복사하기 (0) | 2024.01.16 |
---|---|
ubuntu에서 사용자에게 특정 포트 제한하기 (0) | 2024.01.11 |
[우분투] 현재 CPU, 메모리 사용량 모니터링 하는 방법 (1) | 2023.11.03 |
Nginx의 현재 연결 수, 처리된 요청 수 정보를 확인하는 방법 (0) | 2023.11.02 |
Nginx를 이용한 캐시 설정 (1) | 2023.11.02 |