我读了这里的多个其他答案,但无济于事。显然chmod
,chown
这里不适用。
问题在于:我有一个学校用的 USB 驱动器,里面有一个用于编程课的文件夹,我所有的 C 语言编程都是在这个文件夹中完成的。我编写了一个 shell 脚本,当调用该脚本时,它会创建一个新文件夹,其中包含一个模板 C 文件,以及Makefile
该项目的模板,所有文件都以实验室的名称命名。这个脚本在我家里的笔记本电脑上运行良好,但由于我无法授予其执行权限,因此它无法在 USB 驱动器上运行。
以下是我迄今为止尝试过的方法:
chmod
和chown
,例如sudo chmod 755 /dev/sdX
或sudo chown mrowsell /mnt/SCHOOL
以及其上的许多变体(如上所述,不起作用)umount
和remount
(-o fmask=111,dmask=000
或者反过来,不记得答案是什么了)。还尝试了-o defaults,exec,noauto
许多其他建议的变体。/etc/udev/rules.d
在名为中创建一条新规则99-school-usb.rules
。此解决方案需要使用不同的线路进行多次尝试。本质上可以归结为:SUBSYSTEM !="usb_device", ACTION !="add", GOTO="school_rules_end" SYSFS{idVendor} =="8564", SYSFS{idProduct} =="1000", SYMLINK+="school" MODE="0755", OWNER="myusername", GROUP="myusergroup" LABEL="school_rules_end"
当然,VID:PID 已更改为与我的 USB 记忆棒匹配。这仍然不起作用。
在 中添加一个新条目
fstab
。这样做的问题是启动时该记忆棒可能存在也可能不存在,如果不存在则会导致问题。这也不起作用,因为上面的umount
/mount
选项是不同方式的相同内容。
因此,要么是我没有正确输入 rules.d 内容,要么是我遗漏了其他显而易见的内容。