फ़ाइल में chmod लागू नहीं किया जा सकता है


18

मेरे पास अपने HDD पर एक फ़ाइल है,

cd /media/celebisait/5AC69788C6976355

मेरे फ़ाइल कहा जाता है myFile.tar.gz। मैं एक ls -l,

-rw------- 2 celebisait celebisait  1387745311 Jun  6  2013 myFile.tar.gz

सब ठीक लगता है। हालाँकि, जब मैं करता हूँ,

$ sudo chmod 755 myFile.tar.gz

मेरे पास कोई त्रुटि नहीं है, लेकिन कुछ भी नहीं होता है, अर्थात, जब मैं ls -lफिर से करता हूं, तो मुझे वही आउटपुट मिलता है,

-rw------- 2 celebisait celebisait  1387745311 Jun  6  2013 myFile.tar.gz

चामोद नहीं बदलता .. क्यों?

PS: मैं Ubuntu 13.04 का उपयोग करता हूं।

संपादित करें:

$ cd /media/celebisait/5AC69788C6976355
$ df

Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda2       89873576  42976028  42325544  51% /
none                   4         0         4   0% /sys/fs/cgroup
udev            16436736         4  16436732   1% /dev
tmpfs            3289260       920   3288340   1% /run
none                5120         0      5120   0% /run/lock
none            16446280       764  16445516   1% /run/shm
none              102400        52    102348   1% /run/user
/dev/sda1          94759      2208     92551   3% /boot/efi
/dev/sdb1      767999996 541212516 226787480  71% /media/celebisait/5AC69788C6976355
/dev/sdb2      767999996   1466472 766533524   1% /media/celebisait/54D09DBDD09DA5B0

2 संपादित करें:

$ cd /media/celebisait/5AC69788C6976355
$ mount

/dev/sda2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /sys/firmware/efi/efivars type efivarfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
/dev/sda1 on /boot/efi type vfat (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfsd-fuse on /run/user/celebisait/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=celebisait)
/dev/sdb1 on /media/celebisait/5AC69788C6976355 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sdb2 on /media/celebisait/54D09DBDD09DA5B0 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

3 संपादित करें:

$ sudo fdisk -l /dev/sdb1

Disk /dev/sdb1: 786.4 GB, 786432000000 bytes
255 heads, 63 sectors/track, 95611 cylinders, total 1536000000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6e697373

This doesn't look like a partition table
Probably you selected the wrong device.

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1p1   ?  1936269394  3772285809   918008208   4f  QNX4.x 3rd part
Partition 1 does not start on physical sector boundary.
/dev/sdb1p2   ?  1917848077  2462285169   272218546+  73  Unknown
Partition 2 does not start on physical sector boundary.
/dev/sdb1p3   ?  1818575915  2362751050   272087568   2b  Unknown
Partition 3 does not start on physical sector boundary.
/dev/sdb1p4   ?  2844524554  2844579527       27487   61  SpeedStor
Partition 4 does not start on physical sector boundary.

Partition table entries are not in disk order

4 संपादित करें:

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x9c73d093

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT
/dev/sdb2      1536002048  3072002047   768000000    7  HPFS/NTFS/exFAT
/dev/sdb3      3072002048  3907026943   417512448    7  HPFS/NTFS/exFAT

उस बाहरी ड्राइव का फाइल सिस्टम क्या है? dfकमांड रिजल्ट अच्छा होगा
कीवी

यदि आप जिस तरह से माउंट किए गए हैं (केवल पढ़ने के लिए? रूटक्वाश?) के आधार पर आपको फ़ाइल और निर्देशिका के मालिक होने के लिए sudo की आवश्यकता नहीं है, शायद यह एक सीडी है या संरक्षित usb स्टिक लिखें?
एक्स तियान

@ कीवी मैंने का आउटपुट जोड़ा df
सैट

@Braiam कैसे करें mount?
सैट

का आउटपुट पोस्ट करें blkid
अविनाश राज

जवाबों:


15

टी एल; डॉ;

नोट: नई जानकारी के साथ ओपी द्वारा प्रश्न के निरंतर अद्यतन के आधार पर यह निर्धारित किया गया था कि मुद्दा यह था कि वह एनटीएफएस विभाजन बढ़ रहा था। तो नीचे # 3 उसकी समस्या का वास्तविक उत्तर है। मैं अन्य 2 विधियों को दूसरों के लिए यहां छोड़ता हूं जो समान समस्याओं का सामना कर सकते हैं जो NTFS विभाजन का उपयोग नहीं कर रहे हैं।


आइडिया # 1 - मीडिया की आसानी से (आईएसओ / सीडी / डीवीडी)?

mountकमांड के आउटपुट पर एक नज़र डालें , विशेष रूप से कुछ इस तरह से:

