Saan at paano nakaimbak ang mga password sa Linux?

Where How Are Passwords Stored Linux



Ang pangalan ng gumagamit na may kaukulang password para sa isang tukoy na account ay ang pangunahing kinakailangan kung saan maaaring mag-access ang isang gumagamit sa isang Linux system. Ang lahat ng password ng mga account ng gumagamit ay nai-save sa isang file o isang database upang ang isang gumagamit ay ma-verify sa panahon ng pagtatangka sa pag-login sa system. Ang bawat gumagamit ay walang sapat na mga kasanayan at kadalubhasaan upang hanapin ang file na ito sa kanilang system. Gayunpaman, kung nakakuha ka ng pag-access sa database o isang file na pinapanatili ang lahat ng mga password ng gumagamit ng pag-login, madali mong ma-access ang Linux system. Kapag nagpasok ang isang gumagamit ng isang username at password sa Linux para sa pag-login, susuriin nito ang ipinasok na password laban sa isang entry sa iba't ibang mga file ng direktoryo ng '/ etc'.

Ang / etc / passwd file ay pinapanatili ang lahat ng mahahalagang impormasyon na kinakailangan para sa pag-login ng gumagamit. Upang ipaliwanag ito sa mas simpleng mga salita, iniimbak ng / etc / passwd file ang mga detalye ng account ng gumagamit. Ang file na ito ay isang payak na text file na naglalaman ng isang kumpletong listahan ng lahat ng mga gumagamit sa iyong Linux system. Mayroon itong impormasyon tungkol sa username, password, UID (user id), GID (group id), shell, at home Directory. Ang file na ito ay dapat na may nabasang mga pahintulot dahil maraming mga utos ng linya ng utos ang ginagamit upang mapa ang mga ID ng gumagamit sa pangalan ng gumagamit. Ngunit, dapat may limitadong mga pahintulot sa pagsulat ng pag-access lamang para sa mga superuser o root na account ng gumagamit.







Ipapakita ng artikulong ito kung paano at saan mo maiimbak ang mga password ng account ng gumagamit sa pamamahagi ng Linux. Naipatupad namin ang lahat ng mga demonstrasyon sa system ng Ubuntu 20.04. Gayunpaman, maaari kang makahanap ng / etc / passwd file sa anumang pamamahagi ng Linux.



Paunang mga kinakailangan

Dapat kang magkaroon ng mga pribilehiyo ng ugat upang magpatakbo ng mga utos na pang-administratibo.



Pangunahing Pag-unawa tungkol sa / etc / passwd File

Naglalaman ang / etc / passwd file ng impormasyon tungkol sa account ng gumagamit ng iyong system. Ang lahat ng nakaimbak na mga patlang ay pinaghiwalay mula sa colon: mag-sign.
Kapag pinatakbo mo ang sumusunod na utos, makikita mo ang bawat file entry ng / etc / passwd file:





$pusa /atbp/passwd

Ang utos sa itaas ay maglilista ng lahat ng mga gumagamit ng iyong Linux system.
Ang sumusunod na uri ng format ay ipapakita sa iyong terminal ng terminal:

Mga detalye tungkol sa / etc / passwd mga patlang na Format
Mula sa imahe sa itaas:

Username: Ang isang larangan ay kumakatawan sa pangalan ng gumagamit. Ang haba ng patlang ng username ay tinukoy sa pagitan ng 1-32 mga character. Ginagamit ito kapag nag-log in ang isang gumagamit sa system. Sa halimbawa sa itaas, ang 'khuzdar' ay ang username.
Password: Sa halimbawa sa itaas, ipinapakita ng x character na ang password ay nakaimbak sa naka-encrypt na form sa / etc / shadow file.
User ID (UID): Ang User ID ay dapat na hiwalay na nakatalaga sa bawat gumagamit. Ang UID zero ay nakatalaga sa root user, at ang mga User ID mula 1-99 ay nakatalaga sa paunang natukoy o karaniwang mga account. Ang karagdagang mga UID mula sa 100-999 ay nakatalaga sa system ng mga account sa pangangasiwa o mga grupo. Sa screenshot sa itaas, ang user ID ay 1001.
Group ID (GID): Ang susunod na patlang ay kumakatawan sa pangkat ng ID. Ang GID ay nakaimbak sa / etc / group file. Batay sa halimbawa sa itaas, ang gumagamit ay kabilang sa group id 1001.
Impormasyon tungkol sa User ID: Ang sumusunod na patlang ay inilaan para sa mga komento. Sa larangang ito, maaari kang magdagdag ng ilang karagdagang impormasyon tungkol sa tinukoy na gumagamit, tulad ng buong pangalan ng gumagamit, numero ng telepono, atbp. Gayunpaman, sa halimbawa sa itaas, walang numero ng telepono ang ibinigay ng gumagamit.
Direktoryo ng bahay: Ipinapakita ng patlang na ito ang lokasyon ng direktoryo sa bahay na nakatalaga sa kasalukuyang gumagamit. Kung ang tinukoy na direktoryo ay hindi umiiral, pagkatapos ito ay ipapakita /. Ipinapakita ng imahe sa itaas ang lokasyon ng naka-highlight na gumagamit sa direktoryo ng bahay, na kung saan ay tahanan / kbuzdar.
Command // shell: Ang default na absolute path ng isang shell o utos ay / bin / bash. Kilala ito bilang shell. Halimbawa, sysadmin gamit ang shell ng nologin. Kumikilos ito bilang kapalit na shell para sa mga account ng system ng gumagamit. Kung ang shell ay matatagpuan sa path sa / sbin / nologin at nais ng gumagamit na direktang mag-log in sa Linux system, isasara o hindi pagaganahin ng shell ng / sbin / nologin ang koneksyon.



