Linux 사용자 계정 및 그룹 관리 가이드
리눅스에서 사용자 계정을 관리하는 것은 시스템 보안과 접근 제어에 매우 중요합니다. 이 글에서는 계정 생성, 삭제, 권한 부여, 그룹 관리 등 계정과 관련된 다양한 명령어와 실습 가능한 스니펫을 함께 알아보겠습니다.
1. 사용자 계정 추가
새로운 사용자 계정을 추가하는 명령어입니다.
- 이 명령어는 홈 디렉토리와 기본 설정 파일(.bashrc 등)을 자동으로 생성합니다.
1
2
# 사용자 계정 추가
sudo adduser [새 사용자 이름]
예시:
1
sudo adduser newuser
2. sudo 권한 부여
- 새 사용자에게
sudo권한을 부여하려면visudo명령어를 사용하여sudoers파일을 편집합니다.
1
2
# sudoers 파일 열기
sudo visudo
visudo파일에서 아래와 같은 형식으로 새 사용자를 추가합니다:
1
[새 사용자 이름] ALL=(ALL:ALL) ALL
예시 추가 라인:
1
newuser ALL=(ALL:ALL) ALL
(참고)
visudo명령을 사용하지 않고vi로sudoers파일을 직접 수정할 수는 있지만, 구문 오류 발생 시sudo명령 자체가 정상 작동하지 않을 위험이 큽니다. 만약 꼭 필요하다면, 아래와 같이 진행할 수 있습니다.
-
vi명령을 사용하여sudoers파일 직접 편집하기 (비추천)-
sudoers파일 열기 :vi편집기를 사용하여 직접sudoers파일을 엽니다.
1
sudo vi /etc/sudoers
-
사용자 권한 추가 :
- 위와 동일한 형식으로 사용자를 추가합니다.
1
newuser ALL=(ALL:ALL) ALL
-
특정 명령에 대한 sudo 권한 부여 :
- 특정 명령어에 대해 비밀번호 없이 실행하도록 설정할 수도 있습니다.
1
newuser ALL=(ALL) NOPASSWD: /usr/sbin/reboot
-
파일 저장 및 종료 :
- 편집을 완료한 후
:wq명령으로 저장하고 종료합니다.
- 편집을 완료한 후
-
⚠️ 주의:
vi로 직접sudoers파일을 편집하면 구문 오류가 발생할 위험이 크며, 이 경우sudo명령이 제대로 작동하지 않을 수 있습니다. 이를 복구하려면 구문 오류를 수정해야 하므로 복잡한 상황이 발생할 수 있습니다. 항상visudo명령을 사용하는 것이 좋습니다.
3. 사용자 계정 삭제
계정을 삭제할 때는 주의가 필요합니다.
- 기본적으로
userdel명령어는 사용자의 홈 디렉토리와 메일 스풀을 삭제하지 않습니다.
1
2
# 사용자 계정 삭제
sudo userdel [삭제할 사용자 이름]
예시:
1
sudo userdel olduser
홈 디렉토리와 메일 스풀을 함께 삭제하려면 -r 옵션을 사용합니다.
1
sudo userdel -r [삭제할 사용자 이름]
예시:
1
sudo userdel -r olduser
4. 사용자 계정 정보 조회
사용자의 UID, GID, 소속 그룹 정보를 확인할 수 있습니다.
1
id [사용자 이름]
예시:
1
id newuser
5. 사용자 비밀번호 설정 및 변경
새 계정에 비밀번호를 설정하거나 기존 계정의 비밀번호를 변경할 수 있습니다.
1
sudo passwd [사용자 이름]
예시:
1
sudo passwd newuser
6. 사용자 그룹 관리
사용자 그룹에 추가
특정 그룹에 사용자를 추가할 수 있습니다.
1
sudo usermod -aG [그룹 이름] [사용자 이름]
예시:
1
sudo usermod -aG sudo newuser
그룹 생성 및 삭제
새 그룹을 추가하거나 기존 그룹을 삭제할 수 있습니다.
1
2
3
4
5
# 그룹 추가
sudo groupadd [그룹 이름]
# 그룹 삭제
sudo groupdel [그룹 이름]
예시:
1
2
sudo groupadd developers
sudo groupdel developers
7. 사용자 홈 디렉토리 및 로그인 쉘 변경
사용자의 홈 디렉토리나 로그인 쉘을 변경할 수 있습니다.
1
2
3
4
5
# 홈 디렉토리 변경
sudo usermod -d [새 홈 디렉토리 경로] [사용자 이름]
# 로그인 쉘 변경
sudo usermod -s [새 쉘 경로] [사용자 이름]
예시:
1
2
sudo usermod -d /home/newdirectory newuser
sudo usermod -s /bin/zsh newuser
8. 특정 명령어만 sudo 없이 실행 허용하기
특정 명령어에 대해서만 sudo 없이 실행 권한을 부여할 수 있습니다. 이는 visudo 파일을 통해 설정합니다.
1
2
# 특정 명령어만 비밀번호 없이 실행 권한 부여
[사용자 이름] ALL=(ALL) NOPASSWD: /usr/bin/특정_명령어
예시 (재부팅 명령어에 sudo 없이 접근 가능하게 설정):
1
newuser ALL=(ALL) NOPASSWD: /usr/sbin/reboot
9. 사용자 계정 잠금 및 잠금 해제
일시적으로 사용자 계정을 잠그거나 잠금 해제할 수 있습니다.
1
2
3
4
5
# 계정 잠금
sudo usermod -L [사용자 이름]
# 계정 잠금 해제
sudo usermod -U [사용자 이름]
예시:
1
2
sudo usermod -L newuser
sudo usermod -U newuser
10. 사용자 계정 만료일 설정
계정 만료일을 설정하여 일정 기간 후 계정 접근을 차단할 수 있습니다.
1
sudo usermod -e YYYY-MM-DD [사용자 이름]
예시 (2024년 12월 31일 만료):
1
sudo usermod -e 2024-12-31 newuser
11. 로그인 기록 확인
last 명령어를 사용하여 사용자의 로그인 기록을 확인할 수 있습니다. 이는 보안 모니터링에 유용합니다.
1
last [사용자 이름]
예시:
1
last newuser
12. 기본 그룹 및 추가 그룹 설정
사용자를 새로 추가할 때 기본 그룹과 추가 그룹을 설정할 수 있습니다.
1
2
3
4
5
# 기본 그룹 지정
sudo useradd -g [기본 그룹 이름] [사용자 이름]
# 추가 그룹 지정
sudo usermod -aG [추가 그룹 이름] [사용자 이름]
예시:
1
2
sudo useradd -g developers newuser
sudo usermod -aG docker newuser
13. 사용자 환경 설정 파일 복사
새 사용자가 기존 사용자와 동일한 환경 설정을 적용받게 하려면 .bashrc 또는 .profile 파일을 새 사용자 디렉토리에 복사합니다.
1
2
sudo cp /etc/skel/.bashrc /home/[새 사용자 이름]/
sudo cp /etc/skel/.profile /home/[새 사용자 이름]/
예시:
1
2
sudo cp /etc/skel/.bashrc /home/newuser/
sudo cp /etc/skel/.profile /home/newuser/
이 가이드를 참고하여 리눅스 시스템에서 사용자 계정을 보다 효율적이고 안전하게 관리할 수 있습니다. 각 명령어를 테스트하고 이해하여 시스템을 최적화해 보세요!