首页 百科知识 目录及文件安全命令

目录及文件安全命令

时间:2023-10-09 百科知识 版权反馈
【摘要】:在数字表示法中,使用三位八进制数来表示三类用户的访问权限。第1个数字代表文件主的权限,第二个数字代表同组用户的权限,第3个数字代表其他用户的权限。umask命令的功能是设置文件权限的掩码或者获得当前文件权限掩码。它告诉操作系统在创建新文件或目录时不应该赋予其哪些权限,其命令格式如下:掩码使用三位八进制数表示,分别表示文件主、同组用户、其他用户的掩码。掩码表示不允许拥有的权限,这一点与chmod不同。

8.2.5 目录及文件安全命令

Linux是一个多用户的操作系统,为了保证系统中文件的安全,使用了文件权限。下面将介绍与此相关的一组命令。

(1)chmod

chmod命令的功能是改变文件或目录的访问权限,其语法格式如下所示:

chmod [选项] 权限参数 文件名/目录名

命令中的权限参数有两种表达方式:英文字母表示法及数字表示法。

在英文字母表示法中,一个文件的权限用十个字符表示。第一字符代表文件类型,每个字符代表的文件类型如表8-4所示。

表8-4 文件类型字符

img73

接下来三个字符代表文件主的权限,中间三个字符代表同组用户的权限,最后三个字符代表其他用户的权限。每类用户都有读、写、执行三种权限,分别用r、w、x表示,没有相应权限用-表示。

在英文字母表示法中,权限参数的描述形式为:

用户类别 [+|-|=] 权限

用户类别可以取值:a、u、g、o。a代表所有用户,它是系统默认值;u代表文件主;g代表同组用户(即与文件主同组的所有用户);o代表其他用户(即文件所属组外的其他用户)。在使用时可以同时选择多项,如ug代表文件主和同组用户。

例如,为文件file1的拥有者增加执行权且其他用户的权限不变,这时可使用以下命令:

$chmod u+x file1

若要为file1的拥有者和同组用户增加写权限和执行权且删除其他用户的执行权限,可执行以下命令:

$chmod ug+wx, o-x file1

若要删除所有用户对文件file1的执行权限,可执行以下命令:

$chmod a-x file1

数字表示法就是使用数字来表示文件或目录的访问权限。在数字表示法中,使用三位八进制数来表示三类用户的访问权限。第1个数字代表文件主的权限,第二个数字代表同组用户的权限,第3个数字代表其他用户的权限。各数字表示的权限含义为:0表示没有权限,l表示可执行权限,2表示可写权限,4表示可读权限。若有多种权限则将相应的权限值相加。

如果想让某个文件的所有者有读、写两种权限,就可以把4(可读)和2(可写)相加得6,那么八进制数6就表示读/写权限;若想让同组用户具有可读和执行权限,需要将权限值设置为5(4+1)。因此如果设置权限为650,则表示文件所有者具有读写权限、同组用户具有可读且可执行权限、其他用户没有任何权限。

例如要将文件file1的权限设定为:文件拥有者可读写、同组用户可读、其他用户可读,可执行以下命令:

$chmod 644 file1

要将文件file1的权限设置为:文件拥有者可读写执行、同组用户可读执行、其他用户没有任何权限,这时可执行以下命令:

$chmod 750 file1

(2)chown

chown命令的功能是改变文件所属的用户及用户组,该命令的语法格式如下所示:

chown [选项] 用户[:用户组] 文件名其中用户可以是用户名或用户ID,用户组也可以是组名或组ID。文件名可以有多个,中间以逗号分开。

只有 root 用户可以更改文件的所有者,只有 root 用户或该文件的拥有者才可以更改文件所属的用户组。如果用户是文件主但不是 root 用户,则只可以将用户组更改为用户是其成员的组。

例如要将文件file1的所属用户设置为user1,所属用户组也设置为user1,可使用如下命令:

#chown user1:user1 file1

如果只想改变一个文件或者子目录所属的用户组,可以使用chgrp命令。

(3)chgrp

超级用户或文件的所有者可以使用chgrp命令改变文件所属的用户组,其命令格式如下:

chgrp [选项] 用户组 文件名其中用户组可以是用户组ID,也可以是用户组的组名;文件名是以逗号分开的要改变所属用户组的文件列表,在文件名中可以使用通配符。

例如,若希望将/home/zheng目录下文件file1所属的组转变成user2,可使用下面的命令:

#chgrp user2 /home/zheng/file1

(4)umask

umask命令的功能是设置文件权限的掩码或者获得当前文件权限掩码。它告诉操作系统在创建新文件或目录时不应该赋予其哪些权限,其命令格式如下:

umask [选项] [掩码]

掩码使用三位八进制数表示,分别表示文件主、同组用户、其他用户的掩码。掩码表示不允许拥有的权限,这一点与chmod不同。例如掩码0表示不限制任何权限,掩码4表示限制读权限。当umask命令不带掩码参数时,它返回当前掩码值。

例如,使用下述命令可以将掩码设置为022,即不允许同组用户和其他用户有写文件的权限。

$umask 022

若当前掩码为022,用户创建文件时设置的权限值为666,则系统赋给文件的访问权限是644,即掩码的反码与设置权限值进行逻辑与的结果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