माउंट / fstab के लिए डिफ़ॉल्ट माउंट सेटिंग्स क्या हैं?


18

एक गैर रूट विभाजन के लिए डिफ़ॉल्ट बढ़ते विकल्प क्या हैं?

माउंट के लिए आदमी का कहना है ...

defaults - use default options: rw, suid, dev, exec, auto, nouser, and async.

... ताकि हम वही देखें जो हम उम्मीद करते हैं। लेकिन, जब तक मुझे कुछ याद नहीं आ रहा है, तब तक ऐसा नहीं होगा।

मेरे पास "NewHome20G" लेबल वाला एक एक्स 3 विभाजन है जिसे सिस्टम द्वारा / dev / sdc6 के रूप में देखा जाता है। यह हम देख सकते हैं ...

root@john-pc1204:~# blkid | grep NewHome20G
/dev/sdc6: LABEL="NewHome20G" UUID="d024bad5-906c-46c0-b7d4-812daf2c9628" TYPE="ext3" 

मैं इस प्रकार fstab में एक प्रविष्टि है ...

root@john-pc1204:~# cat /etc/fstab | grep NewHome
LABEL=NewHome20G        /media/NewHome20G        ext3         rw,nosuid,nodev,exec,users     0  2

उस fstab लाइन में निर्दिष्ट विकल्प सेटिंग्स पर ध्यान दें।

अब मैं देखता हूं कि बूट अप के बाद विभाजन वास्तव में कैसे होता है ...

root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]

... इसलिए, जब फाइलसिस्टम क्रियान्वित हो जाता है और मेरे द्वारा निर्दिष्ट उपयोगकर्ता विकल्प नजरअंदाज कर दिए जाते हैं।

बस यह सुनिश्चित करने के लिए, मैं sdc6 को अनमाउंट करता हूं, इसे रिमूव करता हूं और फिर से माउंट विकल्पों को देखता हूं ...

root@john-pc1204:~# umount /dev/sdc6
root@john-pc1204:~# mount /dev/sdc6
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]

.... वही परिणाम

अब मैं फिर से विभाजन को अनमाउंट करता हूं, इसे निष्पादित विकल्प को निर्दिष्ट करने के लिए फिर से बताएं और परिणाम देखें ...

root@john-pc1204:~# umount /dev/sdc6
root@john-pc1204:~# mount /dev/sdc6 -o exec
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,nosuid,nodev) [NewHome20G]

... और यहां निष्पादन विकल्प ने आखिरकार प्रभावी कर दिया है और नॉइसेक सेटिंग गायब हो गई है।

बस ब्याज के लिए, मैं चूक विकल्प के साथ विभाजन को फिर से माउंट करता हूं

root@john-pc1204:~# umount /dev/sdc6
root@john-pc1204:~# mount /dev/sdc6 -o defaults
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]

Noexec वापस आ गया है, इसलिए यह rw, noexec, nosuid की तरह दिखता है, नोडव डिफ़ॉल्ट विकल्प हैं जो कि आदमी नहीं कहता है।

यह बात क्यों है?

मेरे पास डेटा डिस्क पर संग्रहीत उपयोगी स्क्रिप्ट से भरा एक फ़ोल्डर है। क्योंकि वह डिस्क noexec माउंट की गई है, जो स्क्रिप्ट नहीं चलेंगी, भले ही वे सभी chmod 777 के साथ सेट की गई हों। मैं इसे कई तरीकों से गोल कर सकता हूं, लेकिन यह निराशाजनक है कि आदमी की प्रविष्टि गलत प्रतीत होती है।

क्या मैं यहां कुछ स्पष्ट याद कर रहा हूं या उबंटू में डिफ़ॉल्ट विकल्प बदल गए हैं जो कुछ संस्करण पहले थे?

जवाबों:


18

मैनुअल सही है । आपका मुद्दा यह है कि शायद आपने 3 महत्वपूर्ण विवरणों का हिसाब नहीं दिया है:

  • users(और user) का तात्पर्य विकल्प noexec, nosuidऔर nodev

  • जब तक कि बाद के विकल्पों द्वारा ओवरराइड नहीं किया जाता

  • विकल्प आदेश मायने रखता है;)

इसलिए जब आप rw,nosuid,nodev,exec,usersअपने fstab में उपयोग करते हैं , तो अंतिम विकल्प users, सेट noexec,nosuid,nodev, इस प्रकार आपके को अक्षम करता है exec(और आपके nosuid,nodevनिरर्थक भी बना रहा है )।

