<>Linux权限管理
linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险。
每个文件的权限针对三类对象进行定义
* 它的所有者(由u表示)
* 它的所有组(由g代表),代表该组的所有成员
* 其他(由o表示,除所有者和所有组的用户)
每个文件针对每类访问者定义了三种主要权限
读(由r表示)、写(或修改,用w表示)、执行(由x表示)
用户对文件的操作权限分为读、写和执行三种,分别用r、w、x表示。若用户没有某个权限,则在相应权限位用"-"占位,代表无此权限。
若文件具有x属性,是可执行的文件。具有x属性的文件一般是二进制程序文件或可执行的脚本文件。若目录具有x属性,则表示允许打开该目录中的文件,并且可用cd命令进入该目录。
只有root用户和文件拥有者才可以修改文件访问权限。
第一位代表文件类型,d代表文件夹,-代表普通文件
后面每三位一组
第一组表示文件拥有者、第二组表示文件所有组、第三组代表其他(除所有者和所有组的用户)
<>1、Linux权限操作相关命令
以下三个命令控制与文件关联的权限:
* chmod 更改文件的权限
* chown 更改文件的所有者
* chgrp 更改所有者组
<>chmod修改文件权限
选项
-R 对目标目录下的所有文件与子目录进行相同的权限变更(以递归的方式逐个变更)
示例:
chmod o=w file 表示给其他人授予写入file这个文件的权限
chmod go-rw file 表示删除file中组群和其他人的读和写的权限
当chmod u=rw g=rw o=r (赋予拥有者读写权限、所在组读写权限、其他人只读权限)失败了,因此使用一种数学方法
r对应4,w对应2,x对应1
对一个目录进行权限修改时,它的子目录权限不变,加上参数-r时可以递归赋权
<>chown 更改文件的所有者
语法格式
chown 选项 username filename
选项
-R 进行递归的持续变更,连同子目录下的所有档案都变更
<>chgrp 更改所有者组
语法格式
chgrp 选项 username filename
选项
-R 进行递归的持续变更,连同子目录下的所有档案都变更
<>2、Linux隐藏权限
chattr命令用于设置文件的隐藏权限,格式为"chattr [参数]
文件"。如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加"+参数",如果想要把某个隐藏功能移出文件,则需要追加"-参数"。
参数:
a 仅允许补充(追加)内容,无法覆盖/删除内容
man chattr 查看其他隐藏权限参数
lsattr命令用于显示文件的隐藏权限,格式为"lsattr [参数] 文件"。
在Linux系统中,文件的隐藏权限必须使用lsattr命令来查看,而Is之类的命令则看不出来,一旦使用lsattr命令后,文件上被赋予的隐藏权限马上就会原形毕露。此时可以按照显示的隐藏权限的类型(字母),使用chattr命令将其去掉:
#chattr +a test
#lsattr test
—a------./test
#rm -f test rm:无法删除"test" ,不允许的操作
#chattr -a test
#rm -f test