Ravindra BagaleCourses & study guides English

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)

sudo type केल्यावर काय होतंतुम्ही sudo systemctl restart nginx चालवताsudo /etc/sudoers आणि /etc/sudoers.d/* वाचतोया user, host आणि command साठी rule आहे का?PAM तुमचा password विचारतो (~5-15 min cache)Command root म्हणून चालतोEvent log होतो (journal, /var/log/secure किंवा auth.log)
Rule नसेल तर 'is not in the sudoers file' किंवा 'not allowed to execute'.

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)

  1. Service restart.
sudo systemctl restart nginx

Output:

[sudo] password for ravi:

याचा अर्थ: तुमचा password, root चा नाही.

  1. sudo विसरलात? परत.
dnf install -y htop; sudo !!

Output:

Error: This command has to be run with superuser privileges
...
Complete!

याचा अर्थ: !! म्हणजे आधीचा command.

  1. 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 तुमच्या नावाने करतो.

  1. 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)

  1. postgres म्हणून psql.
sudo -u postgres psql -c 'select version();'

Output:

 PostgreSQL 16.4 on x86_64

याचा अर्थ: postgres password माहीत नसलं तरी चालतं.

  1. Root shell.
sudo -i && whoami

Output:

root

याचा अर्थ: काम संपताच exit.

  1. 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)

  1. तुमचे rules.
sudo -l

Output:

User ravi may run the following commands on web1:
    (ALL) ALL

याचा अर्थ: ravi सगळं, कोणीही म्हणून.

  1. 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 नाही.

  1. 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%wheelwheel group
WHEREALLकोणत्याही host वर
AS(ALL:ALL)कोणताही user आणि group
TAGNOPASSWD:Password नाही
CMD/usr/bin/systemctlFull path

कसं करायचं (step by step)

  1. Admin group line.
sudo grep -E '^%(wheel|sudo)' /etc/sudoers

Output:

%wheel  ALL=(ALL)       ALL

याचा अर्थ: wheel मधल्या सगळ्यांना पूर्ण sudo.

  1. Rules साठी full paths.
command -v systemctl journalctl

Output:

/usr/bin/systemctl
/usr/bin/journalctl

याचा अर्थ: Rules मधे हेच paths.

  1. 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)

  1. nano ने edit.
sudo EDITOR=nano visudo

Output:

(opens the editor)

याचा अर्थ: Syntax बरोबर असेल तरच save.

  1. Typo कसा दिसतो.
sudo visudo -c

Output:

/etc/sudoers.d/90-nikhil:1:30: syntax error
nikhil ALL=(root) NOPASSWD /usr/bin/systemctl

याचा अर्थ: NOPASSWD नंतर colon नाही.

  1. सगळ्या 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)

  1. 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.

  1. 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 तक्रार करतो.

  1. 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 नाही.

  1. 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)

  1. 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.

  1. 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 ला न लिहिता येणारा.

  1. Password 2 मिनिटं cache.
echo 'Defaults timestamp_timeout=2' | sudo tee /etc/sudoers.d/10-defaults

Output:

Defaults timestamp_timeout=2

याचा अर्थ: 0 प्रत्येक वेळी विचारतो.

  1. वेगळी 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)

  1. आजचे 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

याचा अर्थ: कोण, कुठे, कोणाच्या नावाने आणि काय.

  1. 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 चा प्रयत्न केला.

  1. 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.

susudo
Passwordतुमचा
ScopePer command
LogEvery command

कसं करायचं (step by step)

  1. Cloud VM वर su to root.
su -

Output:

Password:
su: Authentication failure

याचा अर्थ: root ला password नाही.

  1. 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विचारतो
authPassword/2FA बरोबर?
accountआत्ता account ला परवानगी?
passwordनवा password मजबूत?
sessionLogin ला काय setup?

कसं करायचं (step by step)

  1. 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 वापरतो.

  1. su साठी wheel कुठे.
grep pam_wheel /etc/pam.d/su

Output:

#auth  required  pam_wheel.so use_uid

याचा अर्थ: Uncomment केलं की su फक्त wheel साठी.

  1. 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)

  1. Policy बघा.
grep -E '^(deny|unlock_time)' /etc/security/faillock.conf

Output:

deny = 5
unlock_time = 900

याचा अर्थ: 5 tries, मग 15 मिनिटं lock.

  1. 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 कडे मोजले जातात.

  1. आत्ता 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)

  1. 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.

  1. कमकुवत password नाकारला.
passwd

Output:

New password: ****
BAD PASSWORD: The password is shorter than 12 characters

याचा अर्थ: Save आधी PAM ने तपासलं.

  1. Password score.
echo 'Pune@Rain2026!' | pwscore

Output:

82

याचा अर्थ: जास्त म्हणजे मजबूत.

14. अनेक industries मधली खरी उदाहरणं

हे का लागतं?

तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.

हे काय आहे?

प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.

कसं करायचं (step by step)

Team आणि शहरते कसं वापरतातCommand
Rohit, fintech SRE, PuneOn-call ला फक्त payment service restart%oncall ALL=(root) /usr/bin/systemctl restart payments
Hannah, hospital IT, Berlin5 failed logins नंतर lockdeny = 5 in faillock.conf
Samuel, CI team, LagosJenkins मधून password शिवाय deploy scriptjenkins ALL=(root) NOPASSWD: /usr/local/bin/deploy.sh
Aiko, game studio, Tokyoदर सोमवारी sudo logs reviewjournalctl _COMM=sudo --since '7 days ago'
Vikram, telecom, HyderabadAnsible ने sudoers.d files आणि checkvisudo -cf /etc/sudoers.d/50-noc
Grace, school IT, Nairobi12 character passwordsminlen = 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 rootRule फक्त दुसऱ्या 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 writableDrop-in च्या चुकीच्या permissions0440, 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 passwordScript किंवा CI ला terminal नाहीत्या नेमक्या command ला NOPASSWD, किंवा sudo -S जपून.
sudo -n /usr/local/bin/deploy.sh
sudo: unable to resolve host web1: Name or service not knownHostname /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 failureCloud images वर root password नाहीsudo -i.
sudo -i
Account locked due to 5 failed loginspam_faillock deny गाठलाfaillock ने reset.
sudo faillock --user priya --reset

16. Troubleshooting step by step

हे का लागतं?

sudo नकार देतो तेव्हा rule, file syntax आणि PAM बाजू याच क्रमाने तपासा.

हे काय आहे?

वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.

कसं करायचं (step by step)

  1. मी कोणता user, कोणते groups?
id
  1. माझ्यावर कोणते rules?
sudo -l
  1. सगळ्या sudoers files valid?
sudo visudo -c
  1. Drop-in permissions बरोबर?
ls -l /etc/sudoers.d/
  1. PAM ने account lock?
sudo faillock --user $USER
  1. नेमक्या कारणासाठी 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)

  1. 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)
  1. 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)
  1. Syntax check.
sudo visudo -cf /etc/sudoers.d/50-webops

Output:

/etc/sudoers.d/50-webops: parsed OK
  1. 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.
  1. 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)

  1. Password सह test user.
sudo useradd -m locktest && echo 'locktest:Lab@2026pass' | sudo chpasswd

Output:

(no output)
  1. Policy.
grep -E '^(deny|unlock_time)' /etc/security/faillock.conf || echo defaults

Output:

deny = 5
unlock_time = 900
  1. काही वेळा चुकीचा 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
  1. Count बघा.
sudo faillock --user locktest

Output:

locktest:
When Type Source Valid
2026-10-25 11:02:10 TTY pts/0 V
... (3 lines)
  1. 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.

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.

घरी करून बघा

  1. Test VM वर फक्त 'systemctl status sshd' sudo ने चालवू शकणारा user बनवा. 'systemctl restart sshd' नाकारलं जातं ते दाखवा, आणि दोन्ही tries log मधे शोधा.
  2. /etc/pam.d/sshd उघडा आणि तिथे प्रत्येक line type (auth, account, password, session) काय करतो ते तुमच्या शब्दांत लिहा.

सराव Tasks

या scenario बद्दल

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 मधे.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं पूर्ण sudo (RHEL)

का: BIZ मधे नवीन admin.

काय करायचं: meera ला बाकी न काढता wheel group मधे.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं sudo PAM file बघा

का: Stack शिका.

काय करायचं: sshd ची PAM config file print.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Rule साठी full path

का: Rules ना full paths.

काय करायचं: Shell builtin ने journalctl चा full path.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Drop-in files बघा

का: Owners आणि modes तपासा.

काय करायचं: /etc/sudoers.d long format मधे list.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम postgres म्हणून

का: postgres password नको.

काय करायचं: sudo ने postgres user म्हणून sales database चा pg_dump.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम सगळ्या sudoers files check

का: Logout आधी.

काय करायचं: Edit न करता सगळ्या sudoers files चा syntax शांतपणे (ठीक असेल तर output नाही).

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Drop-in edit

का: Team rules sudoers.d मधे.

काय करायचं: visudo ने /etc/sudoers.d/50-web edit.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Drop-in permissions

का: sudo सैल files नाकारतो.

काय करायचं: /etc/sudoers.d/50-web वर 0440 mode.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Pipe मधून root file

का: sudo echo > fail.

काय करायचं: Pipe आणि sudo ने /etc/hosts मधे '10.0.0.9 cache' append.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम sudo log entries

का: आज कोणी काय चालवलं?

काय करायचं: sudo command च्या कालपासूनच्या journal entries.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Ubuntu वर failed sudo

का: Attackers ओळखा.

काय करायचं: /var/log/auth.log मधे NOT in sudoers शोधा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Failed logins बघा

का: User म्हणते lock झाली.

काय करायचं: kavya चे faillock records.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Lock झालेला user unlock

का: BIZ help desk ticket.

काय करायचं: kavya चा faillock counter reset.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम एक drop-in check

का: Rule पाठवण्याआधी.

काय करायचं: फक्त /etc/sudoers.d/70-sagar चा syntax check.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड su चा wheel rule शोधा

का: su admins पुरता.

काय करायचं: /etc/pam.d/su-l मधे pam_wheel शोधा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

थोडक्यात सांगायचं तर

  1. sudo तुमच्या password ने एक command root म्हणून, log सह.
  2. sudo -u USER, sudo -i, sudo -l.
  3. Rules: WHO WHERE=(AS) TAG: COMMANDS, full paths.
  4. visudo ने edit; /etc/sudoers.d मधे 0440 drop-ins.
  5. Logs: journalctl _COMM=sudo, secure किंवा auth.log.
  6. PAM stacks auth, account, password, session; faillock आणि pwquality.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

sudo safely. root password शिवाय admin काम. sudo -l काय चालवू शकता ते दाखवतो. Rules फक्त visudo ने edit. Logout आधी सगळ्या files check.
उजळणी card: sudo safely · PNG download करा · Card page उघडा
PAM basics. Login rules एकाच जागी. Stacks /etc/pam.d मधे. चुकीच्या tries नंतर faillock lock. User unlock.
उजळणी card: PAM basics · PNG download करा · Card page उघडा
su vs sudo. Target user चा password. / तुमचा स्वतःचा password.
तुलना: su vs sudo · PNG download करा · Card page उघडा
/etc/sudoers vs /etc/sudoers.d. एक main file. / प्रत्येक team साठी file.
तुलना: /etc/sudoers vs /etc/sudoers.d · PNG download करा · Card page उघडा
vi नाही, visudo का?. Save आधी syntax check. Typo sudo बंद करू शकतो. Drop-in check.
मुलाखत card: vi नाही, visudo का? · PNG download करा · Card page उघडा
su vs sudo?. su ला target password. sudo तुमचा password, प्रत्येक command log. तुमचे rights.
मुलाखत card: su vs sudo? · PNG download करा · Card page उघडा
NOPASSWD safe आहे का?. फक्त नेमक्या, छोट्या commands साठी. लोकांसाठी NOPASSWD: ALL कधीच नाही. Example rule.
मुलाखत card: NOPASSWD safe आहे का? · PNG download करा · Card page उघडा
sudo echo > file fail?. Shell file तुमच्या user ने उघडतो. sudo tee वापरा. root म्हणून append.
मुलाखत card: sudo echo > file fail? · PNG download करा · Card page उघडा

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