परिणाम, जैसा कि अपेक्षित है, है rw,noexec,nosuid,nodev

और नहीं, usersइसे नजरअंदाज नहीं किया गया था, यह आमतौर पर mountलिस्टिंग आउटपुट में नहीं दिखता है । लेकिन कोई भी उपयोगकर्ता इसे अनमाउंट कर सकता है और इसे फिर से माउंट कर सकता है। कोशिश करो!

rodrigo@desktop ~ $ mount /dev/sda6                     # ordinary user
rodrigo@desktop ~ $ mount | grep /dev/sda6
/dev/sda6 on /mnt/mint10 type ext4 (rw,noexec,nosuid,nodev)
rodrigo@desktop ~ $ /mnt/mint10/bin/echo it works       # noexec will deny this
bash: /mnt/mint10/bin/echo: Permission denied

mountकेवल उपयोगकर्ता से संबंधित कुछ दिखाएगा यदि user( नहीं users ) का उपयोग किया जाता है, और एक सामान्य, गैर-रूट उपयोगकर्ता इसे इस तरह से देखता है:

rodrigo@desktop ~ $ mount /dev/sda6         # ordinary user
rodrigo@desktop ~ $ mount | grep /dev/sda6  # it will list current "owner"
/dev/sda6 on /mnt/mint10 type ext4 (rw,noexec,nosuid,nodev,user=rodrigo)
rodrigo@desktop ~ $ umount /dev/sda6
rodrigo@desktop ~ $ sudo mount /dev/sda6
rodrigo@desktop ~ $ mount | grep /dev/sda6  # since owner=root, it won't show
/dev/sda6 on /mnt/mint10 type ext4 (rw,noexec,nosuid,nodev)
rodrigo@desktop ~ $ umount /dev/sda6        # only mounter can unmount
umount: only root can unmount LABEL=MINT10 from /mnt/mint10

यह भी ध्यान दें कि, userबिना उपयोग के noauto, विभाजन बूट पर स्वचालित (रूट द्वारा) हो जाएगा। इसलिए जब तक रूट इसे अनमाउंट नहीं करता है, तब तक कोई भी माउंट या फिर से माउंट नहीं कर पाएगा।

उस ने कहा, मुझे लगता है कि आप पहले से ही अपने समाधान का अनुमान लगा चुके हैं: बस अपने विकल्पों के क्रम को बदल दें और सब कुछ ठीक हो जाएगा:

LABEL=NewHome20G  /media/NewHome20G  ext3  users,exec  0  2

ध्यान दें कि बाद कैसा execहै । और जरूरी भी नहीं है। पहले से ही एक डिफ़ॉल्ट है, और अन्य स्वतः ही चालू हो जाते हैं usersrw,nosuid,nodevrwusers

और परिणाम है:

rodrigo@desktop ~ $ mount /dev/sda6                  # user mount
rodrigo@desktop ~ $ mount | grep /dev/sda6
/dev/sda6 on /mnt/mint10 type ext4 (rw,nosuid,nodev)
rodrigo@desktop ~ $ /mnt/mint10/bin/echo it works    # exec works
it works
rodrigo@desktop ~ $ sudo umount /dev/sda6            # root unmount
rodrigo@desktop ~ $ sudo mount /dev/sda6             # root mount
rodrigo@desktop ~ $ mount | grep /dev/sda6
/dev/sda6 on /mnt/mint10 type ext4 (rw,nosuid,nodev)
rodrigo@desktop ~ $ umount /dev/sda6                 # user unmount
rodrigo@desktop ~ $

किसी भी उपयोगकर्ता, रूट या गैर-रूट का अर्थ, इसे माउंट कर सकता है और अनमाउंट कर सकता है, चाहे जो पहले से माउंट किया गया हो या इसे अनमाउंट किया गया हो। और निष्पादन कार्य भी :)


क्या आपका मतलब था "... जब userबिना उपयोग के auto, विभाजन को स्वचालित किया जाएगा ..."?
एंड्रियास जे।

@AndreasJ। नहीं, मेरा मतलब था noautoautoपहले से ही डिफ़ॉल्ट व्यवहार है, इसलिए इसके बिना noautoसमान है auto: विभाजन को स्वचालित किया जाएगा।
MestreLion

क्षमा करें, मैंने आपकी सजा को गलत बताया। यह सही समझ में आता है!
एंड्रियास जे।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.