如何更改 SD 卡上文件的权限

如何更改 SD 卡上文件的权限

更改文件的权限bsj

/media/cwh/BA70-05FE/swdev$ ls -al  ~/work/sw/swdev/
total 12
drwxrwxr-x 2 cwh cwh 4096 Feb 28 22:21 .
drwxrwxr-x 4 cwh cwh 4096 Feb 28 22:21 ..
-rw-r--r-- 1 cwh cwh 4048 Feb 28 22:21 bsj
/media/cwh/BA70-05FE/swdev$ chmod +x  ~/work/sw/swdev/bsj 
/media/cwh/BA70-05FE/swdev$ ls -al  ~/work/sw/swdev/
total 12
drwxrwxr-x 2 cwh cwh 4096 Feb 28 22:21 .
drwxrwxr-x 4 cwh cwh 4096 Feb 28 22:21 ..
-rwxr-xr-x 1 cwh cwh 4048 Feb 28 22:21 bsj

对 SD 卡上的文件尝试了相同的命令:

/media/cwh/BA70-05FE/swdev$ ls -al
total 96
drwxr-xr-x 2 cwh cwh 32768 Feb 28 22:17 .
drwxr-xr-x 4 cwh cwh 32768 Dec 31  1969 ..
-rw-r--r-- 1 cwh cwh  4048 Feb 28 22:17 bsj
/media/cwh/BA70-05FE/swdev$ chmod +x  bsj 
/media/cwh/BA70-05FE/swdev$ ls -al
total 96
drwxr-xr-x 2 cwh cwh 32768 Feb 28 22:17 .
drwxr-xr-x 4 cwh cwh 32768 Dec 31  1969 ..
-rw-r--r-- 1 cwh cwh  4048 Feb 28 22:17 bsj

看来没有什么效果。

答案1

看起来您在 SD 卡上使用非 Unix 文件系统(可能是 FAT32)。 Unix 权限不适用于这些。

答案2

FAT 文件系统不支持执行标志。

您可以使用umaskfmask选项将mount标志强制设置为您需要的值。umask同时适用于文件和目录,fmask并且dmask分别适用于文件和目录,因此您经常希望使用fmask.这与umask您在 shell 脚本中使用的方式类似,通常:

rwx: 0
rw-: 1 
r-x: 2
r--: 3
---: 7

评论:

  • 在这种情况下,“用户”和“组”是由uidgidmount 选项指定的。
  • 这适用于文件系统上的所有文件
  • 还有一个“showexec”挂载选项,可以自动为看起来像 DOS/Windows 可执行文件(*.exe、*.bat、*.com)的内容设置执行标志,但它会覆盖掩码中的执行标志,因此请确保你没有使用它。

例如,挂载 FAT 文件系统并授予您对所有文件的读取+执行权限,同时使文件对您的组只读并且其他人无法使用:

mount -o rw,uid=1000,gid=1000,fmask=0237,dmask=0022,[other options] device mountpoint

相关内容