๋ฆฌ๋ ์ค sudo ๋ช ๋ น์ด๋ root ๊ถํ์ด ํ์ํ ์์ ์ ์์ ํ๊ฒ ์คํํ๊ฒ ํด์ฃผ๋ ํ์ ๋๊ตฌ์ ๋๋ค. sudo ๊ฐ๋ , ์ฌ์ฉ๋ฒ, ๋ณด์ ํ๊น์ง ์ ๋ฆฌํฉ๋๋ค.
๋ฆฌ๋ ์ค ์ฐ๋ค ๋ณด๋ฉด ๊ผญ ํ ๋ฒ์ ๋ง์ฃผ์นฉ๋๋ค.
- ํจํค์ง ์ค์น๊ฐ ์ ๋๊ณ
- ์ค์ ํ์ผ ์ ์ฅ์ด ๋งํ๊ณ
- ์๋น์ค ์ฌ์์์ด ๊ฑฐ๋ถ๋๊ณ
- “Permission denied / Operation not permitted”๋ง ๋ณด์ผ ๋
์ด๋ด ๋ ํ์ํ ๊ฒ root ๊ถํ์ธ๋ฐ, ์์ฆ ์ด์ ๋ฐฉ์์ ์์ ์ฒ๋ผ “root๋ก ๊ณ์ ๋ก๊ทธ์ธ”์ด ์๋๋๋ค.
ํ์์ ์ผ๋ฐ ์ฌ์ฉ์๋ก ์์ ํ๊ฒ ์์
ํ๊ณ , ํ์ํ ์๊ฐ์๋ง ๊ถํ์ ์ ๊น ์ฌ๋ฆฌ๋ ๋ฐฉ์์ด ํ์ค์ ๊ฐ๊น์ต๋๋ค. ๊ทธ๋ ์ฐ๋ ๋๊ตฌ๊ฐ sudo์์.

1. sudo๊ฐ ์ค์ํ ์ด์ : “๊ถํ ์์น + ๊ธฐ๋ก”
sudo๋ ๋จ์ํ “๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ”์ด ์ ๋ถ๊ฐ ์๋๋๋ค.
- ํ์ํ ๋ช ๋ น๋ง ๋ฑ ํ ๋ฒ ๊ถํ ์์น
- ๋๊ฐ, ์ธ์ , ์ด๋ค ๋ช ๋ น์ ํ๋์ง ๋ก๊ทธ๋ก ๋จ๊น(๊ฐ์ฌ/audit)
- ํ/์๋ฒ ์ด์์์ “์ฑ ์ ์ถ์ ”๊ณผ “์ค์ ๋ฐฉ์ง”์ ์ ๋ฆฌ
์ ๋ฆฌํ๋ฉด, sudo๋ root๋ฅผ ๋์ฒดํ๋ ๊ฒ ์๋๋ผ
root ๊ถํ์ ‘ํต์ ๋ ๋ฐฉ์’์ผ๋ก ์ฐ๊ฒ ํด์ฃผ๋ ์ฅ์น์
๋๋ค.

2. su vs sudo: ๋ญ๊ฐ ๋ค๋ฅด๊ธธ๋ ๋ค๋ค sudo๋ฅผ ์ฐ๋?
๋ ๋ค “๊ถํ์ ์ฌ๋ฆฌ๋” ๋๋์ด์ง๋ง, ์ฑ๊ฒฉ์ด ๋ฌ๋ผ์.
| ๊ตฌ๋ถ | su | sudo |
| ํต์ฌ | ์ฌ์ฉ์ ์์ฒด๋ฅผ ๋ฐ๊ฟ | ํ์ฌ ์ฌ์ฉ์๋ ์ ์ง, ๋ช ๋ น๋ง ๊ถํ ์์น |
| ์ธ์ฆ | ๋ณดํต ๋์ ๊ณ์ (root) ๋น๋ฐ๋ฒํธ | ๋ณดํต ๋ด ๊ณ์ ๋น๋ฐ๋ฒํธ |
| ์ด์ | root๋ก ์ค๋ ๋จธ๋ฌผ๊ธฐ ์ฌ์ | ์ต์๊ถํ(ํ์ํ ๋๋ง) ์ด์์ ์ ๋ฆฌ |
| ๊ฐ์ฌ/ํต์ | ์ ํ/๊ธฐ๋ก์ด ์๋์ ์ผ๋ก ๊ฑฐ์น ์ ์์ | ๋ช ๋ น ๋จ์ ํต์ /๋ก๊ทธ์ ๊ฐ์ |
์ค๋ฌด์์ sudo๊ฐ ์ ํธ๋๋ ์ด์ ๋ ๋ฑ ํ๋๋ก ์์ฝ๋ฉ๋๋ค.
“๊ณ์ root๊ฐ ๋๋ ๊ฒ”๋ณด๋ค “ํ์ํ ์ผ๋ง root๋ก ์คํํ๋ ๊ฒ” ์์ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.

