04. Ubuntu Server पर उपयोगकर्ता और अनुमतियाँ प्रबंधित करना: व्यापक मार्गदर्शिका

उपयोगकर्ताओं, समूहों और अनुमतियों का प्रबंधन Ubuntu Server प्रशासकों के लिए मूलभूत कार्यों में से एक है। चाहे आप बहु-उपयोगकर्ता वातावरण स्थापित कर रहे हों या अपने सर्वर को सुरक्षित कर रहे हों, उपयोगकर्ता खाते, समूह और अनुमतियाँ बनाना, संशोधित करना और प्रबंधित करना समझना आवश्यक है। यह मार्गदर्शिका वास्तविक उदाहरणों, कमांड आउटपुट और सर्वोत्तम अभ्यासों सहित उपयोगकर्ता और अनुमति प्रबंधन पर गहन जानकारी प्रदान करती है।


पिछला लेख:

01. Ubuntu Server का परिचय – SysOSX: AI & Cloud

02. अपना पहला Ubuntu Server कैसे सेटअप करें: शुरुआती मार्गदर्शिका – SysOSX: AI & Cloud

03. Ubuntu Server के लिए Linux कमांड लाइन में महारत हासिल करना




परिचय

Ubuntu Server एप्लिकेशन होस्ट करने, सेवाएँ प्रबंधित करने और बहु-उपयोगकर्ता वातावरण सक्षम करने के लिए एक शक्तिशाली प्लेटफ़ॉर्म है। उपयोगकर्ता और अनुमति प्रबंधन में महारत हासिल करके, आप अपने सर्वर को सुरक्षित कर सकते हैं, एक्सेस को प्रभावी ढंग से नियंत्रित कर सकते हैं और अनधिकृत कार्रवाइयों को रोक सकते हैं। यह मार्गदर्शिका बुनियादी उपयोगकर्ता खाता निर्माण से लेकर उन्नत अनुमति सेटिंग्स तक सब कुछ कवर करेगी, जिसमें विस्तृत उदाहरण शामिल हैं।


उपयोगकर्ता खाते बनाना और प्रबंधित करना

उपयोगकर्ता बनाना

adduser कमांड का उपयोग करके Ubuntu Server पर उपयोगकर्ता खाता बनाएं। यह कमांड इंटरैक्टिव है और आपसे उपयोगकर्ता के बारे में अतिरिक्त जानकारी मांगता है।

उदाहरण कमांड:

sudo adduser john

उदाहरण आउटपुट:

Adding user `john' ...
Adding new group `john' (1001) ...
Adding new user `john' (1001) with group `john' ...
Creating home directory `/home/john' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for john
Enter the new value, or press ENTER for the default
        Full Name []: John Doe
        Room Number []: 101
        Work Phone []: 555-1234
        Home Phone []: 555-5678
        Other []:
Is the information correct? [Y/n] Y

john नामक उपयोगकर्ता बनाता है, जिसकी होम निर्देशिका /home/john पर होती है और उसे एक अद्वितीय उपयोगकर्ता ID (UID) असाइन करता है।


उपयोगकर्ता संशोधित करना

usermod कमांड आपको उपयोगकर्ता खातों को संशोधित करने की अनुमति देता है। उदाहरण के लिए, आप किसी उपयोगकर्ता की होम निर्देशिका, शेल या समूह सदस्यता बदल सकते हैं।

होम निर्देशिका बदलें:

sudo usermod -d /home/new_john john
sudo mv /home/john /home/new_john

उपयोगकर्ता खाता लॉक या अनलॉक करें:

  • खाता लॉक करें: sudo passwd -l john
  • खाता अनलॉक करें: sudo passwd -u john

उदाहरण आउटपुट (खाता लॉक करना):

passwd: password expiry information changed.


उपयोगकर्ता हटाना

deluser कमांड का उपयोग करके उपयोगकर्ता हटाएं। आप उनकी होम निर्देशिका और संबद्ध फ़ाइलें भी हटा सकते हैं।

उदाहरण कमांड:

sudo deluser --remove-home john

उदाहरण आउटपुट:

Looking for files to backup/remove ...
Removing files ...
Removing user `john' ...
Warning: group `john' has no more members.
Done.


समूह प्रबंधित करना

समूह उपयोगकर्ताओं को व्यवस्थित करने और सामूहिक अनुमतियाँ असाइन करने का एक तरीका हैं। प्रत्येक उपयोगकर्ता कई समूहों का सदस्य हो सकता है।

समूह बनाना और प्रबंधित करना

नया समूह बनाने के लिए, addgroup कमांड का उपयोग करें।

उदाहरण कमांड:

sudo addgroup developers

उदाहरण आउटपुट:

Adding group `developers' (GID 1002) ...
Done.

