Skip to content
VDS · 운영 체제

root 대신 사용자와 sudo

작업용 사용자를 만들고 sudo를 부여하며 SSH 키를 옮기고, 서버에 root로 로그인하는 것을 그만두는 방법을 설명해요.

업데이트 2026년 8월 23일

머신에는 완전한 root 권한이 있고, 첫 본능은 계속 root로 작업하는 거예요. rm -rf에서 오타 한 번 나기 전까지는 편하죠. 실제로 잘 돌아가는 구성은 다릅니다. 일상적인 작업은 일반 사용자로, root는 sudo를 통해 정말 필요할 때만 쓰는 거예요.

사용자 만들기

Debian과 Ubuntu:

adduser artem
usermod -aG sudo artem

AlmaLinux와 CentOS Stream:

adduser artem
passwd artem
usermod -aG wheel artem

그룹이 다릅니다. Debian 계열은 sudo, RHEL 계열은 wheel이에요. 권한을 확인해 보세요:

sudo -l -U artem

SSH 키 옮기기

제어판 /hosting/vds/m/<id>의 "Access" 탭에서 추가한 키는 root 사용자에게 들어가요. 새 사용자를 위해 직접 배치해야 합니다:

mkdir -p /home/artem/.ssh
cp /root/.ssh/authorized_keys /home/artem/.ssh/
chown -R artem:artem /home/artem/.ssh
chmod 700 /home/artem/.ssh
chmod 600 /home/artem/.ssh/authorized_keys

여기서 권한은 형식이 아니에요. 너무 느슨하면 sshd가 키를 조용히 거부해 버립니다.

현재 창을 닫지 않은 채 별도의 터미널 창에서 새 사용자로 로그인할 수 있는지 확인하세요:

ssh artem@<address>
sudo whoami

확인에 성공한 뒤에만 root 로그인 비활성화로 넘어가세요.

sudo 사용법

sudo systemctl restart nginx
sudo -i
sudo -u www-data ls /var/www

sudo -i는 완전한 root 셸을 줍니다. 일련의 명령을 실행할 때 쓰는 것이지, 계속 작업할 때 쓰는 게 아니에요. sudo를 호출할 때마다 로그에 기록되고, 그게 바로 사건을 조사할 때의 흔적이 됩니다:

journalctl -t sudo -n 50
grep sudo /var/log/auth.log

로그에 대한 더 자세한 내용은 머신에 로그인한 사람을 참고하세요.

서비스 권한

또 다른 흔한 실수는 "잘 돌아가게 하려고" 애플리케이션을 root로 실행하는 거예요. 각 서비스마다 셸이 없는 시스템 사용자를 만드세요:

useradd --system --no-create-home --shell /usr/sbin/nologin appsrv
chown -R appsrv:appsrv /opt/app

그러면 애플리케이션의 취약점이 생겨도 공격자에게 머신 전체를 한 번에 넘겨주지 않습니다.

흔한 실수

실수원인해결
artem is not in the sudoers file그룹에 없거나 다시 로그인하지 않음usermod -aG sudo artem, 다시 로그인
키가 허용되지 않음.ssh 권한이 700보다 넓거나 소유자가 root위와 같이 chown과 chmod
sudo 비밀번호가 작동하지 않음사용자에게 비밀번호가 설정되지 않음passwd artem
sudoers를 편집하다 sudo가 망가짐파일의 구문 오류visudo만 사용, 복구 모드로 복구

/etc/sudoers는 반드시 visudo 명령으로만 편집하세요. 저장 전에 구문을 검사해 줍니다. 망가진 파일은 모든 사람에게서 한 번에 sudo를 빼앗아 가요.