3. ๋ฆฌ๋ ์ค sudo ๋ช ๋ น์ด ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
1) ๊ธฐ๋ณธ ํํ
sudo <๋ช
๋ น์ด>
์์:
sudo apt update
sudo systemctl restart nginx
sudo vim /etc/ssh/sshd_config
๋ฐฐํฌํ์ ๋ฐ๋ผ ํจํค์ง ๋ช ๋ น์ apt, dnf, yum ๋ฑ์ผ๋ก ๋ฌ๋ผ์ง ์ ์์ด์.

2) ๋น๋ฐ๋ฒํธ๋ “root ๋น๋ฐ๋ฒํธ”๊ฐ ์๋๋ค
์ฒ์ ์คํํ๋ฉด ๋ณดํต ์ด๋ ๊ฒ ๋ฌผ์ด๋ด ๋๋ค.
[sudo] password for username:
์ฌ๊ธฐ์ ์
๋ ฅํ๋ ๊ฑด ๋๋ถ๋ถ ํ์ฌ ๋ก๊ทธ์ธํ ๋ด ๊ณ์ ๋น๋ฐ๋ฒํธ์
๋๋ค.
(“์ด ์ฌ์ฉ์๊ฐ sudo ๊ถํ์ด ์๋ ์ฌ์ฉ์ ๋ง์?”๋ฅผ ํ์ธํ๋ ๊ณผ์ ์ด์์.)
![๋ฆฌ๋
์ค ํฐ๋ฏธ๋์์ sudo ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ ๋ค ๋ํ๋๋ [sudo] password for user1: ๋ฉ์์ง ์์. root ๋น๋ฐ๋ฒํธ๊ฐ ์๋๋ผ ํ์ฌ ๋ก๊ทธ์ธํ ์ฌ์ฉ์ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ๋ ํ๋ฉด์ ์ค์ ํฐ๋ฏธ๋ ์คํ์ผ](https://blog.kakaocdn.net/dna/cxwEXX/dJMcafZsi1j/AAAAAAAAAAAAAAAAAAAAAGaV7MnS-PK3JWx7qMdLKPXPtM4XU3sOwI1SytVjqOT_/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1782831599&allow_ip=&allow_referer=&signature=ip9G4I1t1xCBi%2Br5KDPDK12B%2FWg%3D)
3) sudo ์บ์(ํ์์์)
ํ ๋ฒ ์ธ์ฆํ๋ฉด ์ ๊น ๋์์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค์ ์ ๋ฌป๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๋ค๋ง ์ด ์๊ฐ์ ์์คํ
์ค์ (sudoers์ timestamp_timeout)์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ด์.

4) ์ธ์ฆ์ ์ฆ์ “๋๊ณ ” ์ถ์ ๋
sudo -k
์ ๊น ์๋ฆฌ ๋น์ธ ๋๋ ๊ณต์ฉ ํฐ๋ฏธ๋ ํ๊ฒฝ์ด๋ฉด ๊ฝค ์ ์ฉํฉ๋๋ค.

