Ravindra BagaleCourses & study guides English

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)

Linux ला तुम्ही कोण ते कसं कळतंतुम्ही नाव आणि password ने login करताLinux /etc/passwd मधे नाव शोधून UID घेतो/etc/shadow मधला password hash तपासतो/etc/group मधून तुमचे groups वाचतोत्या UID आणि groups सह shell सुरूप्रत्येक file access UID आणि groups ने तपासला जातो
Linux ला numbers (UID, GID) महत्त्वाचे, नावं नाहीत. नावं फक्त labels.

2. whoami: मी कोणता user?

हे का लागतं?

Risky command आधी आपण root की normal user ते माहीत हवं. Scripts पण हे तपासतात.

हे काय आहे?

whoami आत्ता ज्या user म्हणून चालताय त्याचं नाव print करतो. sudo किंवा su नंतर बदलतं.

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

  1. तुमचा user बघा.
whoami

Output:

ravi

याचा अर्थ: तुम्ही ravi म्हणून login आहात.

  1. sudo ने बदल बघा.
sudo whoami

Output:

root

याचा अर्थ: sudo command root म्हणून चालवतो.

  1. 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 -uUID number
id -unUser नाव
id -gnPrimary group नाव
id -Gnसगळ्या groups ची नावं

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

  1. तुमची identity.
id

Output:

uid=1001(ravi) gid=1001(ravi) groups=1001(ravi),10(wheel),992(docker)

याचा अर्थ: ravi wheel (sudo) आणि docker मधे आहे.

  1. दुसरा user.
id nginx

Output:

uid=992(nginx) gid=990(nginx) groups=990(nginx)

याचा अर्थ: Web server साठी system user.

  1. फक्त UID.
id -u

Output:

1001

याचा अर्थ: बहुतेक systems वर normal users 1000 पासून.

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

  1. तुमचे groups.
groups

Output:

ravi wheel

याचा अर्थ: या जुन्या shell मधे docker नाही.

  1. ravi चे saved groups.
groups ravi

Output:

ravi : ravi wheel docker

याचा अर्थ: File मधे docker आहे.

  1. नवा 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उदाहरणअर्थ
1raviLogin नाव
2xPassword shadow मधे
31001UID
41001Primary GID
5Ravi BComment (GECOS)
6/home/raviHome folder
7/bin/bashLogin shell

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

  1. एका user ची line.
grep '^ravi:' /etc/passwd

Output:

ravi:x:1001:1001:Ravi B:/home/ravi:/bin/bash

याचा अर्थ: नाव, UID 1001, home आणि bash shell.

  1. getent ने (LDAP सोबतही).
getent passwd nginx

Output:

nginx:x:992:990:Nginx web server:/var/lib/nginx:/sbin/nologin

याचा अर्थ: nologin: nginx म्हणून कोणी login करू शकत नाही.

  1. फक्त खरे users (UID 1000+).
awk -F: '$3>=1000 && $3<65534 {print $1}' /etc/passwd

Output:

ravi
priya
anil

याचा अर्थ: Field 3 म्हणजे UID.

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

  1. Normal users वाचू शकत नाहीत.
cat /etc/shadow

Output:

cat: /etc/shadow: Permission denied

याचा अर्थ: छान. Hashes secret राहतात.

  1. root ने एक line.
sudo grep '^priya:' /etc/shadow

Output:

priya:$y$j9T$Kd...:20386:0:90:7:::

याचा अर्थ: Day 20386 ला बदलला, max 90 दिवस, 7 दिवस आधी warning.

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

  1. wheel चे members.
getent group wheel

Output:

wheel:x:10:ravi,priya

याचा अर्थ: ravi आणि priya sudo वापरू शकतात (Red Hat family).

  1. Ubuntu मधे sudo group.
getent group sudo

Output:

sudo:x:27:ubuntu,ravi

याचा अर्थ: तीच कल्पना, वेगळं नाव.

  1. 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अर्थ
-mHome folder बनवा
-s /bin/bashLogin shell
-G a,bExtra groups
-c 'text'पूर्ण नाव किंवा note
-u 1500ठराविक UID
-rSystem user
-e 2026-12-31Account expiry

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

  1. 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 बनवलं.

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

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

  1. 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 बंद.

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

  1. priya साठी password.
sudo passwd priya

Output:

New password:
Retype new password:
passwd: password updated successfully

याचा अर्थ: Type केलेलं screen वर दिसत नाही.

  1. पहिल्या login ला बदलायला लावा.
sudo passwd -e priya

Output:

Expiring password for user priya.
passwd: Success

याचा अर्थ: तिला स्वतःचा password ठेवावा लागेल.

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

  1. 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 dockerdocker मधे जोडा, बाकी ठेवा
-G dockerफक्त docker (बाकी काढतो)
-s /bin/zshShell बदला
-L / -ULock / unlock
-l newLogin rename
-e DATEत्या date ला expire

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

  1. ravi ला docker मधे safely.
