【问题标题】:Default file permissions for FAT32 USB stick on Raspberry PiRaspberry Pi 上 FAT32 U 盘的默认文件权限
【发布时间】:2014-05-30 14:36:01
【问题描述】:

当我将格式化为 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 写入 U 盘的能力。

我觉得我非常接近答案,但看不到我错过了什么。

【问题讨论】:

  • 设备权限与文件权限没有任何关系,最好不要管它们。由于 FAT 和朋友不支持 UNIX 文件权限,因此实现只是为它们返回一个固定值。您可以使用挂载选项更改它们,但我不确定您如何使用任何类型的自动挂载来指定它们。您可以想象自动挂载使文件默认对用户可读...
  • 谢谢。 automount 确实使它们默认可读,但只能写入默认为 pi 的文件的所有者。 PHP/Apache 以用户 www-data 运行。
  • 如果您希望服务器进程可以访问它,也许让自动挂载程序(通常是您甚至可能不需要的桌面环境的一部分)挂载这个东西并不是最好的选择地方。是否可以通过普通的 mount 命令挂载它?
  • 我不这么认为。我希望它是自动的,所以如果有人插入 U 盘,它会自动安装并准备好使用。

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


【解决方案1】:

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

这有点涉及,可能有更简单的方法 - 如果有的话,很高兴听到它。

1) 禁用 GUI,从而禁用自动挂载。 (无论如何,树莓派都在无头运行)。

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>

回显仅用于调试目的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 2015-10-15
    • 2019-10-25
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多