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