समूह हटाने के लिए:

sudo delgroup developers

समूहों में उपयोगकर्ता जोड़ना

usermod कमांड के साथ -aG विकल्प का उपयोग करके उपयोगकर्ता को समूह में जोड़ें।

उदाहरण कमांड:

sudo usermod -aG developers john

समूह सदस्यता सत्यापित करें:

groups john

उदाहरण आउटपुट:

john : john developers

john निम्नलिखित समूहों से संबंधित है: john और developers.


फ़ाइल और निर्देशिका अनुमतियों को समझना

Linux फ़ाइल अनुमतियाँ फ़ाइलों और निर्देशिकाओं तक एक्सेस नियंत्रित करने के लिए महत्वपूर्ण हैं। अनुमतियाँ तीन श्रेणियों के लिए परिभाषित की जाती हैं: स्वामी, समूह, और अन्य.

अनुमति प्रकार

प्रत्येक श्रेणी में तीन अनुमति प्रकार होते हैं:

  • पढ़ना (r): फ़ाइल सामग्री देखने या निर्देशिका सामग्री सूचीबद्ध करने की अनुमति देता है।
  • लिखना (w): फ़ाइल सामग्री संशोधित करने या निर्देशिका में फ़ाइलें बनाने/हटाने की अनुमति देता है।
  • निष्पादित करना (x): निष्पादन योग्य फ़ाइलें चलाने या निर्देशिकाओं तक पहुँचने की अनुमति देता है।

उदाहरण:

ls -l का उपयोग करके फ़ाइल अनुमतियाँ देखें:

ls -l /home/john

उदाहरण आउटपुट:

-rw-r--r-- 1 john john 4096 Mar 21 14:00 file.txt

  • rw-: स्वामी (john) के पास पढ़ने और लिखने की अनुमतियाँ हैं।
  • r--: समूह (john) के पास केवल पढ़ने की अनुमतियाँ हैं।
  • r--: अन्य के पास केवल पढ़ने की अनुमतियाँ हैं।

अनुमतियाँ बदलना

chmod कमांड का उपयोग करके अनुमतियाँ संशोधित करें।

उदाहरण कमांड:

  • स्वामी को निष्पादन अनुमति प्रदान करें: chmod u+x file.txt
  • अन्य के लिए लिखने की अनुमति हटाएं: chmod o-w file.txt

संख्यात्मक मानों का उपयोग करना:

अनुमतियाँ संख्यात्मक मानों का उपयोग करके भी सेट की जा सकती हैं:

chmod 755 file.txt: स्वामी के लिए पूर्ण अनुमतियाँ, समूह और अन्य के लिए पढ़ना/निष्पादित करना।


संख्यात्मक अनुमतियों को समझना (755, 777, 744)

Linux अनुमतियों को संख्यात्मक रूप से दर्शाया जा सकता है, जहाँ प्रत्येक अंक एक विशिष्ट अनुमति स्तर से मेल खाता है:

संख्यात्मक अनुमतियों की संरचना:

प्रत्येक संख्यात्मक अनुमति में तीन अंक होते हैं:

  • पहला अंक: स्वामी के लिए अनुमतियाँ।
  • दूसरा अंक: समूह के लिए अनुमतियाँ।
  • तीसरा अंक: अन्य के लिए अनुमतियाँ।

