在Linux系统中,对于一个文件或则目录,须要设置权限,来控制用户对该文件或目录的访问权限,其中chmod命令是最主要且常常使用的命令之一。chmod命令用于更改文件或目录的访问权限,促使不同的用户可以有不同的读写执行权限。
chmod命令由9个字符组成,分为3组,分别为文件所有者权限、组用户权限和其他用户的权限,每组权限又分为3种,即读、写、执行权限。其中读权限为r,写权限为w,执行权限为x。chmod命令的用法如下:
chmod [选项] 模式 文件名
比如:我们可以用下边的命令将文件test.txt所有者的读写权限设置为可执行权限:
chmod u+rwx test.txt
其中,u表示文件所有者,rwx表示读写执行权限。我们还可以用不同方法来表示文件权限,例如:
一般我们使用的是数字形式,而且一些Linux系统中,假如我们使用chmod+x来添加执行权限时,却发觉并没有起到设置开启执行权限的作用。缘由如下:
缘由
在Linux系统中linux视频,只要当前执行目录所在的文件系统可执行,我们的chmod+x命令就可以正常的执行。假如是在nfs文件系统中,或则在Samba共享的目录中,这么我们设置的执行权限很有可能还会失效,这些情况可能出现在使用nfs挂载后linux 添加执行权限,再更改文件的模式。这是因为nfs的顾客端和服务器之间,传递的是一些特殊的标记,例如说文件标记为可执行权限,但因为nfs实现的缘由,这种标记并不会正确地传递过去。
解决
对于这些情况,我们可以使用一组命令来解决linux 添加执行权限,比如:
chattr -i file
chmod +x file
chattr +i file
其中,chattr命令拿来设置文件的扩充属性,-i选项表示设置文件为不可变的。这个命令的作用是,设置文件为不可变后,虽然nfs顾客端或则服务器发送了特定的标记,这个标记也会被忽视。之后我们使用chmod+x命令来添加执行权限,最后再使用chattr+i命令设置文件为可变。这样,就可以解决在nfs或则储存设备中设置执行权限无效的问题了。
sudo chattr -i
sudo chmod +x
sudo chattr +i
推论
chmod+x在Linux中常常拿来更改文件和目录的访问权限,但若果在nfs文件系统中使用linux qq,就可能会失效。这个问题的解决方式是使用chattr-i、chmod+x和chattr+i三个命令来设置文件和目录的属性,以确保`chmod+x命令才能正常设置文件的执行权限。尤其是在nfs文件系统或则储存设备中,我们更应当遵守这个规则,以确保文件权限的正确设置。