[vagrant@localhost vagrant]$ sudo chmod 755 luser-demo01.sh
[vagrant@localhost vagrant]$ ls -l
total 5
-rwxrwxrwx 1 vagrant vagrant 101 May 30 19:44 luser-demo01.sh
-rwxrwxrwx 1 vagrant vagrant 3464 May 30 19:16 Vagrantfile
[vagrant@localhost vagrant]$ chmod 755 luser-demo01.sh
[vagrant@localhost vagrant]$ ls -l
total 5
-rwxrwxrwx 1 vagrant vagrant 101 May 30 19:44 luser-demo01.sh
-rwxrwxrwx 1 vagrant vagrant 3464 May 30 19:16 Vagrantfile
[vagrant@localhost vagrant]$
我正在尝试使用 将上述 .sh 文件的文件权限从 777 更改为 755 chmod
,但它不起作用。我尝试过使用其他权限,例如 600 和 666,chmod
但文件权限永远不会改变。我使用的是 CentOS 7。
我的命令如下:sudo chmod 755 <filename>
或chmod 755 <filename>
.
建议我使用它chown
来获得文件的所有权。然而,在尝试之后,我发现即使这样也没有按预期工作。我附上下面的图片以供参考。我可能使用了错误的命令。
[vagrant@localhost vagrant]$ chown -c root luser-demo01.sh
changed ownership of 'luser-demo01.sh' from vagrant to root
[vagrant@localhost vagrant]$ ls -l
total 5
-rwxrwxrwx 1 vagrant vagrant 101 May 30 19:44 luser-demo01.sh
-rwxrwxrwx 1 vagrant vagrant 3464 May 30 19:16 Vagrantfile
[vagrant@localhost vagrant]$
命令输出findmnt
如下:
[vagrant@localhost vagrant]$ findmnt -T /vagrant
TARGET SOURCE FSTYPE OPTIONS
/vagrant /vagrant vboxsf rw,nodev,relatime
/vagrant vagrant vboxsf rw,nodev,relatime
造成这种行为的最常见原因(注意:尝试更改权限或所有权时不会出现错误消息)是文件所在的文件系统不支持 Unix 风格的文件所有权/权限,例如 VFAT/FAT32/ ExFAT 文件系统,或来自不支持 SMB 协议的 Unix 扩展的系统的 SMB/CIFS 共享。
此类文件系统通常允许为其中的所有文件和目录设置默认所有者/组,并且可能为所有文件设置一组权限,为所有目录设置另一组权限。这些通常是在文件系统挂载时使用挂载选项设置的。
没有错误消息,因为文件系统驱动程序“知道”更改每个文件的所有权和权限从根本上是不可能的,因此驱动程序什么也不做,并且每当要求更改所有者/权限时都会报告成功的操作。
要识别所使用的文件系统类型,请
findmnt --target .
在包含要更改其权限的文件的目录中运行。请编辑您的问题,将该命令的输出添加为文本,而不是文本图片。文件系统类型似乎是
vboxsf
,表明这是来自主机系统的 VirtualBox 共享。如果 VirtualBox 在主机系统中以普通用户身份运行,则它将无权更改主机端的文件所有权。而且,如果主机文件系统恰好是 VFAT/FAT32/ExFAT,则将无法存储单个文件的权限,因此驱动程序根本无法依赖主机文件系统功能。因此,它必须假设它必须自己提供所有所有权/权限模拟,就像 VFAT 文件系统驱动程序必须做的那样。请参阅
man mount.vboxsf
参考资料 以用于设置权限的安装选项。文件名可能不是真实的
luser-demo01.sh
,而是包含非打印字符。尝试跑步
ls -lb *
-b:打印非图形字符的 C 风格转义符
仔细检查文件名是否符合您的预期。
这个答案提供了更多细节
ls -b
。 https://askubuntu.com/a/889751