linux中系统权限的管理

  1. 文件属性的查看:
    ls -f filename
    #####长列表查看文件属性#####
    文件的查看:
    linux中系统权限的管理
    “-”:表示文件类型
    -:普通文件 d:目录 c:字符设备 s:套接字 p:管道 b: 块设备 l: 链接
    “rw-r–r--”: 表示文件的权限
    前三个字母“rw-”表示文件拥有者的权限
    中间三个字母“r–”表示文件所属组的权限
    后三个字母“r–”表示文件对于其他人的权限
    “1”: 对于文件表示文件内容被系统记录的次数
    对于目录表示目录中文件属性的字节数
    “root”:文件的拥有者
    “root”:文件属于的组
    “0”:表示文件的大小
    mar 31 12:08 文件最后一次被修改的时间
    file 文件名

  2. 文件的权限:

2,文件的权限

rw- r-- r–
| | |
u g o

u:文件的拥有者对文件可以读写

g:文件组成员对文件可读

o :其他人对文件可读

r权限
对于文件:可以查看文件的字符
对于目录:可以查看目录中的文件信息
w权限
对于文件:可以更改文件内的字符
对于目录:可以在目录中添加删除文件
x权限
对于文件:可以运行文件内记录的程序动作
对于目录:可以进入目录

  1. 字符的方式修改文件的权限:
    chmod u+x file1 ##file1拥有者添加x权限
    chmod g+w file1 ##file1拥有组添加w权限
    chmod u-x,g+w file1 ##file1拥有者去掉x权,file1拥有组添加w权限
    chmod ugo-r file2 ##file2的用户组其他人去掉r权限

  2. 用数字的方式修改权限:

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 修改后的权限 文件名
chmod 777 file
linux中系统权限的管理
这样ugo都可以读,写,执行。

  1. 系统文件权限设定:

从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
linux中系统权限的管理
这里我们可以看到umask值为0022
umask 077
#临时设定系统预留权限为077###
如何永久更改umask,那么就用到了下面的方法
vim /etc/profile
##系统配置文件##

linux中系统权限的管理

如图所示,只要更改umask的值然后保存退出就可以永久更改了
if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
umask 002
##普通用户的umask##
umask 077
##超级用户的umask##
vim /etc/bashrc ##shell配置文件
if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
umask 002
else
umask 077
文件设置完成不能生效,需要系统进行读取文件信息
source /etc/bashrc
source /etc/profile
####系统进行读取文件信息,让设置立即生效###
以上两个umask必须一致

  1. 文件拥有者及所属组的管理:
    chown 用户名 文件名
    ##此命令可以用来更改文件的所有者##
    chgrp 用户名 文件名
    ##此命令可以改变文件的所属组##
    chown 用户名1:用户名2 文件名
    ##此命令可以改变文件所有者和所属组,这样就可以把两个一起更改,方便快捷##
    linux中系统权限的管理

  2. 特殊权限:

sticky
###粘制位
t权限:
只针对目录,当一个目录由t权限后那么目录的文件只能被拥有者删除:
设定方式:chmod o+t 目录名
或者 t =1 或者 chmod 1xxx 目录名
linux中系统权限的管理
suid
###冒险位###
只针对二进制可执行文件,文件内记录的程序产生的进程为文件的拥有者,和进程的发起人没有关系
设定方式: chmod u+s 文件名
或者 suid=4 或者 chmod 4xxx 文件名
linux中系统权限的管理
sgid
###强制位###
对于文件:只针对二进制文件,任何人运行文件,程序产生的进程的属组为文件的所在组
对于目录:目录含有s权限后,目录下新建的文件的属组自动归属到该目录的属组,和文件的建立者无关
chmod g+s file/dir
chmod 2xxx file/dir
linux中系统权限的管理

  1. 设定acl权限:
    定义:
    让特定的用户对特定的文件拥有特定的权限。
    设定格式

setfacl -m <u|g>:<用户名|组名>:权限 文件|目录
-m #设定

acl列表查看:

getfacl file
##查看acl开启的文件的权限###
-m
##设定##
file: westos/
##文件名称###
owner: root
##文件所有人###
group: root
##文件所有组###
user::rwx
##拥有者权限###
user:student:rwx
##特殊用户权限##
group::
— ##组权限###
mask::rwx
##权限掩码###
other::—
##其他*限###

acl列表管理:
在超级用户的身份下创建 /tmp/file 并进行编辑,然后切换到westos用户查看文件,我们发现westos用户是查看不了/tmp/file 里的内容的
linux中系统权限的管理
切换超级用户设置acl列表desktop用户对文件具有rw权限
linux中系统权限的管理
再次切换到westos用户发现现在可以查看/tmp/file
linux中系统权限的管理
对于所有组而言,所有组拥有对/tmp/file文件的rw权限,那么此所有组内的成员都会拥有/tmp/file文件的rw权限。

删除列表中的用户或者组
setfacl -b filename
###关闭acl权限列表###
setfacl -x <u|g>:<用户名|组名> 文件|目录
删除westos对/tmp/file 权限:
linux中系统权限的管理

  1. acl默认权限的设定:

acl默认权限只针对目录设定(只对目录本身生效)
mask用来标实能够赋予用户最大权限
当用chmod改变文件普通权限时可能会被破坏,
修复 setfacl -m m:rwx 文件名称
linux中系统权限的管理