文件权限
1.passwd命令
使用passwd命令可以设置或修改用户的口令,普通用户和超级用户都可以使用passwd命令,但是普通用户只能修改自己的口令,超级用户可以设置或修改任何用户的口令。
如果passwd命令后面不接任何选项或用户名,则表示修改当前的口令。
passwd 【选项】 【用户名】
-S :查询用户的口令状态。
-d:删除用户口令,仅限于root权限操作。
-l:锁住用户使其无法更改密码。
-u;解除锁定。
-x:两次口令修改的最大天数,后面接数字。
-n:两次口令修改的最小天数,后面接数字。
-w:在距多少天使提醒用户修改口令。
-i:在口令过期多少天时,用户被禁用。
chage 参数 用户
-d ##用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码
-m ##最短有效期
-M ##最长有效期
-W ##警告期
-I ##用户非活跃天数
-E ##帐号到期日格式 -E "YYYY-MM-DD"
1.文件属性的查看
用“ls-l”命令来查看
-|rw-r--r--.|1| root| root| 85 |Jan 2 12:12|file
— ————————— — ———— ———— —— ———————————— ————————
1 2 3 4 5 6 7 8
1."-":文件类型
- ##普通文件
d ##目录
c ##字符设备
s ##套接字
p ##管道
b ##快设备
l ##连接
2."rw-r--r--":文件读写权限
rw-|r--|r--
* $ @
r(read读取) 对文件而言,该用户具有读取文件内容的权限;对目录来说,该用户具有浏览目录的权力。
w(write写入)对文件而言,该用户具有新增、修改文件内容的权限;对目录来说,该用户具有删除、移动目录内文件的权限。
x(执行)对文件而言,该用户具有执行文件的权限;对目录来说,该用户具有进入目录的权限。
-表示不具有该项权限。
3."1":
对文件:文件内容被系统记录的次数
对目录:目录中文件属性的字节数
4."root":文件所有人
5."root":文件所有组
6."85":文件内容的大小
7."Jan 2 12:12":文件最后一次被修改的时间
8."file":文件名字
2.文件所有人所有组的管理
chown -R 【用户、组】 【文件/目录】
chown username file|dir ##更改文件的所有人
chown username.groupname file|dir ##更改所有人所有组
chown -R username dir ##更改目录本身及里面所有内容的所有人
chgrp -R groupname dir ##更改目录本身及里面所有内容的所有组
3.字符方式修改该文件权限
chmod [-R] <+|-|=>
rw-|r--|r--
u g o
u:文件所有人对文件可以读写
g:文件组成员对文件可读
o:其他人对文件可读
u优先匹配,g次优先,o当u,g不匹配时匹配
初始预设权限
添加或删除权限
5.数字方式修改该文件权限
在linux中
r=4
w=2
x=1
文件权限数字表示方式
rw-|r--|r--
u g o
u=rw-=4+2+0=6
g=r--=4+0+0=4
o=r--=4+0+0=4
所以文件权限表示为644
chmod 修改后权限值 file
chmod 777 file
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---
初始权限
文件所有人,所有组和其他人对文件可读可写可执行
对文件所有人可读可写可执行,对文件所有组只可写入,对其他人只可执行
3.用户权力下放
1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户
下放权力配置文件:/etc/sudoers
2.下放权力的方法
*)超级用户执行visudo进入编辑/etc/sudoers模式
*)格式:
获得权限用户 主机名称=(获得到的用户身份) 命令
kiosk desktop0.example.com=(root) /usr/sbin/useradd
kiosk用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd
3.执行下放权限命令
sudo 命令 ##如果第一次执行sudo需要输入当前用户密码
在/etc/sudoers中如果设置如下:
test desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd
表示用户调用sudo命令的时候不需要自己密码
4.系统默认权限的设定
从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
所以系统设定新建文件或目录会去掉一些权限
设定方式
umask ##查看系统保留权限默认为022,创建文件,查看文件属性为
umask 077 ##修改该系统保留权限为077,此设定为临时设定,只当前shell中生效
永久设定方式:
vim /etc/bashrc ##shell
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002 ##普通用户umask
72 else
73 umask 077 ##超级用户umask
74 fi
vim /etc/profile ##系统
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002 ##普通用户umask
61 else
62 umask 077 ##超级用户umask
63 fi
umask已经从022变为077
以上两个文件umask设定值必须保持一致
source /etc/bashrc
source /etc/profile
让设定立即生效
创建一个新文件,查看文件属性为
5.文件的访问控制
(1)设定
setfacl -m :
-m #设定
u #用户
g #组
##删除列表中的用户或者组####
setfacl -x :
##关闭列表
setfacl -b 文件|目录
设定kiosk用户对/mnt/file2有读写权限
file:文件名称
owner:文件所有人
group;文件所有组
flags:标记
user::拥有者权限
user:特殊用户权限
group;组权限
mask:权限掩码
other:其他人权限
-d:设定默认的acl规则,针对目录而言。
setfacl -m d:u:用户名:权限 目录名
指某一用户对这个目录有某种特殊的权利(r、w、x)
设置以后这个用户在这个目录中默认有此项权利
注意:当文件上有权限列表时,ls -l 能看到的权限是假的
6.特殊权限
1.suid 冒险位
只针对二进制可执行文件,
文件内记录的程序产生的进程的所有人为文件所有人
和进程发起人身份无关
设定方式:
chmod u+s file
suid=4
chmod 4xxx file
2.sgid 强制位
对文件:只针对二进制可执行文件,
任何人运行二进制文件
程序时程序产生的进程的所有组都是文件的所有组
和程序发起人组的身份无关
对目录:当目录有sgid权限后,目录中新建的所有文件的所有组
都自动归属到目录的所有组之中,和文件建立者所在的组无关
设定方式:
chmod g+s file|dir
sgid=2
chmod 2xxx file|dir
3.sticky 粘制位
t权限:
只针对与目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除
设定方式:
chmod o+t direcotry
t=1
chmod 1777 direcotry
文件隐藏属性 chattr,lsattr
注意:chattr命令只能在Ext2/Ext3文件系统上面生效。
chattr(设置文件的隐藏属性)
chattr [+-=] [ASacdistu] 文件名或目录名
参数:
+ 增加某一个参数,其他原本存在参数不变。
- 删除某一特殊参数,其他原本存在参数不变。
= 接后面仅有的参数
A:使文件的访问时间不会被修改。
S:一般文件是异步写入磁盘,设置之后将会同步写入磁盘。
a:设置之后这个文件只能增加数据,不能删除和修改数据,只有root才能设置这个权限。
c:设置之后将会自动压缩此文件,在读取的时候将会自动解压缩。在储存的时候先压缩再储存。
d:当dump程序执行的时候,可是此文件不备份。
i:可以使一个文件不能被删除,改名,设置连接也无法写入或添加数据,只有root才能设置。
s:如果这个文件被删除,他将会被完全从硬盘中删除。
u:与s参数功能相反,即使被删除也能从磁盘中找回。
lsattr(显示文件隐藏权限)
参数;
-a :将隐藏的属性也显示出来
-d:如果链接的是目录,仅列出目录本身的属性而非目录内的文件名。
-R:连同子目录的数据也一并列出来