5) ๋ด๊ฐ ์ด๋ค sudo ๊ถํ์ด ์๋์ง ํ์ธ
sudo -l
“์ด ๊ณ์ ์ด ๋ญ ํ ์ ์๋์ง”๋ฅผ ๋จผ์ ํ์ธํ๋ ์ต๊ด์ด ์ฌ๊ณ ๋ฅผ ์ค์ฌ์ค๋๋ค.

4. sudo๊ฐ ๋จนํ์ง ์๋ 3๊ฐ์ง ์ผ์ด์ค
์ด ๋ถ๋ถ์ ์ง์ง ๋ง์ด ํ๋ ค์.
1) ๋ฆฌ๋ค์ด๋ ์ (>, >>)์ sudo๊ฐ ์ฒ๋ฆฌํ์ง ์๋๋ค
์๋๋ ์คํจํ๋ ๋ํ ์์์ ๋๋ค.
sudo echo "PermitRootLogin no" > /etc/ssh/sshd_config
sudo๋ echo๋ง ์ฌ๋ ค์ค ๋ฟ, >๋ ๋ด ์์ด ์ฒ๋ฆฌํด์ ๊ถํ ์๋ฌ๊ฐ ๋ฉ๋๋ค.
โ ํด๊ฒฐ:
echo "PermitRootLogin no" | sudo tee -a /etc/ssh/sshd_config

2) ํ์ดํ(|)์์ “์๋ง sudo”์ธ ๊ฒฝ์ฐ
sudo cat /var/log/auth.log | grep sudo
์ด๊ฑด ๋์ฒด๋ก ๋์ํ์ง๋ง, ๋ฐ๋๋ก “๋ค๊ฐ root ๊ถํ์ด ํ์ํ ์์
”์ด๋ฉด ๋งํ ์ ์์ด์.
ํ์ํ๋ฉด ์ ์ฒด๋ฅผ root ์
ธ๋ก ์ ๊น ๋ฌถ๊ฑฐ๋, tee ๊ฐ์ ๋๊ตฌ๋ก ์ค๊ณํ๋ ํธ์ด ์์ ํฉ๋๋ค.

3) ํ๊ฒฝ๋ณ์(-E)๋ ํธํ์ง๋ง ์ํํ ์ ์์
sudo -E <๋ช
๋ น>
ํ๊ฒฝ๋ณ์๋ฅผ ๊ทธ๋๋ก ๋๊ธฐ๋ ๊ฑด ์ํฉ์ ๋ฐ๋ผ ๋ณด์ ๋ฆฌ์คํฌ๊ฐ ๋ ์ ์์ด์. “์ ๋ง ํ์ํ๊ฐ?”๋ฅผ ๋จผ์ ์ฒดํฌํ๋ ๊ฒ ์ข์ต๋๋ค.

5. ๋ค๋ฅธ ์ฌ์ฉ์ ๊ถํ์ผ๋ก ์คํํ๊ธฐ (-u)
sudo๋ root๋ง์ ์ํ ๋ช ๋ น์ด ์๋๋ผ, “๋ค๋ฅธ ์ฌ์ฉ์ ๊ถํ์ผ๋ก ์คํ”์ด ๋ณธ๋ ์ปจ์ ์ ๋๋ค.
sudo -u www-data ls -al /var/www
sudo -u postgres psql
์ด์ ํ๊ฒฝ์์๋ “์๋น์ค ๊ณ์ ์ผ๋ก ์คํ ํ ์คํธ”ํ ๋ ๊ฝค ์์ฃผ ์๋๋ค.

6. root ์ ธ์ด ํ์ํ ๋: sudo -i / sudo -s
์ฌ๋ฌ ๋ช ๋ น์ ์ฐ์์ผ๋ก ํด์ผ ํ๋ค๋ฉด ํ ์ค์ฉ sudo๋ฅผ ๋ถ์ด๋ ๊ฒ ๋ฒ๊ฑฐ๋ก์ธ ์ ์์ด์.
- sudo -i : ๋ก๊ทธ์ธ ์ ธ์ฒ๋ผ root ํ๊ฒฝ์ผ๋ก ์ง์
- sudo -s : ํ์ฌ ํ๊ฒฝ์ ์ ์งํ ์ฑ root ์ ธ ์คํ
sudo -i
# ํ์ํ ์์
๋ง ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ
exit
ํต์ฌ์ ์ด๊ฑฐ์์.
“๊ฐ๋ฅํ๋ฉด ํ ์ค sudo, ํ์ํ๋ฉด ์งง๊ฒ root ์
ธ”
(์ค๋ ๋จธ๋ฌด๋ฅผ์๋ก ์ค์ ํ๋ฅ ์ด ์ฌ๋ผ๊ฐ๋๋ค.)

