SD karttaki bir dosyaya neden yürütme izinleri atayamıyorum?


10
shell@android:/sdcard/SW # ls -l
-rw-rw-r-- root     sdcard_rw      128 2012-09-22 11:42 usb0config.sh
shell@android:/sdcard/SW # chmod 777 usb0config.sh                             
shell@android:/sdcard/SW # ls -l
-rw-rw-r-- root     sdcard_rw      128 2012-09-22 11:42 usb0config.sh
shell@android:/sdcard/SW # 

SD karttaki bir dosyaya neden yürütme izinleri atayamıyorum?

$ adb shell su -c mount |grep -si sdcard
/dev/block/vold/179:97 /mnt/ext_sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/ext_sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0


$ adb shell su -c "mount -t vfat -o umask=0000 /dev/fuse /mnt/sdcard"
mount: Block device required

Şimdi başarıyla yeniden montaj gibi görünüyor.

$ adb shell su -c "mount -t vfat -o remount,umask=0000 /dev/fuse /mnt/sdcard"

ancak dosyaya henüz 777 modu atanamaz.

shell@android:/sdcard/Sw # ls -l
-rw-rw-r-- root     sdcard_rw      128 2012-09-22 11:42 usb0config.sh
shell@android:/sdcard/Sw # chmod 777 usb0config.sh                             
shell@android:/sdcard/Sw # ls -l
-rw-rw-r-- root     sdcard_rw      128 2012-09-22 11:42 usb0config.sh

Bağlama bilgisi, yeniden montaj öncesi ile karşılaştırıldığında değişmez.

$ adb shell su -c mount |grep -si sdcard
/dev/block/vold/179:97 /mnt/ext_sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/ext_sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/fuse /mnt/sdcard fuse rw,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0

Yanıtlar:


15

Cihazınızla olağandışı bir şey yapmadığınız sürece SD kart, * nix dosya izinlerini desteklemeyen bir FAT dosya sistemi olarak biçimlendirilir. MIT'in profesörlerinden birinden gelen bu Linux SSS girişi, bunu biraz açıklıyor ve ayrıca cihazın izin modunu değiştirmek için bağlama seçeneklerini nasıl kullanabileceğinizi açıklıyor (bunun için root gerekir ve cihazdaki tüm dosyaları / klasörleri etkiler) . Ayrıca, Android'deki SD kart varsayılan olarak -noexecbayrakla birlikte monte edilir .

Exec muhtemelen bir Umask ile yeniden bağlayın isterdim bit için 0000umask'ı esasen DEĞİL istediğiniz izinlerin bir ikili olduğu için, (umask'ı böylece 0000diyor yok herhangi izinleri dışında maske, hepsini izin). Test edilmedi, ancak geçici olarak yapmak aşağıdakiler boyunca bir şey olacaktır:

mount -t vfat -o umask=0000 /dev/your/sdcard/device /mnt/sdcard

Bağlama noktasının /mnt/sdcardcihazınıza bağlı olarak biraz farklı bir şeye değiştirilmesi gerekebilir . Yine de, mountbunun için kök izinlerinizin olmasını gerektirdiğine inanıyorum .


Verilen komutu kullanarak yeniden denemeyi denedim, ancak başarısız oldu, lütfen sorumun ekine bakın.
Victor S

lütfen sorumun güncellemesine bakın.
Victor S

1
@VictorS: Hem dahili hem de harici SD kartınız var gibi görünüyor. Dahili olana aynı şekilde davranılmıyor ve istediğiniz izinlerle yeniden monte edilmesinin bir yolu olup olmadığını bilmiyorum. Alternatif olarak, sh: komutunu çağırarak komut dosyanızı yürütebilirsiniz sh usb0config.sh.
eldarerathis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.