Linux真小白入门教程第十三集——文件权限及安全性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/misayaaaaa/article/details/84870599

ls命令可查看文件权限

输出结果的第一个字段即描述了文件和目录权限的编码

第一个字符代表了对象的类型:

-代表文件

d代表目录

l代表链接

c代表字符型设备

b代表块设备

n代表网络设备

后面的三组字符,每组都定义了三种访问权限

r 代表对象可读

w 代表对象可写

x 代表对象可执行

若没有某种权限,该权限位置会出现单破折线代替,分别为(对象的属主,对象的属组,系统其他用户

w位置被取代,说明其他用户没有写的权限

umask命令可以用来显示和设置所创建文件和目录的默认权限

0022的第一位代表了一项特别的安全特性,叫做“黏着位”(后续会讲到这个东西)

后面三位表示文件或者目录对应的umask八进制值,将每一个八进制位其转化为3位二进制

三位的八进制数分别代表了属主、属组和其他用户的读写权限,例如664代表了属组和属主成员都有读和写的权限,而其他用户只有读的权限。

掩码:指的是一串二进制数字,通过与目标数字的按位操作达到屏蔽指定位而实现需求。

Linux系统上默认的八进制umask值为022,但umask值只是个掩码它会屏蔽掉不想授予该安全级别的权限

对于文件来说,全权限是666,所有用户都有读和写的权限

对于目录来说,全权限是777,所有用户都有读写和执行的权限

所以文件一开始是666,减去umask值022后,剩下的文件权限就变成了644。

在大多数的Linux的发行版中,umask值通常会设置在/etc/profile启动文件

可以用umask命令为默认umask设置指定一个新值

将umask设置为026后,文件的权限变为640

将umask设置成026后,目录的权限变为751

chmod命令可以用来改变文件和目录的安全性设置

chmod options mode file

mode参数可以使用八进制模式或符号模式进行安全性设置八进制模式直接使用希望赋予文件的标准3位八进制权限码即可。

符号模式则更加复杂

[ugoa ]

[+-=]

[rwxXstugo]

第一组符号:u代表用户,g代表组,o代表其他,a代表上述所有

第二组符号:+表示像在现有权限上增加权限,-代表在现有权限上移除权限,=表示将权限设置为后面的值

第三组符号:表示代表作用到设置上的权限

 X:如果对象是目录或者它已有执行权限,赋予执行权限。 s:运行时重新设置UID或GID。 t:保留文件或目录。 u:将权限设置为跟属主一样。 g:将权限设置为跟属组一样。 o:将权限设置为跟其他用户一样。

u-x 移除了属主已有的执行权限ls的 -F 参数可以再具有执行权限的文件名后加一个星号*(这里被移除了)

改变所属关系

chown命令用来改变文件的属主

chgrp命令用来改变文件的默认属组

命令格式如下

chown options owner[.group] file

chown也可以同时改变属主和属组

也可以只改变属组

(注意:只有root用户能改变文件的属主,任何属主都可以改变文件的属组但前提是属主必须是原属组和目标属组的成员

chgrp命令可以改变文件或目录的默认属组

此时用户账户必须是文件的属主,除了能够更换属组之外,还得是新组的成。这是Linux共享文件的一个途径。

共享文件在Linux上的实现方式是创建组

创建新文件时,Linux会用默认的UID和GID给文件分配权限,如果想让其他人也能够访问文件,要么改变其他用户所在组的访问权限,要么就给文件分配一个包含其他用户的新默认组

chmod命令修改SGID或者SUID都可以实现大范围环境中创建文档并将文档与人共享。

SGID位强制某个目录下创建的新文件或目录都沿用该父目录的属组,而不是创建这些文件的用户的属组。这可以为系统的用户之间共享文件提供一个简便的途径。

猜你喜欢

转载自blog.csdn.net/misayaaaaa/article/details/84870599