Paghahanap ng gumagamit sa / etc / passwd file

Maaari kang maghanap para sa isang tukoy na gumagamit na may / etc / passwd file, gamit ang grep command. Halimbawa, nais naming hanapin ang username na 'kbuzdar' mula sa / etc / passwd file, gamit ang sumusunod na syntax, kung gayon madali naming mahahanap ang isang tinukoy na gumagamit, na nakakatipid ng aming oras:

$mahigpit na pagkakahawakpangalan ng gumagamit/atbp/passwd

Ang syntax sa itaas ay magbabago sa sumusunod na hugis:

$mahigpit na pagkakahawakhumirit/atbp/passwd


O kaya naman

$mahigpit na pagkakahawak -sa '^ kbuzdar' /atbp/passwd

Ipakita ang mga pahintulot sa / etc / passwd file

Tulad ng nabanggit namin sa itaas, ang lahat ng iba pang mga gumagamit, maliban sa root, ay dapat na mabasa ang pahintulot sa / etc / passwd file, at ang may-ari ay dapat na superuser o root.
I-type ang sumusunod upang suriin ang mga nabasang pahintulot sa file:

$ls -ang /atbp/passwd

Ang sumusunod na sample ng output ay ipapakita sa terminal:

Nagbabasa / etc / passwd file

Maaari mong basahin ang / etc / passwd file sa iyong Linux system sa pamamagitan ng paggamit ng sumusunod na bash script o direktang patakbuhin kung ano ang nakasulat sa ibaba habang ang mga utos ng loop sa terminal.
Lumikha ng isang text file at i-paste ang sumusunod na code dito:

#! / baseng / bash
# kabuuang pitong mga patlang mula sa / etc / passwd na nakaimbak bilang $ f1, f2 ..., $ f7

habang IFS=:basahin -rf1 f2 f3 f4 f5 f6 f7
gawin
itinapon 'Gumagamit$ f1gamitin$ f7shell at nag-iimbak ng mga file sa$ f6direktoryo. '
tapos na < /atbp/passwd

Gamit ang loop habang, babasahin nito ang lahat ng pitong mga patlang at pagkatapos ay paulit-ulit na ipakita ang nilalaman ng file sa terminal.
I-save ang file sa itaas na may pangalang 'readfile.sh'.

Ngayon, patakbuhin ang file sa itaas sa pamamagitan ng paggamit ng sumusunod na utos:

$bashreadfile.sh

Mag-explore / etc / shadow file

Naglalaman ang / etc / shadow file ng lahat ng iyong naka-encrypt na password na nakaimbak sa file na ito na nababasa lamang para sa mga root user.
Patakbuhin natin ang sumusunod na utos upang ipakita ang nilalaman:

$sudo pusa /atbp/anino

Maaari mong makita ang lahat ng password sa naka-encrypt na format:

Konklusyon

Nakita namin mula sa artikulo sa itaas, ang lahat ng mga detalye ng account ng gumagamit at mga password na nakaimbak sa / etc / passwd file sa Linux system. Maaari mong basahin ang file na ito, ngunit ang mga gumagamit lamang ng ugat ang may mga pahintulot sa pagsulat. Bukod dito, nakita din namin ang lahat ng mga naka-encrypt na password na nakaimbak sa / etc / shadow file. Maaari mo ring galugarin ang / etc / group file upang makakuha ng mga detalye tungkol sa pangkat ng gumagamit.