प्रत्येक अंक की गणना निम्नलिखित मानों के आधार पर की जाती है:

  • 4: पढ़ना (r)
  • 2: लिखना (w)
  • 1: निष्पादित करना (x)

इन मानों का योग प्रत्येक श्रेणी के लिए अनुमति स्तर निर्धारित करता है।

सामान्य संख्यात्मक अनुमतियाँ:

  1. 777: सभी के लिए पूर्ण अनुमतियाँ (पढ़ना, लिखना, निष्पादित करना)।
    • स्वामी: rwx
    • समूह: rwx
    • अन्य: rwx
    • उपयोग का मामला: सुरक्षा कारणों से शायद ही कभी उपयोग किया जाता है, लेकिन इसे निम्नलिखित जैसी अस्थायी निर्देशिकाओं पर लागू किया जा सकता है: /tmp.
  2. 755: स्वामी के लिए पूर्ण अनुमतियाँ, समूह और अन्य के लिए पढ़ने और निष्पादित करने की अनुमतियाँ।
    • स्वामी: rwx
    • समूह: r-x
    • अन्य: r-x
    • उपयोग का मामला: निष्पादन योग्य फ़ाइलों या निर्देशिकाओं के लिए सामान्य।
  3. 744: स्वामी के लिए पूर्ण अनुमतियाँ, समूह और अन्य के लिए केवल पढ़ना।
    • स्वामी: rwx
    • समूह: r--
    • अन्य: r--
    • उपयोग का मामला: निजी फ़ाइलों के लिए सामान्य।

उदाहरण:

स्क्रिप्ट के लिए अनुमतियों को 755 पर सेट करने के लिए:

chmod 755 script.sh

उदाहरण आउटपुट:

-rwxr-xr-x 1 john john 4096 Mar 21 14:00 script.sh

स्वामित्व प्रबंधन

स्वामित्व बदलने के लिए chown कमांड का उपयोग करें।

उदाहरण कमांड:

sudo chown john:developers file.txt

इससे स्वामी john और समूह developers.

उदाहरण आउटपुट:

-rw-r--r-- 1 john developers 4096 Mar 21 14:00 file.txt


विशेषाधिकार वृद्धि के लिए Sudo का उपयोग करना

sudo कमांड उपयोगकर्ताओं को उन्नत विशेषाधिकारों के साथ कमांड निष्पादित करने की अनुमति देता है। किसी उपयोगकर्ता को sudo एक्सेस प्रदान करने के लिए, उन्हें sudo समूह में जोड़ें।

उदाहरण कमांड:

sudo usermod -aG sudo john

Sudo एक्सेस सत्यापित करें:

sudo -l -U john

उदाहरण आउटपुट:

User john may run the following commands on this host:
    (ALL : ALL) ALL

उपयोगकर्ता खातों को सुरक्षित करने के लिए सर्वोत्तम अभ्यास

  • मजबूत पासवर्ड नीतियाँ लागू करें:
    passwd का उपयोग करके पासवर्ड समाप्ति सेट करें: sudo passwd -e john
  • Sudo एक्सेस सीमित करें:
    sudo विशेषाधिकार केवल विश्वसनीय उपयोगकर्ताओं को प्रदान करें।
  • रूट लॉगिन अक्षम करें:
    SSH कॉन्फ़िगरेशन फ़ाइल संपादित करें:
sudo nano /etc/ssh/sshd_config 

सेट करें:

PermitRootLogin no
  • प्रमाणीकरण के लिए SSH कुंजियों का उपयोग करें:
    पासवर्ड-आधारित लॉगिन को SSH कुंजियों से बदलें।
  • उपयोगकर्ता गतिविधि की निगरानी करें:
    last या who का उपयोग करके लॉगिन गतिविधि ट्रैक करें:
last

आउटपुट स्पष्टीकरण