$ mount | grep '/media'

जिस डिवाइस के नीचे माउंट किया गया है /media/celebisaitवह या तो आईएसओ फाइल या सीडी / डीवीडी मीडिया है। जिस स्थिति में आप आम तौर पर केवल पढ़ने के लिए उपयोग करने में सक्षम नहीं होंगे।

आप बता सकते हैं कि माउंटेड रीड / राइट बनाम वर्ज़न को फिर से mountकमांड के आउटपुट में बदलकर क्या लिखा जाता है ।

उदाहरण

/dev/mapper/fedora_greeneggs-root on / type ext4 (rw,relatime,seclabel,data=ordered)

कोष्ठक में आउटपुट पर ध्यान दें। पहले अल्पविराम से पहले पहला तर्क rwजो पढ़ने / लिखने की पहुंच को दर्शाता है। यदि यह एक पठनीय उपकरण होता तो roइसके स्थान पर होता।

वैकल्पिक तरीका

आप यह भी पता लगा सकते हैं कि df -h .कमांड का उपयोग करके आपके HDD पर किसी विशेष स्थान को किस उपकरण से खारा गया है । यह आपको वर्तमान निर्देशिका का स्रोत उपकरण दिखाएगा।

$ df -h .
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/fedora_greeneggs-home  402G  156G  226G  41% /home

यहां हम देख सकते हैं कि मैं एक निर्देशिका / उपनिर्देशिका में हूं /homeजो माउंट का हिस्सा है , जो डिवाइस द्वारा समर्थित है /dev/mapper/fedora_greeneggs-home

डिवाइस के नाम के साथ आप फिर उसी के उत्पादन में देख सकते हैं mount

उदाहरण

$ mount | grep '/dev/mapper/fedora_greeneggs-home'
/dev/mapper/fedora_greeneggs-home on /home type ext4 (rw,relatime,seclabel,data=ordered)

आइडिया # 2 - लेकिन डिवाइस को पढ़ने / लिखने के लिए मुहिम शुरू की जाती है!

यदि आप पाते हैं कि आपका डिवाइस रीड / राइट माउंट किया गया है, तो आप PySDM - स्टोरेज डिवाइस मैनेजर को इंस्टॉल करने का प्रयास कर सकते हैं, जो मैन्युअल एक्सेस के बिना हार्ड डिस्क माउंटपॉइंट के पूर्ण अनुकूलन की अनुमति देता है /etc/fstab। यह udevभंडारण उपकरणों के गतिशील विन्यास के लिए नियमों के निर्माण की भी अनुमति देता है

पढ़ने / लिखने के लिए कदम

  1. भौतिक संग्रहण उपकरण प्रबंधक स्थापित करें: sudo apt-get install pysdm
  2. खुले भंडारण उपकरण चरनी: sudo pysdm
  3. अपनी आवश्यक ड्राइव चुनें
  4. प्रेस सहायता
  5. केवल पढ़ने के लिए अनचेक खोलें
  6. फ़ाइल सिस्टम के स्वामी उपयोगकर्ता की जाँच करें और अपना उपयोगकर्ता नाम लिखें: celebisait
  7. ओके दबाओ
  8. प्रेस लागू करें
  9. umount ड्राइव
  10. इसे माउंट करें

स्रोत: मैं बाहरी ड्राइव पर अनुमतियां कैसे बदल सकता हूं?

आइडिया # 3 - NTFS विभाजन

कमांड के लिए आपके द्वारा पोस्ट किए गए आउटपुट के आधार पर:

$ sudo fdisk -l /dev/sdb

...
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT

आपके पास NTFS विभाजन है, जो बताता है कि आप chmodNTFS माउंटेड पार्टीशन (s) पर फ़ाइलों के लिए सक्षम क्यों नहीं थे । यदि आप ntfs-3gNTFS विभाजन का उपयोग करने के लिए मॉड्यूल का उपयोग कर रहे हैं, तो आपको डिस्क को पढ़ने / लिखने में सक्षम होना चाहिए, सामान्य टूल्स के सामान्य यूनिक्स सूट का उपयोग करके इसकी अनुमतियों को प्रभावित न करें।


2
मुझे लगता celebisaitहै कि उनका उपयोगकर्ता नाम है।
अविनाश राज

@ अविनाशराज, हाँ यह सच है। :)
सैट

मुझे नहीं लगता कि आइडिया # 1 मूल रूप से दी गई जानकारी से मेल खाता है - एक फ़ाइल को केवल-पढ़ने के लिए एक फ़ाइल सिस्टम पर chmod करने की कोशिश करने से त्रुटि (EROFS) हो सकती है। और मैं उलझन में हूँ कि आइडिया # 2 वास्तव में क्या पूरा करता है। ऐसा लगता है कि फाइलसिस्टम को पढ़ने / लिखने का एक शानदार तरीका है - लेकिन आप कहते हैं कि यह इस मामले पर लागू होता है कि फाइल सिस्टम पहले से पढ़ा-लिखा है।
नैट एल्ड्रेडज

