更改文件的权限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 文件系统不支持执行标志。
您可以使用umask
或fmask
选项将mount
标志强制设置为您需要的值。umask
同时适用于文件和目录,fmask
并且dmask
分别适用于文件和目录,因此您经常希望使用fmask
.这与umask
您在 shell 脚本中使用的方式类似,通常:
rwx: 0
rw-: 1
r-x: 2
r--: 3
---: 7
评论:
- 在这种情况下,“用户”和“组”是由
uid
和gid
mount 选项指定的。 - 这适用于文件系统上的所有文件
- 还有一个“showexec”挂载选项,可以自动为看起来像 DOS/Windows 可执行文件(*.exe、*.bat、*.com)的内容设置执行标志,但它会覆盖掩码中的执行标志,因此请确保你没有使用它。
例如,挂载 FAT 文件系统并授予您对所有文件的读取+执行权限,同时使文件对您的组只读并且其他人无法使用:
mount -o rw,uid=1000,gid=1000,fmask=0237,dmask=0022,[other options] device mountpoint