sudo usermod -aG docker ravi && groups ravi

Output:

ravi : ravi wheel docker

याचा अर्थ: -a मुळे wheel राहिला.

  1. नेहमीची चूक.
sudo usermod -G docker ravi && groups ravi

Output:

ravi : ravi docker

याचा अर्थ: -a शिवाय wheel निघाला आणि ravi चं sudo गेलं.

  1. Shell बदला.
sudo usermod -s /bin/zsh priya && getent passwd priya | cut -d: -f7

Output:

/bin/zsh

याचा अर्थ: Field 7 बदलला.

  1. सोडून गेलेल्याचं 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 पण बंद.

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

  1. 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 गेले.

  1. User अजून login असेल तर.
sudo userdel vendor1

Output:

userdel: user vendor1 is currently used by process 4312

याचा अर्थ: आधी त्यांचे processes बंद.

  1. Processes बंद करून delete.
sudo pkill -u vendor1; sudo userdel -r vendor1 && id vendor1

Output:

id: 'vendor1': no such user

याचा अर्थ: Account गेलं.

  1. उरलेल्या 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)

  1. Team group बनवा.
sudo groupadd -g 3000 finance && getent group finance

Output:

finance:x:3000:

याचा अर्थ: GID 3000 चा रिकामा group.

  1. Rename करा.
sudo groupmod -n accounts finance && getent group accounts

Output:

accounts:x:3000:

याचा अर्थ: GID आणि file ownership तेच.

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

  1. Member जोडा.
sudo gpasswd -a priya devs

Output:

Adding user priya to group devs

याचा अर्थ: usermod -aG devs priya सारखंच.

  1. Member काढा.
sudo gpasswd -d ravi docker

Output:

Removing user ravi from group docker

याचा अर्थ: फक्त docker निघतो.

  1. पूर्ण 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)

  1. Ageing बघा.
sudo chage -l priya

Output:

Last password change : Oct 25, 2026
Password expires : never
Account expires : never

याचा अर्थ: अजून policy नाही.

  1. 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 दिवस.

  1. आत्ता बदलायला लावा.
sudo chage -d 0 priya

Output:

(no output)

याचा अर्थ: पुढच्या login ला नवा password.

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

  1. priya व्हा.
su - priya

Output:

Password:
[priya@web1 ~]$

याचा अर्थ: Prompt नवा user दाखवतो. परत यायला exit.

  1. Service user म्हणून एक command.
sudo su -s /bin/bash -c 'ls /var/lib/nginx' nginx

Output:

body  proxy  tmp

याचा अर्थ: nginx काय वाचू शकतो ते test.

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

  1. आत्ता कोण?
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.

  1. ते काय करतायत?
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 ला सांगा.

  1. अलीकडचे 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 पण.

  1. 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 सह accountsuseradd -m -s /bin/bash -G devs NAME
