一.文件权限存在的意义
系统最底层安全设定的方法之一,保证文件可以被可用的用户做相应的操作。
二.文件权限的读取
ls -l file
ls -l dir
ll file
##(ll = ls -l)
ll -d dir
三.文件权限的读取
- | rw-rw-r-- | 1 | kiosk | kiosk | 0 | Sat Jul 21 09:20:18 CST 2018 | file
[1] [2] [3] [4] [5] [6] [7] [8]
[1]
文件的类型- ##空文件,或者文本 d ##目录 l ##软连接(快捷方式) s ##socket套接字(与外界的接口) b ##block块设备(U盘插入时会产生) c ##字符设备(显示字符,接受输入输出)
[2] 文件的权限
rw-|rw-|r--
1 2 31.[u]文件拥有者对文件能做什么操作
2.[g]文件所有组对文件能做什么操作
3.[o]其他人对文件能做什么操作
[3] 对文件:文件硬链接个数(文件内容被记录的次数)
对目录:目录中子目录的个数
[4] 文件的所有人
[5] 文件所有组
[6] 对文件:文件大小
对目录:目录中子文件元数据(matedate 可以理解为文件属性)大小
[7] 文件内容被修改的时间
[8] 文件名称
四.如何改变文件的所有人和所有组
chown | chgrp
chown 对文件所有人进行更改
chgrp 对文件所有组进行更改对文件内所有内容进行更改好时,须用-R进行递归
chown username file|dir chown user.group file|dir chown -R user.group dir chgrp group file|dir chgrp -R group dir
五.如何改变文件的权限
1.对权限的理解
r 对文件:是否可以查看文件中的内容 -->cat file
对目录:是否可以查看目录中有什么子文件或者子目录
w 对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行更改
x 对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
2.更改方式
chmod <u|g|o><+|-|+><r|w|x> file|dir chmod u+x /mnt/file1 chmod g-x /mnt/file2 chmod ug-r /mnt/file3 chmod u-r,g+x /mnt/file4 chmod -r /mnt/file5 chmod o=r-x /mnt/file6
数字方法:
rwx
210
r=4
w=2
x=1
eg:
r-x|r--|--x
5 4 1
chmod 541 /mnt/file1
附:7=rwx 6=rw- 5=r-x 4=r-- 3=-wx 2=-w- 1=--x 0=---
六.umask
umask 系统建立时默认保留的权力
umask 077临时设定系统预留权限为077
永久更改umask
vim /etc/profilr ##系统配置文件
if [ $UID -gt 199] && [ "'id -gn'" = "'id -un'"];then
umask 002 ##普通用户的umask
else
umask 077 ##超级用户的umask
fi
vim /etc/dashrc ##shell配置文件
if [ $UID -gt 199] && [ "'id -gn'" = "'id -un'"];then
umask 002
else
umask 077
fi
以上两文件须改一致
source /etc/profile ##让更改立即生效
source /etc/bashrc
七.特殊权限
1.sticky ##粘制位置
作用: 只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件所有者删除
设定方式:chmod o+d dir
chmod 1XXX(使用root建立/westos/下4个文件并设定满权限,使用student可以删除文件,设定粘置位之后,使用student无法删除文件)
2.sgid ##强制位置
作用:
对文件:只针对于二进制可执行文件,
当文件上有sgid时任何人执行此文件产生的进程都属于文件组
对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组设定方式:chmod g+s file|dir
chmod 2XXX file|dir
3.suid ##冒险位
只针对于2进制可执行文件,当文件上有suid时任何人执行这个文件中记的程序产生的进行都属于文件所有人
(2进制可执行文件:)
设定方式
chmod u+s file
chmod 4XXX file
eg:chown username /bin/rm chmod 4755 /bin/rm ##限制rm功能
八.acl权限列表
1.作用
让特定的用户对特定的文件拥有特定权限
2.acl列表查看
-rw-rwxr--+ 1 root root 0 Jul 21 15:45 file
^
acl开启 (此时+号之前不准确,须用grtfacl查看)getfacl file ###查看acl开启的文件的权限 #file:file ##文件名称 #owner:root ##文件拥有着 #group:root ##文件拥有组 user::rw- ##文件拥有人的权力 user:kiosk:rwx ##指定用户的 group::r-- ##文件拥有组的权力 mask::rwx ##能赋予用户的最大权力伐值 other::r-- ##其他人的权限
3.acl列表的管理
setfacl -m u:username:rwx file ##设定username对file拥有rwx的权力
setfacl -m g:group:rwx file ##设定group组成员对file拥有rwx权力
setfacl -x u:username file ##从acl列表中删除username
setfacl -b file ##关闭file上的acl列表
4.mask值
在权限列表中mask标示能生效的权力值
当用chmod减小开启acl的文件权限时mask值会发生改变
chmod g-w westos
5.acl的默认权限设定
acl默认权限只针对目录设定
acl权限只位针对设定完成之后新建立的文件或目录生效,而已存在的文件是不会继承默认权限setfacl -m d:u:student:rwx /mnt/westos
限制超级用户
lsattr file ##显示文件隐藏属性
chattr +i file ##改变文件属性,+i使得root也无法对文件进行操作
七八综合练习题如下:
参考答案下翻:
groupadd shengchan ##建立生产组
groupadd caiwu ##建立财务组
groupadd jishu ##建立技术组
useradd -G shengchan tom ##将tom附加给生产组
useradd -G caiwu harry ##将harry附加为给财务组
useradd -G jishu leo ##将leo附加给技术组
useradd admin ##建立用户admin
chgrp shengchan /sc ##将生产组作为/sc的所有组
chgrp caiwu /cw ##将财务组作为/cw的所有组
chmod 1777 /pub ##将/pub目录设定为所有用户可写(777),
##用户只能删除自己所建立的 文件(1XXX)
chmod 2770 /sc ##只有生产组可以操作,且所有文件产生后属于生产组
chmod 2770 /cw ##只有财务组可以操作,且所有文件产生后属于财务组
setfacl -m u:admin:rwx /sc ##给admin用户设定对/sc目录的读写执行权限
setfacl -m u:admin:rwx /cw ##给admin用户设定对/cw目录的读写执行权限