Linux sudo, sudoers आणि visudo Tutorial (PAM basics सह) उदाहरणांसह
root काहीही करू शकतो, म्हणून root ने login risky. sudo normal user ला एक command root (किंवा दुसऱ्या user) म्हणून चालवू देतो, त्याचाच password विचारतो, आणि प्रत्येक वापर log मधे लिहितो. कोण काय चालवू शकतो ते sudoers file ठरवते. PAM हा sudo, su, SSH आणि login साठी passwords आणि rules तपासणारा plug-in system.
या chapter मध्ये तुम्ही काय शिकाल
- sudo, sudo -u, sudo -i आणि sudo -l वापरा
- visudo ने sudoers rules safely वाचा-लिहा
- /etc/sudoers.d files, aliases आणि NOPASSWD
- Logs मधे sudo activity शोधा
- su vs sudo ओळखा
- PAM stacks आणि pam_faillock सारखे modules समजा
1. रोजचं उदाहरण: office ची master key
हे का लागतं?
हिंजवडीच्या office मधे master key फक्त admin manager कडे. सगळ्यांना copies देण्याऐवजी guard ती ठेवतो. Guard च्या list वरचे staff एका कामासाठी ती मागतात, register मधे sign करतात, आणि परत देतात. List सांगते Nikhil फक्त server room उघडू शकतो, Meera सगळ्या rooms. Gate वर security system आधी ID card, मग fingerprint, मग वेळ तपासतो.
हे काय आहे?
Master key = root. Guard = sudo. Guard ची list = /etc/sudoers. Register मधे sign = sudo log. Nikhil फक्त server room = एका command चा rule. Gate वर एकामागून एक checks = stack मधले PAM modules.
कसं करायचं (step by step)
2. sudo: एक command root म्हणून
हे का लागतं?
Packages install, services restart आणि /etc edit ला root लागतो. sudo एका command साठी ती power देतो आणि record करतो.
हे काय आहे?
sudo COMMAND तुमचा password विचारून root म्हणून चालवतो. Password काही मिनिटं cache. sudo !! शेवटचा command sudo सह. -k cache विसरतो. -v refresh.
कसं करायचं (step by step)
- Service restart.
sudo systemctl restart nginx
Output:
[sudo] password for ravi:
याचा अर्थ: तुमचा password, root चा नाही.
- sudo विसरलात? परत.
dnf install -y htop; sudo !!
Output:
Error: This command has to be run with superuser privileges
...
Complete!
याचा अर्थ: !! म्हणजे आधीचा command.
- Root file मधे redirect (योग्य मार्ग).
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swap.conf
Output:
vm.swappiness=10
याचा अर्थ: sudo echo x > file fail होतो कारण > shell तुमच्या नावाने करतो.
- Cached password विसरा.
sudo -k && sudo -n true
Output:
sudo: a password is required
याचा अर्थ: -n कधी विचारत नाही; scripts साठी.
3. sudo -u आणि sudo -i: दुसरा user म्हणून
हे का लागतं?
App user (postgres, deploy) म्हणून command, किंवा मोठ्या fix साठी पूर्ण root shell.
हे काय आहे?
sudo -u USER CMD त्या user म्हणून. sudo -i root login shell (root चं environment). sudo -iu USER USER म्हणून login shell. sudo -s shell पण तुमचं environment. sudo -E तुमचे environment variables ठेवतो (परवानगी असेल तर).
कसं करायचं (step by step)
- postgres म्हणून psql.
sudo -u postgres psql -c 'select version();'
Output:
PostgreSQL 16.4 on x86_64
याचा अर्थ: postgres password माहीत नसलं तरी चालतं.
- Root shell.
sudo -i && whoami
Output:
root
याचा अर्थ: काम संपताच exit.
- deploy user व्हा.
sudo -iu deploy && pwd
Output:
/home/deploy
याचा अर्थ: deploy user ला काय दिसतं ते test.
4. sudo -l: मला काय चालवायची परवानगी?
हे का लागतं?
करून बघण्याआधी किंवा 'not allowed' debug करताना तुमचे rules बघा.
हे काय आहे?
sudo -l तुमचे rules. sudo -l -U USER (root) दुसऱ्या user चे. sudo -ll लांब format.
कसं करायचं (step by step)
- तुमचे rules.
sudo -l
Output:
User ravi may run the following commands on web1:
(ALL) ALL
याचा अर्थ: ravi सगळं, कोणीही म्हणून.
- Limited user.
sudo -l -U nikhil
Output:
User nikhil may run the following commands on web1:
(root) NOPASSWD: /usr/bin/systemctl restart nginx
याचा अर्थ: फक्त एक command, password नाही.
- Rights नसलेला user.
sudo -l -U guest
Output:
User guest is not allowed to run sudo on web1.
याचा अर्थ: Audits साठी स्पष्ट उत्तर.
5. sudoers file: rule syntax
हे का लागतं?
योग्य माणसाला योग्य power द्यायला sudoers rules वाचता-लिहिता यायला हवेत.
हे काय आहे?
Rule म्हणजे WHO WHERE=(AS_WHOM) COMMANDS, उदा. ravi ALL=(ALL) ALL. %wheel म्हणजे wheel group. Commands ना full paths. NOPASSWD: सारखे tags commands आधी. # ने सुरू होणाऱ्या lines comments, पण #include आणि @includedir directives. Defaults lines वर्तन बदलतात.
| भाग | उदाहरण | अर्थ |
|---|---|---|
| WHO | %wheel | wheel group |
| WHERE | ALL | कोणत्याही host वर |
| AS | (ALL:ALL) | कोणताही user आणि group |
| TAG | NOPASSWD: | Password नाही |
| CMD | /usr/bin/systemctl | Full path |
कसं करायचं (step by step)
- Admin group line.
sudo grep -E '^%(wheel|sudo)' /etc/sudoers
Output:
%wheel ALL=(ALL) ALL
याचा अर्थ: wheel मधल्या सगळ्यांना पूर्ण sudo.
- Rules साठी full paths.
command -v systemctl journalctl
Output:
/usr/bin/systemctl
/usr/bin/journalctl
याचा अर्थ: Rules मधे हेच paths.
- Include line.
sudo grep -n includedir /etc/sudoers
Output:
120:#includedir /etc/sudoers.d
याचा अर्थ: Comment नाही: त्या folder मधल्या files load.
6. visudo: sudoers safely edit
हे का लागतं?
/etc/sudoers मधला एक typo सगळ्यांचं sudo तोडू शकतो, आणि मग root शिवाय fix नाही.
हे काय आहे?
visudo file lock करून editor मधे उघडतो आणि save आधी syntax तपासतो. visudo -f FILE drop-in file edit. visudo -c सगळ्या files तपासतो. EDITOR=nano visudo editor निवडतो.
कसं करायचं (step by step)
- nano ने edit.
sudo EDITOR=nano visudo
Output:
(opens the editor)
याचा अर्थ: Syntax बरोबर असेल तरच save.
- Typo कसा दिसतो.
sudo visudo -c
Output:
/etc/sudoers.d/90-nikhil:1:30: syntax error
nikhil ALL=(root) NOPASSWD /usr/bin/systemctl
याचा अर्थ: NOPASSWD नंतर colon नाही.
- सगळ्या files OK.
sudo visudo -c
Output:
/etc/sudoers: parsed OK
/etc/sudoers.d/90-nikhil: parsed OK
याचा अर्थ: आता logout safe.
7. /etc/sudoers.d: drop-in rule files
हे का लागतं?
Main file हाताने किंवा automation ने edit risky. Team नुसार छोट्या files add, review, remove सोप्या.
हे काय आहे?
/etc/sudoers.d/ मधे प्रत्येक कामासाठी एक file. Permissions 0440 आणि owner root. Dot असलेली किंवा ~ ने संपणारी नावं ignore. नेहमी visudo -cf ने check.
कसं करायचं (step by step)
- nikhil ला एक restart command.
echo 'nikhil ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx' | sudo tee /etc/sudoers.d/90-nikhil
Output:
nikhil ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx
याचा अर्थ: फक्त तोच command.
- Permissions fix आणि check.
sudo chmod 0440 /etc/sudoers.d/90-nikhil && sudo visudo -cf /etc/sudoers.d/90-nikhil
Output:
/etc/sudoers.d/90-nikhil: parsed OK
याचा अर्थ: चुकीच्या permissions वर sudo तक्रार करतो.
- nikhil म्हणून test.
sudo -u nikhil sudo -n systemctl restart nginx; sudo -u nikhil sudo -n systemctl stop nginx
Output:
(first works)
Sorry, user nikhil is not allowed to execute '/usr/bin/systemctl stop nginx' as root on web1.
याचा अर्थ: Restart चालतो, stop नाही.
- Access काढा.
sudo rm /etc/sudoers.d/90-nikhil
Output:
(no output)
याचा अर्थ: Rules लगेच गेले.
8. NOPASSWD, aliases आणि Defaults
हे का लागतं?
CI jobs password type करू शकत नाहीत, आणि अनेक सारखे rules गोंधळ. Aliases आणि Defaults rules छोटे आणि safe ठेवतात.
हे काय आहे?
NOPASSWD: password वगळतो (नेमक्या commands पुरता). User_Alias, Cmnd_Alias, Host_Alias नावांचे गट. Defaults options: timestamp_timeout, logfile, requiretty, secure_path, env_keep. Shared account ला कधी NOPASSWD: ALL नको, आणि editors, shells किंवा tar allow टाळा (ते root shell उघडू शकतात).
कसं करायचं (step by step)
- Team साठी command alias.
sudo tee /etc/sudoers.d/50-web <<'X'
Cmnd_Alias WEB = /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx, /usr/bin/journalctl -u nginx
%webops ALL=(root) WEB
X
Output:
(file written)
याचा अर्थ: webops मधल्या सगळ्यांना ते 3 commands.
- Password शिवाय CI deploy.
echo 'deploy ALL=(root) NOPASSWD: /usr/local/bin/deploy.sh' | sudo tee /etc/sudoers.d/60-deploy
Output:
deploy ALL=(root) NOPASSWD: /usr/local/bin/deploy.sh
याचा अर्थ: deploy.sh root चा आणि deploy ला न लिहिता येणारा.
- Password 2 मिनिटं cache.
echo 'Defaults timestamp_timeout=2' | sudo tee /etc/sudoers.d/10-defaults
Output:
Defaults timestamp_timeout=2
याचा अर्थ: 0 प्रत्येक वेळी विचारतो.
- वेगळी sudo log file.
echo 'Defaults logfile=/var/log/sudo.log' | sudo tee -a /etc/sudoers.d/10-defaults && sudo visudo -c | tail -1
Output:
/etc/sudoers.d/10-defaults: parsed OK
याचा अर्थ: SIEM ला पाठवायला सोपं.
9. sudo logs: कोणी काय चालवलं
हे का लागतं?
Incident नंतर कोणी कोणता command root म्हणून कधी चालवला ते कळायला हवं.
हे काय आहे?
प्रत्येक sudo वापर user, folder आणि command सह log होतो. RHEL family: /var/log/secure. Debian/Ubuntu: /var/log/auth.log. systemd असेल तिथे: journalctl _COMM=sudo. Failed attempts 'incorrect password attempts' किंवा 'NOT in sudoers'.
कसं करायचं (step by step)
- आजचे sudo commands.
sudo journalctl _COMM=sudo --since today | grep COMMAND | tail -2
Output:
ravi : TTY=pts/0 ; PWD=/home/ravi ; USER=root ; COMMAND=/usr/bin/systemctl restart nginx
priya : TTY=pts/1 ; PWD=/etc ; USER=root ; COMMAND=/usr/bin/vim nginx.conf
याचा अर्थ: कोण, कुठे, कोणाच्या नावाने आणि काय.
- Ubuntu वर failed sudo tries.
sudo grep -E 'incorrect password|NOT in sudoers' /var/log/auth.log | tail -1
Output:
guest : user NOT in sudoers ; TTY=pts/2 ; PWD=/home/guest ; USER=root ; COMMAND=/bin/bash
याचा अर्थ: Rights नसलेल्या कोणीतरी root shell चा प्रयत्न केला.
- User नुसार sudo count.
sudo journalctl _COMM=sudo --since '7 days ago' | grep -o '^.*sudo\[[0-9]*\]: *[a-z]*' | awk '{print $NF}' | sort | uniq -c
Output:
42 ravi
7 priya
याचा अर्थ: Weekly review साठी.
10. su vs sudo
हे का लागतं?
दोघेही root देतात, पण safety आणि audit साठी खूप वेगळे.
हे काय आहे?
su TARGET user चा (root चा) password विचारतो, आणि पूर्ण shell देतो, म्हणून logs मधे फक्त 'su to root'. sudo तुमचा password, command नुसार limit करता येतो, आणि प्रत्येक command log. बहुतेक clouds (Ubuntu, Amazon Linux) root password lock करतात, म्हणून su ऐवजी sudo -i.
| su | sudo | |
|---|---|---|
| Password | तुमचा | |
| Scope | Per command | |
| Log | Every command |
कसं करायचं (step by step)
- Cloud VM वर su to root.
su -
Output:
Password:
su: Authentication failure
याचा अर्थ: root ला password नाही.
- sudo मार्ग.
sudo -i
Output:
[root@web1 ~]#
याचा अर्थ: तुमचा password, log होतो.
11. PAM: Linux logins कसे तपासतो
हे का लागतं?
Password rules, failed tries नंतर lockout, 2FA आणि home folder बनवणं हे सगळं PAM मधे, प्रत्येक program मधे नाही.
हे काय आहे?
प्रत्येक service ची /etc/pam.d/ मधे file (sudo, sshd, login, su). Lines म्हणजे TYPE CONTROL MODULE args. Types: auth (तुम्ही कोण), account (आत्ता परवानगी?), password (बदलताना), session (login ला setup). Controls: required, requisite, sufficient, optional, include. क्रम महत्त्वाचा. RHEL वर authselect, Ubuntu वर pam-auth-update.
| Type | विचारतो |
|---|---|
| auth | Password/2FA बरोबर? |
| account | आत्ता account ला परवानगी? |
| password | नवा password मजबूत? |
| session | Login ला काय setup? |
कसं करायचं (step by step)
- sudo चा PAM stack.
cat /etc/pam.d/sudo
Output:
auth include system-auth
account include system-auth
password include system-auth
session include system-auth
याचा अर्थ: sudo common system-auth stack वापरतो.
- su साठी wheel कुठे.
grep pam_wheel /etc/pam.d/su
Output:
#auth required pam_wheel.so use_uid
याचा अर्थ: Uncomment केलं की su फक्त wheel साठी.
- Active profile (RHEL).
authselect current
Output:
Profile ID: sssd
Enabled features:
- with-faillock
याचा अर्थ: faillock चालू.
12. pam_faillock आणि faillock: failed tries नंतर lock
हे का लागतं?
Bots passwords guess करतात. 5 failures नंतर काही मिनिटं lock त्यांना थांबवतं, पण खऱ्या user ला unlock करता आलं पाहिजे.
हे काय आहे?
pam_faillock failures मोजतो. /etc/security/faillock.conf मधे settings: deny=5, unlock_time=900. faillock --user NAME failures दाखवतो, --reset साफ. जुन्या systems वर pam_tally2.
कसं करायचं (step by step)
- Policy बघा.
grep -E '^(deny|unlock_time)' /etc/security/faillock.conf
Output:
deny = 5
unlock_time = 900
याचा अर्थ: 5 tries, मग 15 मिनिटं lock.
- Failures.
sudo faillock --user priya
Output:
priya:
When Type Source Valid
2026-10-25 10:41:02 RHOST 103.21.5.9 V
याचा अर्थ: Valid failures lock कडे मोजले जातात.
- आत्ता unlock.
sudo faillock --user priya --reset
Output:
(no output)
याचा अर्थ: ती परत login करू शकते.
13. pam_pwquality: मजबूत password rules
हे का लागतं?
Auditors minimum length आणि mixed characters मागतात. Password बदलताना PAM ते लागू करतो.
हे काय आहे?
/etc/security/pwquality.conf: minlen=12, dcredit=-1 (एक digit), ucredit=-1, lcredit=-1, ocredit=-1, retry=3. pwscore password test करतो.
कसं करायचं (step by step)
- Policy set.
printf 'minlen = 12\ndcredit = -1\nucredit = -1\n' | sudo tee -a /etc/security/pwquality.conf
Output:
minlen = 12
dcredit = -1
ucredit = -1
याचा अर्थ: किमान 12 chars, एक digit, एक capital.
- कमकुवत password नाकारला.
passwd
Output:
New password: ****
BAD PASSWORD: The password is shorter than 12 characters
याचा अर्थ: Save आधी PAM ने तपासलं.
- Password score.
echo 'Pune@Rain2026!' | pwscore
Output:
82
याचा अर्थ: जास्त म्हणजे मजबूत.
14. अनेक industries मधली खरी उदाहरणं
हे का लागतं?
तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.
हे काय आहे?
प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.
कसं करायचं (step by step)
| Team आणि शहर | ते कसं वापरतात | Command |
|---|---|---|
| Rohit, fintech SRE, Pune | On-call ला फक्त payment service restart | %oncall ALL=(root) /usr/bin/systemctl restart payments |
| Hannah, hospital IT, Berlin | 5 failed logins नंतर lock | deny = 5 in faillock.conf |
| Samuel, CI team, Lagos | Jenkins मधून password शिवाय deploy script | jenkins ALL=(root) NOPASSWD: /usr/local/bin/deploy.sh |
| Aiko, game studio, Tokyo | दर सोमवारी sudo logs review | journalctl _COMM=sudo --since '7 days ago' |
| Vikram, telecom, Hyderabad | Ansible ने sudoers.d files आणि check | visudo -cf /etc/sudoers.d/50-noc |
| Grace, school IT, Nairobi | 12 character passwords | minlen = 12 in pwquality.conf |
15. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
ravi is not in the sudoers file. This incident will be reported. | या user किंवा group साठी rule नाही | User wheel/sudo मधे किंवा sudoers.d rule.sudo usermod -aG wheel ravi |
Sorry, user nikhil is not allowed to execute '/usr/bin/systemctl stop nginx' as root | Rule फक्त दुसऱ्या commands ला | sudo -l बघा आणि नेमका command जोडा.sudo -l -U nikhil |
>>> /etc/sudoers: syntax error near line 31 <<< | File मधे typo | परत edit साठी e, broken file कधी save नको.sudo visudo -c |
sudo: /etc/sudoers.d/90-x is world writable | Drop-in च्या चुकीच्या permissions | 0440, owner root.sudo chmod 0440 /etc/sudoers.d/90-x |
bash: /etc/hosts: Permission denied (after sudo echo) | > redirect तुमच्या नावाने, root नाही | sudo tee मधे pipe.echo '10.0.0.5 db' | sudo tee -a /etc/hosts |
sudo: a terminal is required to read the password | Script किंवा CI ला terminal नाही | त्या नेमक्या command ला NOPASSWD, किंवा sudo -S जपून.sudo -n /usr/local/bin/deploy.sh |
sudo: unable to resolve host web1: Name or service not known | Hostname /etc/hosts मधे नाही | Hostname /etc/hosts मधे.echo "127.0.1.1 $(hostname)" | sudo tee -a /etc/hosts |
sudo: command not found | चुकीचा PATH (secure_path) किंवा sudo install नाही | Full path किंवा root ने sudo install.sudo /usr/local/bin/tool |
su: Authentication failure | Cloud images वर root password नाही | sudo -i.sudo -i |
Account locked due to 5 failed logins | pam_faillock deny गाठला | faillock ने reset.sudo faillock --user priya --reset |
16. Troubleshooting step by step
हे का लागतं?
sudo नकार देतो तेव्हा rule, file syntax आणि PAM बाजू याच क्रमाने तपासा.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- मी कोणता user, कोणते groups?
id
- माझ्यावर कोणते rules?
sudo -l
- सगळ्या sudoers files valid?
sudo visudo -c
- Drop-in permissions बरोबर?
ls -l /etc/sudoers.d/
- PAM ने account lock?
sudo faillock --user $USER
- नेमक्या कारणासाठी log.
sudo journalctl _COMM=sudo -n 20
17. Lab 1: On-call engineer साठी least-privilege sudo
हे का लागतं?
एकाच service चा restart आणि logs पुरता user, test करा, मग काढा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- User आणि group.
sudo groupadd webops && sudo useradd -m -G webops oncall1 && id oncall1
Output:
uid=1005(oncall1) gid=1005(oncall1) groups=1005(oncall1),3002(webops)
- Alias सह rule.
sudo tee /etc/sudoers.d/50-webops <<'X'
Cmnd_Alias WEB = /usr/bin/systemctl restart nginx, /usr/bin/journalctl -u nginx
%webops ALL=(root) NOPASSWD: WEB
X
sudo chmod 0440 /etc/sudoers.d/50-webops
Output:
(file written)
- Syntax check.
sudo visudo -cf /etc/sudoers.d/50-webops
Output:
/etc/sudoers.d/50-webops: parsed OK
- Rule list आणि test.
sudo -l -U oncall1 && sudo -u oncall1 sudo -n systemctl stop nginx
Output:
(root) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/journalctl -u nginx
Sorry, user oncall1 is not allowed to execute '/usr/bin/systemctl stop nginx' as root on web1.
- Log मधे बघा आणि साफ.
sudo journalctl _COMM=sudo -n 3 | grep oncall1; sudo rm /etc/sudoers.d/50-webops; sudo userdel -r oncall1
Output:
oncall1 : command not allowed ; TTY=pts/0 ; PWD=/home/ravi ; USER=root ; COMMAND=/usr/bin/systemctl stop nginx
18. Lab 2: pam_faillock ने lockout policy
हे का लागतं?
Failures मोजले जाताना बघा, test account lock करा, unlock करा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Password सह test user.
sudo useradd -m locktest && echo 'locktest:Lab@2026pass' | sudo chpasswd
Output:
(no output)
- Policy.
grep -E '^(deny|unlock_time)' /etc/security/faillock.conf || echo defaults
Output:
deny = 5
unlock_time = 900
- काही वेळा चुकीचा password.
for i in 1 2 3; do echo wrong | su - locktest -c true 2>&1 | tail -1; done
Output:
su: Authentication failure
su: Authentication failure
su: Authentication failure
- Count बघा.
sudo faillock --user locktest
Output:
locktest:
When Type Source Valid
2026-10-25 11:02:10 TTY pts/0 V
... (3 lines)
- Reset आणि साफ.
sudo faillock --user locktest --reset && sudo userdel -r locktest
Output:
(no output)
Ravindra Bagale's Tip
Never edit /etc/sudoers with a plain editor. Use visudo, put your rules in small files in /etc/sudoers.d, and keep a second root SSH session open until visudo -c says everything parsed OK.
Ravindra Bagale's Tip – मराठी
/etc/sudoers साध्या editor ने कधीच edit करू नका. visudo वापरा, rules /etc/sudoers.d मधल्या छोट्या files मधे ठेवा, आणि visudo -c सगळं parsed OK सांगेपर्यंत दुसरं root SSH session उघडं ठेवा.
Ravindra Bagale's Tip – हिंदी
/etc/sudoers को सादे editor से कभी edit न करें. visudo इस्तेमाल करें, rules /etc/sudoers.d की छोटी files में रखें, और जब तक visudo -c सब parsed OK न बताए, दूसरा root SSH session खुला रखें.
19. नेहमी विचारले जाणारे प्रश्न
प्र. sudo कोणता password विचारतो?
तुमचा, root चा नाही.
प्र. wheel की sudo group?
RHEL, Fedora, Amazon Linux wheel. Debian, Ubuntu sudo.
प्र. NOPASSWD unsafe आहे का?
Broad असेल तरच. एका नेमक्या root-owned script साठी automation ला ठीक.
प्र. sudoers मधे full paths का?
म्हणजे user PATH मधे आधी तेच नाव असलेला खोटा program ठेवू शकत नाही.
प्र. sudo password किती वेळ लक्षात ठेवतो?
सहसा प्रत्येक terminal ला 5 ते 15 मिनिटं (timestamp_timeout).
प्र. sudo ने vim किंवा less allow risky का?
ते shell (:!bash) उघडू शकतात, जो root म्हणून चालतो.
प्र. sudoedit काय?
sudoedit FILE तुमच्या नावाने copy edit करून root म्हणून परत लिहितो, editor root म्हणून चालत नाही.
प्र. PAM म्हणजे?
Pluggable Authentication Modules.
20. मुलाखत प्रश्न आणि उत्तरं
Beginner level
प्र. sudo काय करतो?
sudoers आणि तुमचा password तपासून एक command root (किंवा दुसऱ्या user) म्हणून चालवतो आणि log करतो.
प्र. sudo ने काय चालवू शकता ते कसं?
sudo -l.
प्र. sudoers safely कसा edit?
visudo.
प्र. sudo ने root shell?
sudo -i.
Mid level level
प्र. Group ला password शिवाय फक्त nginx restart.
/etc/sudoers.d मधे %webops ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx, 0440, visudo -cf.
प्र. sudo echo x > /etc/file fail का?
Redirect तुमचा shell तुमच्या नावाने करतो; echo x | sudo tee /etc/file.
प्र. su vs sudo?
su ला target चा password, shell देतो; sudo तुमचा password, per-command rules आणि logs.
प्र. sudo logs कुठे?
journalctl _COMM=sudo, /var/log/secure (RHEL) किंवा /var/log/auth.log (Ubuntu).
Senior level
प्र. Cloud VM वर sudoers typo ने सगळ्यांचं sudo गेलं. Recover कसं?
दुसरं उघडं root session, किंवा pkexec visudo, किंवा cloud serial console/rescue: VM stop, disk helper ला attach, file fix, visudo -cf.
प्र. 50 engineers आणि 300 servers साठी sudo design?
Role नुसार groups, Cmnd_Aliases, config management ने sudoers.d, central identity (LDAP/IPA sudo rules), session recording किंवा SIEM ला logs, नियमित reviews.
प्र. PAM मधे required vs sufficient?
required pass व्हायलाच हवा पण stack पुढे चालतो; sufficient pass झाला आणि आधी required fail नसेल तर लगेच success; requisite लगेच fail.
प्र. 'ALL=(ALL) /usr/bin/find' पूर्ण root सारखं का?
find -exec /bin/sh root shell चालवतो. अनेक tools shell ला escape करू शकतात (GTFOBins); फक्त तुमच्या control मधल्या scripts allow.
घरी करून बघा
- Test VM वर फक्त 'systemctl status sshd' sudo ने चालवू शकणारा user बनवा. 'systemctl restart sshd' नाकारलं जातं ते दाखवा, आणि दोन्ही tries log मधे शोधा.
- /etc/pam.d/sshd उघडा आणि तिथे प्रत्येक line type (auth, account, password, session) काय करतो ते तुमच्या शब्दांत लिहा.
सराव Tasks
Vidarbha Cotton Mills हा नागपूर मधला वस्त्रोद्योग व्यवसाय आहे. Ganesh Wankhede त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 16
सोपं sudoers safely edit
का: Typo sudo तोडू शकतो.
काय करायचं: /etc/sudoers.d/60-db drop-in safe editor मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं पूर्ण sudo (RHEL)
का: BIZ मधे नवीन admin.
काय करायचं: meera ला बाकी न काढता wheel group मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं sudo PAM file बघा
का: Stack शिका.
काय करायचं: sshd ची PAM config file print.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Rule साठी full path
का: Rules ना full paths.
काय करायचं: Shell builtin ने journalctl चा full path.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Drop-in files बघा
का: Owners आणि modes तपासा.
काय करायचं: /etc/sudoers.d long format मधे list.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम postgres म्हणून
का: postgres password नको.
काय करायचं: sudo ने postgres user म्हणून sales database चा pg_dump.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम सगळ्या sudoers files check
का: Logout आधी.
काय करायचं: Edit न करता सगळ्या sudoers files चा syntax शांतपणे (ठीक असेल तर output नाही).
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Drop-in edit
का: Team rules sudoers.d मधे.
काय करायचं: visudo ने /etc/sudoers.d/50-web edit.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Drop-in permissions
का: sudo सैल files नाकारतो.
काय करायचं: /etc/sudoers.d/50-web वर 0440 mode.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Pipe मधून root file
का: sudo echo > fail.
काय करायचं: Pipe आणि sudo ने /etc/hosts मधे '10.0.0.9 cache' append.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम sudo log entries
का: आज कोणी काय चालवलं?
काय करायचं: sudo command च्या कालपासूनच्या journal entries.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Ubuntu वर failed sudo
का: Attackers ओळखा.
काय करायचं: /var/log/auth.log मधे NOT in sudoers शोधा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Failed logins बघा
का: User म्हणते lock झाली.
काय करायचं: kavya चे faillock records.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Lock झालेला user unlock
का: BIZ help desk ticket.
काय करायचं: kavya चा faillock counter reset.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम एक drop-in check
का: Rule पाठवण्याआधी.
काय करायचं: फक्त /etc/sudoers.d/70-sagar चा syntax check.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड su चा wheel rule शोधा
का: su admins पुरता.
काय करायचं: /etc/pam.d/su-l मधे pam_wheel शोधा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
21. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- sudo तुमच्या password ने एक command root म्हणून, log सह.
- sudo -u USER, sudo -i, sudo -l.
- Rules: WHO WHERE=(AS) TAG: COMMANDS, full paths.
- visudo ने edit; /etc/sudoers.d मधे 0440 drop-ins.
- Logs: journalctl _COMM=sudo, secure किंवा auth.log.
- PAM stacks auth, account, password, session; faillock आणि pwquality.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








अजून cards: Ravi Sir's Cards.