uadmin   pts/1   192.168.255.48   Fri Mar 21 13:55   still logged in
uadmin   pts/0   192.168.255.48   Fri Mar 21 13:54   still logged in
uadmin   pts/1   192.168.255.48   Fri Mar 21 01:49 - 08:19  (06:29)
uadmin   pts/0   192.168.255.48   Fri Mar 21 00:53 - 08:19  (07:26)
reboot   system boot   6.8.0-1021-azure   Fri Mar 21 00:22   still running


पंक्ति-दर-पंक्ति विश्लेषण

उपयोगकर्ता लॉगिन: uadmin pts/1 192.168.255.48 Fri Mar 21 13:55 still logged in

  • uadmin: लॉगिन करने वाले उपयोगकर्ता का उपयोगकर्ता नाम।
  • pts/1: लॉगिन के लिए उपयोग किया गया छद्म-टर्मिनल सत्र। छद्म-टर्मिनल (pts) वर्चुअल टर्मिनल होते हैं, जो आमतौर पर तब बनाए जाते हैं जब उपयोगकर्ता SSH के माध्यम से लॉगिन करते हैं।
  • 192.168.255.48: उस दूरस्थ मशीन का IP पता जिससे उपयोगकर्ता जुड़ा।
  • Fri Mar 21 13:55: वह तिथि और समय जब उपयोगकर्ता ने लॉगिन किया।
  • still logged in: दर्शाता है कि उपयोगकर्ता वर्तमान में लॉगिन है और सक्रिय है।
स्तंभअर्थ
उपयोगकर्ता नामउपयोगकर्ता या घटना का नाम (uadmin, reboot).
टर्मिनलछद्म-टर्मिनल सत्र (pts/X) या सिस्टम घटना (system boot).
दूरस्थ होस्ट/IPकनेक्शन शुरू करने वाली दूरस्थ मशीन का IP पता या होस्टनाम।
लॉगिन तिथि/समयवह तिथि और समय जब लॉगिन या घटना शुरू हुई।
लॉगआउट समयवह तिथि और समय जब सत्र समाप्त हुआ (यदि लागू हो)।
अवधिसत्र की कुल अवधि (यदि लागू हो)।
सत्र स्थितिसत्र की वर्तमान स्थिति (still logged in, still running).

अंतर्दृष्टि के लिए अतिरिक्त कमांड

  • वर्तमान में लॉगिन उपयोगकर्ता दिखाएं: who
  • उदाहरण आउटपुट:
uadmin pts/1 2023-03-21 13:55 (192.168.255.48) 
uadmin pts/0 2023-03-21 13:54 (192.168.255.48)
  • सिस्टम अपटाइम जांचें: uptime
  • उदाहरण आउटपुट:
14:15:32 up 13:53, 2 users, load average: 0.10, 0.12, 0.15

निष्कर्ष

उपयोगकर्ताओं, समूहों और अनुमतियों का प्रबंधन Ubuntu Server प्रशासकों के लिए एक मूलभूत कौशल है। इन कार्यों में महारत हासिल करके, आप अपने सर्वर को सुरक्षित कर सकते हैं, अनधिकृत एक्सेस को रोक सकते हैं और परिचालन दक्षता में सुधार कर सकते हैं।


अगला ट्यूटोरियल: Ubuntu Server के लिए नेटवर्किंग मूल बातें

अगले ट्यूटोरियल में, हम  Ubuntu Server के लिए नेटवर्किंग मूल बातें को कवर करेंगे, जिसमें नेटवर्क इंटरफेस कॉन्फ़िगर करना, स्थिर IP सेट करना, नेटवर्क कनेक्टिविटी समस्या-निवारण, और नेटवर्किंग कार्यों के लिए Ubuntu के netplan का उपयोग करना शामिल है। अपने सर्वर के नेटवर्क कॉन्फ़िगरेशन को अनुकूलित करने के लिए कार्रवाई योग्य अंतर्दृष्टि हेतु बने रहें।

7 thoughts on “04. Managing Users and Permissions on Ubuntu Server: A Comprehensive Guide”

टिप्पणी छोड़ें