@NateEldredge - यह बहुत स्पष्ट नहीं था कि वास्तव में इस क्यू की शुरुआत में क्या चल रहा था, इसलिए मेरा पहला सुझाव यह स्थापित करना था कि डिवाइस कैसे माउंट किया गया था। मेरी दूसरी विधि मैंने अपने USB MP3 प्लेयर पर अनुमतियों को ठीक करने के लिए व्यक्तिगत रूप से उपयोग की है जो कभी-कभी Nautilus में आसानी से दिखाई देती है। फ़ाइलें ओपी का वर्णन करने के तरीके के समान हैं, और मैं समस्या को हल करने के लिए PySDM का उपयोग करता हूं। मुद्दा केवल एफएस आरओ के रूप में घुड़सवार नहीं है, एमपी 3 प्लेयर पर विभाजन को आसानी से मोड में रखा गया है, और फिर भी इसे डब्ल्यूडब्ल्यू पर रखा गया है।
स्लम

7

जैसा कि आप एक HDD का उल्लेख कर रहे हैं।
मेरा उत्तर यह है कि chmodNTFS या FAT32 पार्टीशन पर एक फ़ाइल के लिए संभव नहीं है ।
वास्तव में केवल यूनिक्स / लिनक्स फाइल सिस्टम जैसे ext3, ext4उन विशेषताओं का समर्थन करते हैं।

/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT

यह स्पष्ट रूप से दर्शाता है कि /dev/sdb1एक NTFS विभाजन था।


1
आप कैसे जानते हैं कि यह NTFS है? यह शायद है, लेकिन आप इस सवाल से नहीं मानेंगे
किवी

@ कीवी यह वास्तव में अन्य उत्तर की तुलना में मामला होने की अधिक संभावना है क्योंकि ओपी एक एचडीडी का उल्लेख करता है।
जोसेफ आर।

5
/dev/sdb1            2048  1536002047   768000000    7  HPFS/NTFS/exFAT

/dev/sdb1 on /media/celebisait/5AC69788C6976355 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

fuseblkFdisk का प्रकार और आउटपुट बताता है कि आपका विभाजन NTFS विभाजन है। ये अन्य * NIX देशी फाइल सिस्टम के रूप में UNIX / LINUX फाइल परमिशन स्कीम का समर्थन नहीं करता है।

समाधान सिर्फ फ़ाइल को एक फाइल सिस्टम में ले जा रहा है जो आपकी रूट की तरह इन अनुमतियों का समर्थन करता है। जिस तरह से आप इसे करना चाहते हैं वह बस काम नहीं करेगा।

cp /media/celebisait/5AC69788C6976355/myFile.tar.gz ~/
chmod 755 ~/myFile.tar.gz
ls -l ~/myFile.tar.gz

1

मुझे हाल ही में NTFS विभाजन के साथ एक समान समस्या थी। यह पहले ही कहा जा चुका है कि NTFS में अनुमतियाँ बदली नहीं जा सकतीं, लेकिन ये अनुमतियाँ फ़ाइल सिस्टम के बढ़ते पर सेट की जा सकती हैं। उन समूहों या उपयोगकर्ताओं के आईडी को देखते हुए जिन्हें आप फ़ाइलों तक पहुँचना चाहते हैं, आप कुछ ऐसा कर सकते हैं:

sudo mount -t ntfs -o gid=46,fmask=0003,dmask=0002 /dev/sdb1 /media/DATAPART1

माउंट मैन पेज ताकि आप इसे अपने उपयोग के मामले में दर्जी कर सकें:

http://linux.die.net/man/8/mount


0

निर्देशिका शायद केवल-पढ़ने के लिए है। इसे इस्तेमाल करे:

ls -ld .
chmod 755 .
chmod 755 myFile.tar.gz

यह सही नहीं है। एक साधारण यूनिक्स फाइलसिस्टम पर, यह रीड-ओनली डायरेक्टरी में किसी फाइल को चुमोड करने के लिए ठीक काम करता है। आपको उस निर्देशिका में किसी फ़ाइल के मेटाडेटा को पढ़ने, लिखने या बदलने के लिए किसी निर्देशिका पर लिखने की अनुमति की आवश्यकता नहीं है। आपको नई फाइलें बनाने या मौजूदा लोगों को हटाने के लिए लिखित अनुमति की आवश्यकता है।
नैट एल्ड्रेडज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.