一、文件权限
(1)文件的权限主要针对三类对象定义:
u:属主,owner
g:属组,group
o:其他,other
权限有三种:
r:可读
w:可写
x:可执行
(2)权限的定义
普通文件:
r:可读文件的内容 (cat、less、more、vim)
w:可以修改文件内容
x:可以执行此文件 (执行脚本)
目录文件:
r:可以查看到目录下有哪些文件
w:只有w无意义
x:可以进入此目录
(3)权限判断
所有人-》所有组-》其他人
先判断是否是文件的所有人,如果是,则执行所属人的权限后结束,如果不是所有人,则判断是否所属组(可以是主组也可以是辅助组),如果是,则执行所属组的权限后结束,如果不是则执行其他人的权限后结束。
================================================================
二、 修改文件或目录的属主和属组
(1)chown 改变某个文件或目录的所有者和所属组,
chown(选项)(参数)
-R 递归处理,将指定目录下的所有文件与子目录一并处理
-v 显示命令处理过程
(2)chgrp 改变文件或目录所属的用户组。
-R 递归处理,将指定目录下的所有文件与子目录一并处理
-v 显示命令处理过程
========================================================
三、修改文件权限
(1)使用字符修改
chmod u+x txt
a=u+g+o
(2)使用数字修改
chmod 777 txt
u + g + o =7
4 + 2 + 1 =7
(3)默认权限
目录 :755
文件:644
#umask =0022
生成文件或目录时,默认值=777-umask。755=777-022;644=666-022
===================================================================
四、命令的权限
(1)命令的权限
有的时候能否使用命令作用于对象的时候,并不只取决于对象是否有权限,还应考虑命令的权限。
命令的属主属组都是root,在正常情况下,命令的权限都是755,因此任何用户都可以使用。如:touch,cat这类的命令。
但是有些命令,如groupmems,它的权限为750,因此它只能由root执行。
(2)三个特殊权限
就算文件的权限为000,root用户也能读能写。
SUID权限:当对一个文件加上SUID权限之后(u的第三位为s),任何拥有执行该文件权限的人,在执行的过程时都临时拥有该文件所属者的权限。
SGID权限:当对一个文件加上SGID权限后(g的第三位为s),任何拥有执行该文件权限的人,在执行的过程中临时获得该文件所属组的权限。当对一个目录加上SGID权限后,任何对该目录有wx权限的用户在该目录下创建的文件及目录的所有属组均为该目录的所有组。
Sticky权限:当对一个目录加上Sticky权限(o的第三位加上t),该目录下的文件仅其所属主才能删除。
@@@ 注释:特殊权限虽然占据着x的位置,但是并不代表替换了x(而是以s:拥有x权限、S没有x权限)
=============================================================
五、隐藏属性
(1)查看属性:lsattr
(2)修改属性:chattr
+ i 不能删除不能改
+ a 不能删除,只能追加