Omar, hospital IT, Dubaiसोडणाऱ्या staff चं account त्याच दिवशी lockusermod -L -e 1 NAME
Lucy, bank compliance, London90 दिवस password ageingchage -M 90 -W 7 NAME
Arjun, SaaS DevOps, BengaluruDeploy user ला docker accessusermod -aG docker deploy
Mei, university lab, SingaporeFile मधून 60 student accountsnewusers students.txt
Carlos, retail ops, Mexico CityApps 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 existTypo किंवा 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 4312User चे 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/nologinService users साठी अपेक्षित; test साठी -s.
sudo su -s /bin/bash -c id nginx
passwd: Authentication token manipulation errorDisk full, read-only root, किंवा /etc/shadow lockdf -h आणि mount तपासा; जुन्या lock files काढा.
df -h /; ls /etc/*.lock
Your account has expired; please contact your system administratorAccount 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)

  1. User आहे का?
getent passwd priya
  1. Shell खरा आहे का?
getent passwd priya | cut -d: -f7
  1. Password locked किंवा expired?
sudo passwd -S priya; sudo chage -l priya
  1. User चे groups कोणते?
id priya
  1. Group बदलानंतर नवा login लागतो का?
sudo -iu priya id -Gn
  1. 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)

  1. Team group.
sudo groupadd devs && getent group devs

Output:

devs:x:3001:
  1. 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)
  1. 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
  1. शेवटच्या दिवशी lock.
sudo usermod -L -e 1 labuser && sudo passwd -S labuser

Output:

labuser LK 1970-01-01 0 99999 7 -1
  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)

  1. माणसांचे users.
awk -F: '$3>=1000 && $3<65534 {print $1, $6}' /etc/passwd

Output:

ravi /home/ravi
priya /home/priya
  1. Login करू शकणारे.
grep -v -E 'nologin|false' /etc/passwd | cut -d: -f1

Output:

root
ravi
priya
  1. Extra UID 0.
awk -F: '$3==0' /etc/passwd

Output:

root:x:0:0:root:/root:/bin/bash
  1. sudo कोण वापरू शकतो?
getent group wheel sudo

Output:

wheel:x:10:ravi,priya
  1. 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.

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 मधे सहज सुटतं.

घरी करून बघा

  1. Test machine वर home सह 'guest1' बनवा, नव्या 'readers' group मधे टाका, पहिल्या login ला बदलायचा password ठेवा, मग lock करून delete करा.
  2. /etc/passwd वर awk ने ज्यांचा shell /bin/bash आहे ते users print करा.

सराव Tasks

या scenario बद्दल

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 करायचं.

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

सोपं UID आणि groups

का: Access problems groups पासून.

काय करायचं: kavya चे UID, GID आणि groups दाखवा.

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

सोपं फक्त group नावं

का: Membership जलद तपासा.

काय करायचं: deploy user चे फक्त group नावं.

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

सोपं Home सह user

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

काय करायचं: Home folder सह nikhil user.

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

सोपं Password set

का: नव्या user ला password.

काय करायचं: nikhil चा password set (root म्हणून).

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

सोपं Group बनवा

का: Teams groups ने files share.

काय करायचं: finance group बनवा.

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

सोपं अलीकडचे logins

का: Incident नंतर कोणी login केलं?

काय करायचं: शेवटचे 5 logins.

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

मध्यम User entry शोधा

का: Local आणि LDAP users साठी.

काय करायचं: Name service lookup tool ने ravi ची passwd entry.

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

मध्यम Shell आणि groups सह user

का: Developers ना bash आणि devs group.

काय करायचं: asha user: home, bash shell, extra group devs.

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

मध्यम Service साठी system user

का: Services login करू नयेत.

काय करायचं: appsvc system user, login shell नाही (/sbin/nologin).

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

मध्यम पुढच्या login ला बदलणं

का: Temporary passwords बदलायलाच हवेत.

काय करायचं: nikhil चा password expire करा म्हणजे पुढच्या login ला बदलावा लागेल.

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

मध्यम Group मधे safely जोडा

का: -a शिवाय बाकी groups जातात.

काय करायचं: priya ला बाकी groups न काढता docker group मधे.

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

मध्यम Account lock

का: कोणी लांब रजेवर.

काय करायचं: usermod ने rahul चं account lock.

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

मध्यम User आणि home काढा

का: जाणाऱ्याची cleanup.

काय करायचं: intern1 आणि home folder दोन्ही delete.

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

मध्यम Password ageing बघा

का: Audits expiry विचारतात.

काय करायचं: kavya चे password ageing details list.

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

मध्यम Login shell सह user व्हा

का: deploy ला काय दिसतं ते test.

काय करायचं: su ने full login environment सह deploy user.

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

अवघड Password ची कमाल वय 90 दिवस

का: BIZ ची policy 90 दिवस.

काय करायचं: priya च्या password ची कमाल वय 90 दिवस.

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

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

  1. whoami, id आणि groups तुम्ही कोण ते दाखवतात.
  2. /etc/passwd 7 fields; hashes /etc/shadow; groups /etc/group.
  3. useradd -m -s -G -r -e users बनवतो.
  4. usermod -aG group जोडतो; फक्त -G कधीच नाही.
  5. passwd -l, usermod -L -e 1 आणि userdel -r offboarding.
  6. chage ageing; su - user बदल; last history.

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

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

User बरोबर जोडा. प्रत्येकाला स्वतःचा login. useradd -m home folder बनवतो. Password set, बदलायला लावा. bash आणि groups सह.
उजळणी card: User बरोबर जोडा · PNG download करा · Card page उघडा
4 steps मधे groups. Access team ने, व्यक्तीने नाही. groupadd बनवतो, id तपासतो. नेहमी -aG, फक्त -G नाही. docker group मधे जोडा.
उजळणी card: 4 steps मधे groups · PNG download करा · Card page उघडा
useradd vs adduser. Low-level, सगळ्या distros वर सारखा. / Debian वर friendly script.
तुलना: useradd vs adduser · PNG download करा · Card page उघडा
usermod -G vs usermod -aG. सगळे extra groups बदलतो. / जुन्या groups मधे जोडतो.
तुलना: usermod -G vs usermod -aG · PNG download करा · Card page उघडा
passwd vs shadow?. passwd users list, सगळे वाचू शकतात. shadow मधे hashes, फक्त root. User शोधा.
मुलाखत card: passwd vs shadow? · PNG download करा · Card page उघडा
-G नाही, -aG का?. फक्त -G सगळे groups बदलतो. -a list मधे जोडतो. Safe add.
मुलाखत card: -G नाही, -aG का? · PNG download करा · Card page उघडा
Group मधे जोडलं, तरी denied?. Groups login ला load होतात. Logout-login, किंवा newgrp. Current groups बघा.
मुलाखत card: Group मधे जोडलं, तरी denied? · PNG download करा · Card page उघडा
Service साठी system user?. Login नाही, home नको. कमी UID, nologin shell. बनवा.
मुलाखत card: Service साठी system user? · PNG download करा · Card page उघडा

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