Linux chmod File Permission

Blogs ❯❯ Linux

Image could not load

Image on pixabay

अगर आप Linux use करते हैं तो , definitely आपने files को permission देने के लिए chmod 756 इस तरह से जरूर कुछ लिखा होगा। तो आखिर में इसका concept क्या है और कितनी तरह से हम Linux में किसी file को permission दे सकते हैं। ये सब इस blog में आप सीखेंगे।

तो जैसा कि आपको पता है Linux multi-user concept पर work करता है , जिसका मतलब है different - different लोग same machine को use कर सकते हैं। या कोई single user , same machine का use करके different - different Jobs कर सकता है। जहाँ पर हमें file permissions की जरूरत पड़ीं।

Files की ownership और permissions का concept Linux ने UNIX और MINUX से inherit किया है , जो कि इसलिए था क्योंकि Linux को एक तरह से networked system के रूप में convene किया था जहां पर different - different के लोग different - different programs और files use रहे होंगे। और ऐसे में चीजों को organized और secure बनाने की जरूरत थी। क्योंकि कोई भी नहीं चाहता है कि कोई भी normal user किसी program का use करके पूरे system को trash कर दे।

Linux User Types

Linux में normally 3 types के users होते हैं जिनके लिए हम permissions set करते हैं। और वो हैं -

  1. Owner

  2. Group

  3. World

और जब भी हम किसी file / directory की permission set करते हैं तो इन तीनो तरह के users के लिए करते हैं।

Linux File permission symbols

आगे बढ़ने से पहले हम File permission symbols के बारे में जान लेते हैं , ऐसा करने के लिए हम एक simple txt file बना लेते हैं।

touch example.txt

इसके बाद file / directory के permission symbols देखने के लिए नीचे दी गयी command को fire करें।

ls -l

Command run करने पर , आप कुछ तरह से output देखेंगे -

-rw-r--r-- 1 root root 0 Sep 26 03:23 example.txt

जिसका मतलब है (right तो left) : example.txt file का name है जो Sep 26 03:23 को create की गयी है , 0 byte file का size है। इसके बाद दो बार root , root लिखा है जिसमे पहले root का मतलब है इस file को root user own करता है , और दुसरे root का मतलब है कि root user group "root" में है। और एक single file है , जैसा कि आप देख सकते हैं कि 1 लिखा हुआ है।

अब बात करते है -rw-r--r-- (left to right) की , इसमें permission को hyphen - से 3 part में divide किया गया है। rw से पहले hyphen - का मतलब है की यह एक normal file है जिसमे कुछ भो content हो सकता है या hyphen की जगह simply d भी सकता है।

  1. rw का मतलब है कि root user , यह permission owner के लिए है। means इस file को owner read और write कर सकता है।

  2. इसके बाद दुसरे part में single hyphen - के बाद r लिखा , जो कि किसी group के लिए permission दी गयी है। Linux file access के लिए different types के groups को establish कर सकता है। एक home computer environment में जो भी computer use करेगा वो इस file को read कर सकता है लेकिन modify / write नहीं कर सकता है।

  3. फिर दो hyphen -- के बाद r, overall user permissions जो कि other user (World) के लिए होती है। यह double hyphen इसलिए हैं क्योंकि group के लिए सिर्फ read permission है। मतलब कोई भी जिसके पास computer का access अंदर या बाहर (In Network) से होगा वो इस file को read कर सकता है।

तो अब आपके थोड़ा सा समझ आया होगा कि , Linux में file / directory permission का जो order है वो Owner - Group - World के रूप में होता है। और permission में use होने वाले symbols कौन कौन से होते हैं। हालाँकि सिर्फ rw ही नहीं और भी permission symbols होते हैं जिन्हे हम एक और example से समझेंगे।

अब एक और example देखते हैं , मेरी directory में एक tests name से directory बनी हुई है जिसके अंदर executable files हैं , उसके लिए permissions कुछ प्रकार हैं।

drwxr-xr-x 2 root root 1024 Sep 26 2022 tests

तो जैसा कि आप देख सकते हैं कि बाकी का logic तो same ही है , बस कुछ symbols को छोड़कर। अब चूंकि यह एक directory है इसलिए starting में d लिखा है , directory के अंदर executable file है इसलिए x लिखा हुआ है। तीनो जगह पर x है जिसका मतलब है कि file को कोई भी execute कर सकता है।

  • rwxr : owner file को read , write execute कर सकता है।

  • xr : मतलब group root file को execute और read कर सकता है।

  • r : और r तो other user के लिए read only permission दे रहा है।

तो अब शायद आपके थोड़ा सा समझ आया होगा कि Linux में 3 type के users होते हैं और 3 types की ही permissions होती है।

  • read

  • write

  • execute

ये permissions set करने के लिए syntax कुछ इस तरह से है -

COMMAND : OWNER : GROUP : WORLD : PATH

For Example :

chmod 644 myfile.txt

अब आप सोच रहे होंगे कि ये numbers कहा से आ गए तो, permissions के लिए हम numbers use करते हैं जो 1 - 7 तक होता है। read , write or execute की permission देने के लिए आपको इन्ही numbers की जरूरत पड़ेगी , हालाँकि इनका मतलब क्या होता है वो नीचे देखकर आप समझ सकते हैं।

  • 4 : r (read)

  • 2 : w (write)

  • 1 : x (execute)

That's it , बस इन्ही numbers को हम अपनी need के according लिखकर किसी file को permission देते हैं। जैसे -

chmod 400 myfile.txt read by owner
chmod 040 myfile.txt read by group
chmod 004 myfile.txt read by anybody (other)
chmod 200 myfile.txt write by owner
chmod 020 myfile.txt write by group
chmod 002 myfile.txt write by anybody
chmod 100 myfile.txt execute by owner
chmod 010 myfile.txt execute by group
chmod 001 myfile.txt execute by anybody

और अच्छे से समझने के लिए हम numbers को different - different तरीके से bind करते हैं -

7 = 4+2+1 (read/write/execute)
6 = 4+2 (read/write)
5 = 4+1 (read/execute)
4 = 4 (read)
3 = 2+1 (write/execute)
2 = 2 (write)
1 = 1 (execute)

Example -

chmod 666 myfile.txt (read/write by anybody.)
chmod 755 myfile.txt (rwx for owner, rx for group and rx for the other.)
chmod 777 myfile.txt (read, write, execute for all.)

I Hope, अब आपको Linux में file permission के बारे में यह blog पसंद आया होगा।

Recent Blogs

Loading ...

Rahul Kumar

Rahul Kumar

Hi ! I'm Rahul Kumar Rajput founder of learnhindituts.com. I'm a software developer having more than 4 years of experience. I love to talk about programming as well as writing technical tutorials and blogs that can help to others. I'm here to help you navigate the coding cosmos and turn your ideas into reality, keep coding, keep learning :)

Get connected with me. :) LinkedIn Twitter Instagram Facebook