7. sudo ๊ถํ์ ์ด๋์ ์ ํด์ง๊น? (sudoers)
sudo ๊ท์น์ ๋ณดํต ์ฌ๊ธฐ์์ ๊ฒฐ์ ๋ฉ๋๋ค.
- /etc/sudoers
- /etc/sudoers.d/* ← ์ค๋ฌด์์ ํ์ผ๋ก ๋๋ ๊ด๋ฆฌํ ๋ ์์ฃผ ์ฌ์ฉ
sudoers๋ ๋ฌด์กฐ๊ฑด visudo๋ก
์ง์ ํธ์งํ๋ค๊ฐ ๋ฌธ๋ฒ ํ ๊ธ์ ํ๋ฆฌ๋ฉด, ์ง์ง๋ก “sudo๋ก ๊ณ ์น ์๋ ์๋ ์ํฉ”์ด ๋์ต๋๋ค.
sudo visudo
๋ถ๋ฆฌ ๊ด๋ฆฌ ์์(๊ถ์ฅ):
sudo visudo -f /etc/sudoers.d/deploy
๊ทธ๋ฃน ๊ธฐ๋ฐ ๊ถํ (sudo / wheel)
์:
%sudo ALL=(ALL:ALL) ALL
%wheel ALL=(ALL) ALL
“๊ด๋ฆฌ์”๋ ๊ฒฐ๊ตญ ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ ๊น๋ํฉ๋๋ค.
ํน์ ๋ช ๋ น๋ง ํ์ฉํ๋ ๊ฒ ‘์ง์ง’ sudo ์ด์
์: deploy ๊ณ์ ์ ๋ฐฐํฌ ๊ด๋ จ ๋ช ๋ น๋ง ๊ฐ๋ฅํ๊ฒ ์ ํ
์ฌ๊ธฐ์ ์ค์ํ ํฌ์ธํธ:
- ๊ฐ๋ฅํ ํ ๋ช ๋ น์ ์ข๊ฒ
- ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ๋ค๋ฉด, ๊ทธ ์คํฌ๋ฆฝํธ๊ฐ ์คํํ๋ ๋ด์ฉ๋ ๊ฒ์ฆ/๊ถํ ํต์ ํด์ผ ํจ

8. sudo ์ค์ ๋ฐฉ์ง ์ฒดํฌ๋ฆฌ์คํธ
- rm -rf, chown -R, chmod -R์ sudo ๋ถ์ด๊ธฐ ์ : ๊ฒฝ๋ก ํ ๋ฒ ๋ ๋ณด๊ธฐ
- “๋๊ฒ ํ๋ ค๊ณ ” NOPASSWD๋ฅผ ์ ์ฒด๋ก ์ด์ง ๋ง๊ธฐ
- ์ ๋ง ํ์ํ๋ฉด ํน์ ๋ช ๋ น๋ง NOPASSWD
- sudo ๊ถํ ๋ถ์ฌ/ํ์๋ ์ธ์ฌ ์ด๋ฒคํธ(์ ์ฌ/์ด๋/ํด์ฌ)์ ๊ฐ์ด ๊ด๋ฆฌ
- ์๋ฒ๋ผ๋ฉด root SSH ๋ก๊ทธ์ธ ์ฐจ๋จ๊ณผ ํจ๊ป ๋ฌถ๊ธฐ
PermitRootLogin no

9. sudo ๋ก๊ทธ: ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ์ ์ผ ๋จผ์ ๋ณด๋ ๊ณณ
sudo ์คํ ํ์ ์ ๋ณดํต ์ธ์ฆ ๋ก๊ทธ์ ๋จ์ต๋๋ค.
- Debian/Ubuntu: /var/log/auth.log
- RHEL/CentOS ๊ณ์ด: /var/log/secure
ํํฐ๋ง:
grep sudo /var/log/auth.log
# ๋๋
grep sudo /var/log/secure
์ด์์ ์
์ฅ์์๋ sudo๊ฐ ๊ถํ ๋๊ตฌ์ด๋ฉด์ ๋์์ ๊ธฐ๋ก ์ฅ์น๋ผ๋ ๊ฒ ํต์ฌ์ด์์.
์ฅ์ /๋ณด์ ์ด์๊ฐ ๋ฌ์ ๋ “๋๊ฐ ๋ญ ํ๋์ง”๊ฐ ๋จ์ ์์ผ๋ฉด ๋์ ์๋๊ฐ ํ ๋ฌ๋ผ์ง๋๋ค.

10. FAQ
Q. sudo ๋น๋ฐ๋ฒํธ๋ root ๋น๋ฐ๋ฒํธ์ธ๊ฐ์?
A. ๋ณดํต ๋ด ๊ณ์ ๋น๋ฐ๋ฒํธ์
๋๋ค.
Q. sudo ๋น๋ฐ๋ฒํธ ์
๋ ฅ์ด ๊ท์ฐฎ์๋ฐ ์์จ ์ ์๋์?
A. ๊ฐ๋ฅ์ ํฉ๋๋ค(NOPASSWD). ๋์ ํน์ ๋ช
๋ น๋ง ์ต์๋ก ์ฌ๋ ๊ฑธ ๊ถ์ฅํฉ๋๋ค.
Q. user is not in the sudoers file๊ฐ ๋ ์
A. sudo ๊ถํ์ด ์๋ ๊ณ์ ์
๋๋ค. root/๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก sudoers(๊ฐ๊ธ์ /etc/sudoers.d/)์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
11. ๋ฆฌ๋ ์ค sudo ๋ช ๋ น์ด๋ฅผ ์ดํดํ๋ฉด ๋ณด์ด๋ ๊ฒ๋ค

์ง๊ธ๊น์ง ๋ด์ฉ์ ํ ๋ฒ์ ์ ๋ฆฌํด ๋ณด๋ฉด, sudo๋ ๋จ์ํ:
“๋ช ๋ น์ด ์์ ๋ถ์ฌ์ ๊ถํ ์์นํ๋ ๋๊ตฌ”
๊ฐ ์๋๋ผ, ๋ ๋๊ฒ ๋ณด๋ฉด
root ๊ณ์ ์ ์ง์ ์ฐ์ง ์๊ณ
- ํน์ ์ฌ์ฉ์/๊ทธ๋ฃน์๊ฒ
- ํน์ ๋ช ๋ น๋ง
- ํ์ํ ์๊ฐ์๋ง
- ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๋ฉด์ ์คํํ๊ฒ ํด์ฃผ๋
์์คํ ๊ถํ ๊ด๋ฆฌ์ ํต์ฌ ๋๊ตฌ
์ ๋๋ค.
- ๋ฐ์คํฌํฑ ๋ฆฌ๋ ์ค์์ sudo apt-get install ... ํ ์ค๋ก ์์ํด์
- ์๋ฒ ์ด์, ์๋น์ค ๋ฐฐํฌ, ๋ฐฑ์ ์คํฌ๋ฆฝํธ, cron ์์ ๋ฑ์ผ๋ก ํ์ฅ๋ ์๋ก
- ๋ฆฌ๋ ์ค sudo ๋ช ๋ น์ด์ ์ญํ ์ ์ ์ ๋ ์ค์ํด์ง๋๋ค.
“sudo๋ฅผ ์ด๋ค”๋ ๊ฑด ๊ฒฐ๊ตญ,
“๋ด๊ฐ ์ง๊ธ ํ๋ ์ด ๋ช ๋ น์ ์์คํ ์ ์ฒด์ ์ํฅ์ ์ค ์ ์๋ค”