Raspberry Pi上FAT32 USB记忆棒的默认文件权限

时间:2014-04-16 01:14:36

标签: usb raspberry-pi file-permissions udev fat32

当我将已格式化为FAT32的USB记忆棒/拇指驱动器插入Raspberry Pi(运行Raspbian)时,文件权限默认为644,我无法更改它们。

我需要将其保留为FAT32,以便可以将其用于Windows系统。

我使用udev编写了一条规则,但我无法使用它。

我的udev规则如下所示:

# Set up any USB stick for full write access KERNEL=="sd?1", MODE="0777"

我确定规则被触发,因为我重命名了设备。它设置设备本身的权限,但不设置设备上的单个文件。

我最终想要实现的是能够从PHP写入USB记忆棒。

我觉得我非常接近答案,但看不到我错过的东西。

1 个答案:

答案 0 :(得分:0)

问题解决了 - 经过几个小时和我的Linux大师朋友Jox的大量建议。

它有点牵扯,可能有一种更简单的方法 - 如果有的话,很高兴听到它。

1)Disble GUI反过来禁用Automount。 (无论如何,Pi正在无头跑。)

2)按如下所示创建一个udev规则(保存在/etc/udev/rules.d/81-usbmount.rule中):

<code>
# Set up any USB stick for full write access

KERNEL=="sd?1", ACTION=="remove", RUN+="/home/pi/mount_usb.sh"
KERNEL=="sd?1", SYMLINK="stick1"
KERNEL=="sd?1", ACTION=="add", RUN+="/home/pi/mount_usb.sh"
</code>

这为USB驱动器提供了一致的名称,并运行脚本来安装和卸载驱动器。

3)向FSTAB添加一个条目(存储在/ etc / fstab中):

 /dev/stick1     /media/usbstick  vfat    uid=www-data        0 0 

这会将默认用户ID设置为www-data,因为这是Apache / PHP运行的用户。

4)创建脚本以执行装载和卸载。 (存储在/home/pi/mount_usb.sh中)

<code>
 #! /bin/bash
 # script to mount and unmount USB stick
 echo "Starting $ACTION" > /home/pi/mylog.txt
 case $ACTION in
   add)
      echo "Mounting" >> /home/pi/mylog.txt
      umount /dev/david  2>> /home/pi/mylog.txt
      mount -a  2>> /home/pi/mylog.txt ;;
   remove) 
      echo "Unmounting" >> /home/pi/mylog.txt
      umount /dev/sda1  2>> /home/pi/mylog.txt ;;
   *)  
      echo "NOTHING x$ACTIONx" >> /home/pi/mylog.txt ;;
 esac 
</code>

回声仅用于调试目的。

[我不认为我已经掌握了代码格式化的东西]