Linux Users आणि Groups: useradd, usermod, userdel, passwd, groups आणि id सोप्या भाषेत
Linux वर प्रत्येक माणूस आणि प्रत्येक program एका user म्हणून चालतो. एकाच वेळी अनेकांना तेच rights देण्यासाठी users groups मधे टाकतात. या chapter मधे users कुठे राहतात (/etc/passwd, /etc/shadow, /etc/group) आणि त्यांना बनवायचे, बदलायचे, lock आणि delete करायचे सगळे commands शिकाल.
या chapter मध्ये तुम्ही काय शिकाल
- whoami, id आणि groups ने आपण कोण ते ओळखा
- /etc/passwd, /etc/shadow आणि /etc/group वाचा
- useradd ने users बनवा, passwd ने password
- usermod (-aG, -L, -s) ने बदला, userdel ने काढा
- groupadd, gpasswd, groupdel ने groups
- chage ने password वय, su ने user बदला
1. रोजचं उदाहरण: housing society
हे का लागतं?
कोथरूड मधल्या शांती housing society मधे प्रत्येक रहिवाशाला number असलेलं member card मिळतं. Secretary member register ठेवतो. Society office locker चे passwords वेगळ्या sealed वहीत, जी फक्त secretary उघडू शकतो. रहिवासी groups मधे: committee, gym members, parking holders. नव्या भाडेकरूला card मिळतं, gym group मधे टाकतात, आणि ते गेले की card रद्द.
हे काय आहे?
Member card number = UID. Member register = /etc/passwd. Sealed password वही = /etc/shadow. Committee, gym, parking = /etc/group मधले groups. Card देणं = useradd. Gym मधे टाकणं = usermod -aG gym. Card रद्द = userdel. Secretary = root.
कसं करायचं (step by step)
2. whoami: मी कोणता user?
हे का लागतं?
Risky command आधी आपण root की normal user ते माहीत हवं. Scripts पण हे तपासतात.
हे काय आहे?
whoami आत्ता ज्या user म्हणून चालताय त्याचं नाव print करतो. sudo किंवा su नंतर बदलतं.
कसं करायचं (step by step)
- तुमचा user बघा.
whoami
Output:
ravi
याचा अर्थ: तुम्ही ravi म्हणून login आहात.
- sudo ने बदल बघा.
sudo whoami
Output:
root
याचा अर्थ: sudo command root म्हणून चालवतो.
- Script check मधे वापरा.
[ "$(whoami)" = root ] || echo 'Run as root'
Output:
Run as root
याचा अर्थ: Script normal users ना थांबवतो.
3. id: UID, GID आणि सगळे groups
हे का लागतं?
Permission problems जवळजवळ नेहमी तुमचा UID आणि groups बद्दल असतात. id ते एका line मधे दाखवतो.
हे काय आहे?
id uid (user number), gid (primary group) आणि groups (सगळे groups) दाखवतो. id NAME दुसऱ्या user चं. -u फक्त UID, -g फक्त GID, -G सगळे group numbers, -n नावं.
| Option | दाखवतो |
|---|---|
| id | सगळं |
| id -u | UID number |
| id -un | User नाव |
| id -gn | Primary group नाव |
| id -Gn | सगळ्या groups ची नावं |
कसं करायचं (step by step)
- तुमची identity.
id
Output:
uid=1001(ravi) gid=1001(ravi) groups=1001(ravi),10(wheel),992(docker)
याचा अर्थ: ravi wheel (sudo) आणि docker मधे आहे.
- दुसरा user.
id nginx
Output:
uid=992(nginx) gid=990(nginx) groups=990(nginx)
याचा अर्थ: Web server साठी system user.
- फक्त UID.
id -u
Output:
1001
याचा अर्थ: बहुतेक systems वर normal users 1000 पासून.
- सगळ्या groups ची नावं.
id -Gn ravi
Output:
ravi wheel docker
याचा अर्थ: groups command सारखंच.
4. groups: user चे groups
हे का लागतं?
User ला group मधे टाकलं पण access fail. आधी group list तपासा.
हे काय आहे?
groups सध्याच्या shell चे groups print करतो. groups NAME files वाचून saved list दाखवतो. नवे groups logout-login किंवा newgrp नंतरच shell मधे दिसतात.
कसं करायचं (step by step)
- तुमचे groups.
groups
Output:
ravi wheel
याचा अर्थ: या जुन्या shell मधे docker नाही.
- ravi चे saved groups.
groups ravi
Output:
ravi : ravi wheel docker
याचा अर्थ: File मधे docker आहे.
- नवा group आत्ता load.
newgrp docker && id -Gn
Output:
docker ravi wheel
याचा अर्थ: Logout ची गरज नाही.
5. /etc/passwd: users ची list
हे का लागतं?
Login fail किंवा service user चुकीचा वाटला की home folder, shell आणि UID बघायला ही file वाचता.
हे काय आहे?
प्रत्येक line ला ':' ने 7 fields — name:x:UID:GID:comment:home:shell. x म्हणजे password /etc/shadow मधे. Shell /sbin/nologin interactive login थांबवतो. ही file सगळे वाचू शकतात. LDAP किंवा AD मधले users पण बघायला getent passwd NAME.
| Field | उदाहरण | अर्थ |
|---|---|---|
| 1 | ravi | Login नाव |
| 2 | x | Password shadow मधे |
| 3 | 1001 | UID |
| 4 | 1001 | Primary GID |
| 5 | Ravi B | Comment (GECOS) |
| 6 | /home/ravi | Home folder |
| 7 | /bin/bash | Login shell |
कसं करायचं (step by step)
- एका user ची line.
grep '^ravi:' /etc/passwd
Output:
ravi:x:1001:1001:Ravi B:/home/ravi:/bin/bash
याचा अर्थ: नाव, UID 1001, home आणि bash shell.
- getent ने (LDAP सोबतही).
getent passwd nginx
Output:
nginx:x:992:990:Nginx web server:/var/lib/nginx:/sbin/nologin
याचा अर्थ: nologin: nginx म्हणून कोणी login करू शकत नाही.
- फक्त खरे users (UID 1000+).
awk -F: '$3>=1000 && $3<65534 {print $1}' /etc/passwd
Output:
ravi
priya
anil
याचा अर्थ: Field 3 म्हणजे UID.
- UID 0 कोणाला?
awk -F: '$3==0 {print $1}' /etc/passwd
Output:
root
याचा अर्थ: इथे दुसरं नाव म्हणजे security alarm.
6. /etc/shadow: लपलेले passwords आणि ageing
हे का लागतं?
Account lock आहे का किंवा password कधी expire होतो ते तपासायचं.
हे काय आहे?
/etc/shadow फक्त root वाचू शकतो. Fields: name:hash:lastchange:min:max:warn:inactive:expire. $6$ ने सुरू होणारा hash SHA-512, $y$ yescrypt. सुरुवातीला ! किंवा !! म्हणजे locked किंवा password नाही. passwd -S छोटा status.
कसं करायचं (step by step)
- Normal users वाचू शकत नाहीत.
cat /etc/shadow
Output:
cat: /etc/shadow: Permission denied
याचा अर्थ: छान. Hashes secret राहतात.
- root ने एक line.
sudo grep '^priya:' /etc/shadow
Output:
priya:$y$j9T$Kd...:20386:0:90:7:::
याचा अर्थ: Day 20386 ला बदलला, max 90 दिवस, 7 दिवस आधी warning.
- Locked account.
sudo grep '^anil:' /etc/shadow | cut -c1-12
Output:
anil:!$y$j9T
याचा अर्थ: ! म्हणजे password locked.
7. /etc/group आणि /etc/gshadow: group lists
हे का लागतं?
docker, wheel किंवा finance group मधे कोण ते जाणायला group file वाचता.
हे काय आहे?
प्रत्येक line group:x:GID:member1,member2. इथे listed members साठी तो secondary group. User चा primary group /etc/passwd च्या field 4 मधे असतो आणि अनेकदा इथे परत लिहिलेला नसतो. वाचायचा safe मार्ग getent group NAME.
कसं करायचं (step by step)
- wheel चे members.
getent group wheel
Output:
wheel:x:10:ravi,priya
याचा अर्थ: ravi आणि priya sudo वापरू शकतात (Red Hat family).
- Ubuntu मधे sudo group.
getent group sudo
Output:
sudo:x:27:ubuntu,ravi
याचा अर्थ: तीच कल्पना, वेगळं नाव.
- System वरचे groups मोजा.
wc -l < /etc/group
Output:
58
याचा अर्थ: बहुतेक system groups.
8. useradd: user बनवा
हे का लागतं?
नवा developer, app account किंवा CI runner ला स्वतःचा login हवा, म्हणजे actions track होतात आणि rights वेगळे राहतात.
हे काय आहे?
useradd NAME user बनवतो. मुख्य options: -m home folder बनवा, -d home path, -s login shell, -c comment, -u ठराविक UID, -g primary group, -G extra groups, -r system user (लहान UID, default home नाही), -e expiry date. Defaults /etc/default/useradd आणि /etc/login.defs मधून. Ubuntu वर adduser प्रश्न विचारणारा सोपा wrapper.
| Option | अर्थ |
|---|---|
| -m | Home folder बनवा |
| -s /bin/bash | Login shell |
| -G a,b | Extra groups |
| -c 'text' | पूर्ण नाव किंवा note |
| -u 1500 | ठराविक UID |
| -r | System user |
| -e 2026-12-31 | Account expiry |
कसं करायचं (step by step)
- Home आणि bash सह normal user.
sudo useradd -m -s /bin/bash -c 'Priya Kulkarni' priya && getent passwd priya
Output:
priya:x:1002:1002:Priya Kulkarni:/home/priya:/bin/bash
याचा अर्थ: -m ने /etc/skel मधून files घेऊन /home/priya बनवलं.
- Extra groups सह user.
sudo useradd -m -G wheel,docker anil && id anil
Output:
uid=1003(anil) gid=1003(anil) groups=1003(anil),10(wheel),992(docker)
याचा अर्थ: anil ला पहिल्या दिवशीच sudo आणि docker.
- App साठी system user (login नाही).
sudo useradd -r -s /sbin/nologin -d /opt/billing billing && getent passwd billing
Output:
billing:x:989:987::/opt/billing:/sbin/nologin
याचा अर्थ: लहान UID, login नाही. Services साठी safe.
- Expire होणारं contractor account.
sudo useradd -m -e 2026-12-31 vendor1 && sudo chage -l vendor1 | grep 'Account expires'
Output:
Account expires : Dec 31, 2026
याचा अर्थ: त्या तारखेनंतर account बंद.
- Defaults बघा.
useradd -D
Output:
GROUP=100
HOME=/home
SHELL=/bin/bash
SKEL=/etc/skel
याचा अर्थ: Options न दिल्यास हे.
9. passwd: password set, lock आणि check
हे का लागतं?
Password (किंवा SSH key) set होईपर्यंत नवा user login करू शकत नाही. कोणी सोडून गेल्यावर accounts lock पण करता.
हे काय आहे?
passwd तुमचा password बदलतो. sudo passwd NAME दुसऱ्या user चा. -l lock, -u unlock, -S status, -e आत्ता expire (पुढच्या login ला बदलायला लावतो), -d password काढा (धोकादायक). Script मधून: echo 'name:pass' | sudo chpasswd.
कसं करायचं (step by step)
- priya साठी password.
sudo passwd priya
Output:
New password:
Retype new password:
passwd: password updated successfully
याचा अर्थ: Type केलेलं screen वर दिसत नाही.
- पहिल्या login ला बदलायला लावा.
sudo passwd -e priya
Output:
Expiring password for user priya.
passwd: Success
याचा अर्थ: तिला स्वतःचा password ठेवावा लागेल.
- Lock करून check.
sudo passwd -l anil && sudo passwd -S anil
Output:
Locking password for user anil.
passwd: Success
anil LK 2026-10-25 0 99999 7 -1
याचा अर्थ: LK म्हणजे locked. SSH keys चालू शकतात, म्हणून account पण expire करा.
- File मधून अनेक passwords.
sudo chpasswd < new-users.txt
Output:
(no output)
याचा अर्थ: प्रत्येक line name:password.
10. usermod: असलेला user बदला
हे का लागतं?
लोक teams बदलतात, docker access लागतो, shell बदलतात किंवा lock करायचं असतं. usermod user परत न बनवता हे सगळं करतो.
हे काय आहे?
-aG GROUP group जोडा (-G सोबत नेहमी -a, नाहीतर इतर groups निघतात). -g नवा primary group, -s shell, -d -m home हलवा, -l नवं login नाव, -L lock, -U unlock, -e expiry date, -c comment.
| Option | अर्थ |
|---|---|
| -aG docker | docker मधे जोडा, बाकी ठेवा |
| -G docker | फक्त docker (बाकी काढतो) |
| -s /bin/zsh | Shell बदला |
| -L / -U | Lock / unlock |
| -l new | Login rename |
| -e DATE | त्या date ला expire |
कसं करायचं (step by step)
- ravi ला docker मधे safely.
sudo usermod -aG docker ravi && groups ravi
Output:
ravi : ravi wheel docker
याचा अर्थ: -a मुळे wheel राहिला.
- नेहमीची चूक.
sudo usermod -G docker ravi && groups ravi
Output:
ravi : ravi docker
याचा अर्थ: -a शिवाय wheel निघाला आणि ravi चं sudo गेलं.
- Shell बदला.
sudo usermod -s /bin/zsh priya && getent passwd priya | cut -d: -f7
Output:
/bin/zsh
याचा अर्थ: Field 7 बदलला.
- सोडून गेलेल्याचं account lock.
sudo usermod -L -e 1 anil && sudo chage -l anil | grep 'Account expires'
Output:
Account expires : Jan 02, 1970
याचा अर्थ: -L password lock, -e 1 account expire म्हणजे SSH keys पण बंद.
- Login rename आणि home हलवा.
sudo usermod -l priyak -d /home/priyak -m priya && ls /home
Output:
anil priyak ravi
याचा अर्थ: UID तोच, files चे owner तेच.
11. userdel: user काढा
हे का लागतं?
जुने accounts security risk. कोणी कायमचं गेलं की account काढा.
हे काय आहे?
userdel NAME account काढतो पण home folder ठेवतो. -r home आणि mail spool पण delete. इतर ठिकाणच्या files जुन्या UID सह राहतात (find / -nouser ने शोधा). आधी user चे processes बंद करा, नाहीतर 'user is currently used by process' ने fail.
कसं करायचं (step by step)
- Backup घेऊन home सह delete.
sudo tar czf /root/anil-home.tgz /home/anil && sudo userdel -r anil
Output:
userdel: anil mail spool (/var/mail/anil) not found
याचा अर्थ: फक्त note; user आणि home गेले.
- User अजून login असेल तर.
sudo userdel vendor1
Output:
userdel: user vendor1 is currently used by process 4312
याचा अर्थ: आधी त्यांचे processes बंद.
- Processes बंद करून delete.
sudo pkill -u vendor1; sudo userdel -r vendor1 && id vendor1
Output:
id: 'vendor1': no such user
याचा अर्थ: Account गेलं.
- उरलेल्या files.
sudo find / -xdev -nouser 2>/dev/null
Output:
/srv/share/report-anil.xlsx
याचा अर्थ: chown ने नवा owner द्या.
12. groupadd, groupmod, groupdel: groups manage
हे का लागतं?
Teams folders share करतात. finance किंवा devs सारखा group पूर्ण team ला एकदाच rights देतो.
हे काय आहे?
groupadd NAME group बनवतो (-g GID, -r system group). groupmod -n NEW OLD rename, -g GID बदल. groupdel NAME काढतो (तो कोणाचा primary group नसावा).
कसं करायचं (step by step)
- Team group बनवा.
sudo groupadd -g 3000 finance && getent group finance
Output:
finance:x:3000:
याचा अर्थ: GID 3000 चा रिकामा group.
- Rename करा.
sudo groupmod -n accounts finance && getent group accounts
Output:
accounts:x:3000:
याचा अर्थ: GID आणि file ownership तेच.
- Group delete.
sudo groupdel accounts
Output:
(no output)
याचा अर्थ: GID 3000 च्या files आता फक्त number दाखवतात.
13. gpasswd: group members जोडा किंवा काढा
हे का लागतं?
usermod -aG एका user ला अनेक groups मधे टाकतो. एका group मधून एक member जोडायला किंवा काढायला gpasswd सोपा.
हे काय आहे?
gpasswd -a USER GROUP जोडतो, -d USER GROUP काढतो, -M u1,u2 GROUP पूर्ण member list set, -A group admins.
कसं करायचं (step by step)
- Member जोडा.
sudo gpasswd -a priya devs
Output:
Adding user priya to group devs
याचा अर्थ: usermod -aG devs priya सारखंच.
- Member काढा.
sudo gpasswd -d ravi docker
Output:
Removing user ravi from group docker
याचा अर्थ: फक्त docker निघतो.
- पूर्ण list set.
sudo gpasswd -M ravi,priya devs && getent group devs
Output:
devs:x:3001:ravi,priya
याचा अर्थ: इतर सगळे निघतात.
14. chage: password आणि account ageing
हे का लागतं?
Company policy: passwords दर 90 दिवसांनी expire, contractor accounts एका date ला.
हे काय आहे?
chage -l USER ageing दाखवतो. -M max दिवस, -m min दिवस, -W warning दिवस, -I expiry नंतर inactive दिवस, -E expiry date (YYYY-MM-DD, कधीच नाही साठी -1), -d 0 पुढच्या login ला बदल. System defaults /etc/login.defs मधे PASS_MAX_DAYS वगैरे.
कसं करायचं (step by step)
- Ageing बघा.
sudo chage -l priya
Output:
Last password change : Oct 25, 2026
Password expires : never
Account expires : never
याचा अर्थ: अजून policy नाही.
- 90 दिवस policy.
sudo chage -M 90 -m 1 -W 7 priya && sudo chage -l priya | grep 'Password expires'
Output:
Password expires : Jan 23, 2027
याचा अर्थ: शेवटच्या बदलापासून 90 दिवस.
- आत्ता बदलायला लावा.
sudo chage -d 0 priya
Output:
(no output)
याचा अर्थ: पुढच्या login ला नवा password.
- Expiry काढा.
sudo chage -E -1 vendor1
Output:
(no output)
याचा अर्थ: -1 म्हणजे कधीच नाही.
15. su: दुसऱ्या user वर जा
हे का लागतं?
Service user ला काय दिसतं ते test करायचं, किंवा थोडा वेळ दुसऱ्या user म्हणून काम.
हे काय आहे?
su - USER USER म्हणून पूर्ण login shell (USER चा password विचारतो). - त्यांचं environment आणि home load करतो. नाव नसेल तर root. sudo su - किंवा sudo -iu USER तुमचाच password. -c एक command. -s nologin user ला shell.
कसं करायचं (step by step)
- priya व्हा.
su - priya
Output:
Password:
[priya@web1 ~]$
याचा अर्थ: Prompt नवा user दाखवतो. परत यायला exit.
- Service user म्हणून एक command.
sudo su -s /bin/bash -c 'ls /var/lib/nginx' nginx
Output:
body proxy tmp
याचा अर्थ: nginx काय वाचू शकतो ते test.
- Dash का महत्त्वाचा.
su priya -c pwd; su - priya -c pwd
Output:
/home/ravi
/home/priya
याचा अर्थ: - शिवाय जुना folder आणि environment राहतो.
16. who, w आणि last: कोण login आहे
हे का लागतं?
Reboot आधी किंवा security check वेळी server वर कोण आहे आणि अलीकडे कोणी login केलं ते जाणायचं.
हे काय आहे?
who सध्याचे logins. w प्रत्येक जण काय चालवतोय आणि load पण. last /var/log/wtmp मधून login history; lastb failed logins (फक्त root). lastlog प्रत्येक user चा शेवटचा login.
कसं करायचं (step by step)
- आत्ता कोण?
who
Output:
ravi pts/0 2026-10-25 09:12 (49.36.10.4)
priya pts/1 2026-10-25 10:02 (103.21.5.9)
याचा अर्थ: दोघे SSH ने connected.
- ते काय करतायत?
w -h
Output:
ravi pts/0 49.36.10.4 09:12 0.00s bash
priya pts/1 103.21.5.9 10:02 2:10 vim app.conf
याचा अर्थ: Restart आधी priya ला सांगा.
- अलीकडचे logins.
last -n 3
Output:
priya pts/1 103.21.5.9 Sun Oct 25 10:02 still logged in
ravi pts/0 49.36.10.4 Sun Oct 25 09:12 still logged in
reboot system boot 5.14.0 Sat Oct 24 22:01
याचा अर्थ: Reboots पण.
- Failed logins.
sudo lastb -n 2
Output:
admin ssh:notty 185.220.1.9 Sun Oct 25 03:11 - 03:11
root ssh:notty 185.220.1.9 Sun Oct 25 03:11 - 03:11
याचा अर्थ: Bots passwords guess करतात. Keys आणि fail2ban वापरा.
17. अनेक industries मधली खरी उदाहरणं
हे का लागतं?
तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.
हे काय आहे?
प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.
कसं करायचं (step by step)
| Team आणि शहर | ते कसं वापरतात | Command |
|---|---|---|
| Sneha, IT admin, Pune | नव्या joiners साठी home आणि groups सह accounts | useradd -m -s /bin/bash -G devs NAME |
| Omar, hospital IT, Dubai | सोडणाऱ्या staff चं account त्याच दिवशी lock | usermod -L -e 1 NAME |
| Lucy, bank compliance, London | 90 दिवस password ageing | chage -M 90 -W 7 NAME |
| Arjun, SaaS DevOps, Bengaluru | Deploy user ला docker access | usermod -aG docker deploy |
| Mei, university lab, Singapore | File मधून 60 student accounts | newusers students.txt |
| Carlos, retail ops, Mexico City | Apps login नसलेल्या system users म्हणून | useradd -r -s /sbin/nologin pos |
18. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
useradd: user 'priya' already exists | नाव आधीच आहे | दुसरं नाव, किंवा usermod ने असलेला user बदला.getent passwd priya |
useradd: Permission denied. | Normal users users बनवू शकत नाहीत | sudo ने चालवा.sudo useradd -m priya |
usermod: group 'dockr' does not exist | Typo किंवा group नाही | नाव तपासा किंवा बनवा.getent group docker |
User lost sudo after usermod -G | -a शिवाय -G ने सगळे groups बदलले | -aG ने परत जोडा.sudo usermod -aG wheel ravi |
permission denied while trying to connect to the Docker daemon socket | नवा group जुन्या shell मधे active नाही | Logout-login किंवा newgrp.newgrp docker |
userdel: user vendor1 is currently used by process 4312 | User चे processes चालू आहेत | आधी बंद करा.sudo pkill -u vendor1 |
su: Authentication failure | चुकीचा password, किंवा root ला password नाही (Ubuntu) | तुमच्या password ने sudo -i.sudo -i |
This account is currently not available. | Shell /sbin/nologin | Service users साठी अपेक्षित; test साठी -s.sudo su -s /bin/bash -c id nginx |
passwd: Authentication token manipulation error | Disk full, read-only root, किंवा /etc/shadow lock | df -h आणि mount तपासा; जुन्या lock files काढा.df -h /; ls /etc/*.lock |
Your account has expired; please contact your system administrator | Account expiry date गेली | chage -E ने वाढवा.sudo chage -E 2027-03-31 vendor1 |
19. Troubleshooting step by step
हे का लागतं?
User login करू शकत नाही किंवा access मिळत नाही तर identity, account state आणि groups या क्रमाने तपासा.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- User आहे का?
getent passwd priya
- Shell खरा आहे का?
getent passwd priya | cut -d: -f7
- Password locked किंवा expired?
sudo passwd -S priya; sudo chage -l priya
- User चे groups कोणते?
id priya
- Group बदलानंतर नवा login लागतो का?
sudo -iu priya id -Gn
- Auth log बघा.
sudo journalctl -u sshd --since '10 min ago' | tail
20. Lab 1: Employee onboard आणि offboard
हे का लागतं?
Groups आणि forced password change सह user बनवा, मग safely lock आणि remove.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Team group.
sudo groupadd devs && getent group devs
Output:
devs:x:3001:
- User बनवा.
sudo useradd -m -s /bin/bash -c 'Lab User' -G devs labuser && id labuser
Output:
uid=1004(labuser) gid=1004(labuser) groups=1004(labuser),3001(devs)
- Password set करून change force.
echo 'labuser:Temp@12345' | sudo chpasswd && sudo chage -d 0 labuser && sudo chage -l labuser | head -2
Output:
Last password change : password must be changed
Password expires : password must be changed
- शेवटच्या दिवशी lock.
sudo usermod -L -e 1 labuser && sudo passwd -S labuser
Output:
labuser LK 1970-01-01 0 99999 7 -1
- Home backup घेऊन delete.
sudo tar czf /root/labuser.tgz /home/labuser && sudo userdel -r labuser && id labuser
Output:
id: 'labuser': no such user
21. Lab 2: User databases वाचा
हे का लागतं?
/etc/passwd आणि /etc/group मधून awk आणि getent ने खरे admin प्रश्न सोडवा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- माणसांचे users.
awk -F: '$3>=1000 && $3<65534 {print $1, $6}' /etc/passwd
Output:
ravi /home/ravi
priya /home/priya
- Login करू शकणारे.
grep -v -E 'nologin|false' /etc/passwd | cut -d: -f1
Output:
root
ravi
priya
- Extra UID 0.
awk -F: '$3==0' /etc/passwd
Output:
root:x:0:0:root:/root:/bin/bash
- sudo कोण वापरू शकतो?
getent group wheel sudo
Output:
wheel:x:10:ravi,priya
- Password नसलेले accounts.
sudo awk -F: '$2=="" {print $1}' /etc/shadow
Output:
(no output)
Ravindra Bagale's Tip
Always use usermod -aG (with -a) to add a group. Plain -G silently removes every other group, and people lose sudo or docker. After adding a group, the user must log in again before it works.
Ravindra Bagale's Tip – मराठी
Group जोडायला नेहमी usermod -aG (-a सह). फक्त -G बाकी सगळे groups शांतपणे काढतो, आणि लोकांचं sudo किंवा docker जातं. Group जोडल्यावर user ने परत login केल्यावरच तो चालतो.
Ravindra Bagale's Tip – हिंदी
Group जोड़ने के लिए हमेशा usermod -aG (-a के साथ) लगाएं. सिर्फ -G बाकी सारे groups चुपचाप हटा देता है, और लोगों का sudo या docker चला जाता है. Group जोड़ने के बाद user को दोबारा login करना पड़ता है.
22. नेहमी विचारले जाणारे प्रश्न
प्र. useradd की adduser?
useradd सगळ्या distros वर सारखा. adduser (Debian/Ubuntu) प्रश्न विचारणारा helper, home बनवतो आणि password विचारतो.
प्र. Primary आणि secondary groups मधे फरक?
Primary group (/etc/passwd field 4) तुम्ही बनवलेल्या नव्या files चा group. Secondary groups extra access देतात.
प्र. Password field 'x' का?
Hashes /etc/shadow मधे, जी फक्त root वाचू शकतो.
प्र. Normal users ना कोणता UID?
सहसा 1000 पासून (/etc/login.defs मधे UID_MIN). System users त्याखाली.
प्र. passwd -l SSH key logins थांबवतो का?
नाही. Account पण expire करा (usermod -e 1) किंवा key काढा.
प्र. /etc/passwd हाताने edit करू का?
करायचंच तर vipw किंवा vigr; ते file lock करतात. useradd आणि usermod चांगले.
प्र. नवे groups का दिसत नाहीत?
Groups login ला load होतात. Logout-login किंवा newgrp.
प्र. नव्या home files कुठून?
/etc/skel मधून. सगळ्या नव्या users साठी default .bashrc तिथे ठेवा.
23. मुलाखत प्रश्न आणि उत्तरं
Beginner level
प्र. UID आणि groups कसे बघाल?
id.
प्र. User accounts कुठे?
/etc/passwd, passwords /etc/shadow, groups /etc/group.
प्र. Home folder सह user कसा?
sudo useradd -m NAME, मग sudo passwd NAME.
प्र. UID 0 म्हणजे?
root, super user.
Mid level level
प्र. इतर groups न काढता docker मधे कसं?
sudo usermod -aG docker USER, मग परत login.
प्र. User पूर्ण lock कसा?
usermod -L password lock आणि usermod -e 1 (किंवा chage -E 0) account expire; SSH keys पण काढा.
प्र. System user म्हणजे?
Service साठी account, लहान UID आणि सहसा /sbin/nologin, useradd -r ने.
प्र. पुढच्या login ला password बदल कसा?
chage -d 0 USER किंवा passwd -e USER.
Senior level
प्र. Users LDAP मधे पण getent passwd ला दिसत नाहीत. काय तपासाल?
nsswitch.conf (passwd: files sss), sssd status आणि logs, directory ला network, cache (sss_cache -E).
प्र. NFS share करणाऱ्या दोन servers वर एकाच user चे वेगळे UIDs. काय होतं, fix?
Files चुकीचे owners दाखवतात. Central identity (LDAP/IPA/AD) किंवा useradd -u ने ठराविक UIDs, मग files योग्य UID ला chown.
प्र. 200 servers वर engineer offboard कसा?
Central directory मधे disable, config management ने SSH keys आणि sudo rules काढा, local accounts expire, shared secrets rotate, last आणि find -user ने audit.
प्र. दुसऱ्या नावाचं UID 0 account धोकादायक का?
Linux number बघतो, म्हणून ते पूर्ण root आणि audits मधे सहज सुटतं.
घरी करून बघा
- Test machine वर home सह 'guest1' बनवा, नव्या 'readers' group मधे टाका, पहिल्या login ला बदलायचा password ठेवा, मग lock करून delete करा.
- /etc/passwd वर awk ने ज्यांचा shell /bin/bash आहे ते users print करा.
सराव Tasks
Maple Leaf Books हा टोरांटो मधला पुस्तक विक्री व्यवसाय आहे. Emily Tremblay त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे CAD मध्ये मोजले जातात आणि AWS resources ca-central-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 17
सोपं माझा primary group
का: Admin काम आधी तपासा.
काय करायचं: Emily Tremblay ला Maple Leaf Books मधे kavya user च्या primary group चं फक्त नाव print करायचं.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं UID आणि groups
का: Access problems groups पासून.
काय करायचं: kavya चे UID, GID आणि groups दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं फक्त group नावं
का: Membership जलद तपासा.
काय करायचं: deploy user चे फक्त group नावं.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Home सह user
का: BIZ मधे नवीन joiner.
काय करायचं: Home folder सह nikhil user.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Password set
का: नव्या user ला password.
काय करायचं: nikhil चा password set (root म्हणून).
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Group बनवा
का: Teams groups ने files share.
काय करायचं: finance group बनवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं अलीकडचे logins
का: Incident नंतर कोणी login केलं?
काय करायचं: शेवटचे 5 logins.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम User entry शोधा
का: Local आणि LDAP users साठी.
काय करायचं: Name service lookup tool ने ravi ची passwd entry.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Shell आणि groups सह user
का: Developers ना bash आणि devs group.
काय करायचं: asha user: home, bash shell, extra group devs.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Service साठी system user
का: Services login करू नयेत.
काय करायचं: appsvc system user, login shell नाही (/sbin/nologin).
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम पुढच्या login ला बदलणं
का: Temporary passwords बदलायलाच हवेत.
काय करायचं: nikhil चा password expire करा म्हणजे पुढच्या login ला बदलावा लागेल.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Group मधे safely जोडा
का: -a शिवाय बाकी groups जातात.
काय करायचं: priya ला बाकी groups न काढता docker group मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Account lock
का: कोणी लांब रजेवर.
काय करायचं: usermod ने rahul चं account lock.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम User आणि home काढा
का: जाणाऱ्याची cleanup.
काय करायचं: intern1 आणि home folder दोन्ही delete.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Password ageing बघा
का: Audits expiry विचारतात.
काय करायचं: kavya चे password ageing details list.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Login shell सह user व्हा
का: deploy ला काय दिसतं ते test.
काय करायचं: su ने full login environment सह deploy user.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Password ची कमाल वय 90 दिवस
का: BIZ ची policy 90 दिवस.
काय करायचं: priya च्या password ची कमाल वय 90 दिवस.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
24. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- whoami, id आणि groups तुम्ही कोण ते दाखवतात.
- /etc/passwd 7 fields; hashes /etc/shadow; groups /etc/group.
- useradd -m -s -G -r -e users बनवतो.
- usermod -aG group जोडतो; फक्त -G कधीच नाही.
- passwd -l, usermod -L -e 1 आणि userdel -r offboarding.
- chage ageing; su - user बदल; last history.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








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