博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下的权限管理
阅读量:2346 次
发布时间:2019-05-10

本文共 5999 字,大约阅读时间需要 19 分钟。

一.文件权限存在的意义

文件权限的存在是系统最底层安全设定方法之一,保证文件可以被可用的用户做相应操作。

二.文件权限的查看

ls  -l      file             查看文件信息ls  -ld     dir             查看目录本身信息ll          file            ##相当于ls –l filell   -d      dir            ##相当于ls  -ld   dir ls   –LR     dir            ##递归显示子目录

ls -l file

在这里插入图片描述
ls -ld dir
在这里插入图片描述

ll file ##相当于ls –l file

ll -d dir
在这里插入图片描述

注意:alias           ##利用该命令可以查询到此系统下的命令的别名

ls –LR dir

在这里插入图片描述
总结:通过使用命令ls –lR dir 可以递归查看dir(目录)下的所有目录、文件和目录下的文件

三.权限的读取

d|rw-rw-r–| |kiosk|kiosk| 0 |Jul 21 18:26|file[1]  [2]  [3]  [4]  [5]  [6]      [7]     [8]

在这里插入图片描述

[1]文件的类型:

- 空文件,或者文本
d 目录
l 软连接,相当于快捷方式
s socket套接字(一个程序对外开放的门)
b block块设备
c 字符设备
p 管道

[2]文件的权限

| rw- |rw- | r–
三位为一位,分别代表的是user,group,other(简写为u,g,o)
u:文件拥有者对文件能做什么操作
g:文件所有组对文件能做什么操作
o]:其他人对文件能做什么操作

[3]:

对文件:文件硬链接个数(文件内容被记录的次数)
对目录:目录中子目录的个数

[4]文件的所有人

[5]文件的所有组

[6]:

对文件:文件大小
对目录:目录中子文件元数据(matedata元数据可以理解为文件案的属性)大小,文件夹的时间戳不算

[7]

文件的内容被修改的时间

[8]文件的名称

三.如何改变文件所有人和所有组

chown

chown           username        file|dir      更改文件拥有者chown           user-group      file|dir       更改文件或者目录的用户和用户组chowm    -R     user-group      dir           递归更改目录的用户和用户组

watch监控

在这里插入图片描述
(为了实验效果明显方便,我们用watch监控)

1.更改文件拥有者

在这里插入图片描述
2.改变更改文件或者目录的用户和用户组在这里插入图片描述
递归更改了目录的用户
在这里插入图片描述
chgrp

chgrp        group     file|dir        改变文件或者目录的用户组chgrp   -R   group        dir           递归改变目录的用户组

改变文件的用户组

在这里插入图片描述
递归改变目录的用户组
在这里插入图片描述
四.如何改变权限

chmod       可以通过+(增加权限)或者-(去掉权限)来改变权限

(1) 对权限的理解

r:
对文件:是否可以查看文件中的内容 —→cat file
在这里插入图片描述
对目录:是否可以查看目录中有什么子文件或者子目录 --→ls dir
在这里插入图片描述

w:

对文件:是否可以改变文件里面记录的字符

在这里插入图片描述

不可编辑,这个文件是只读的
在这里插入图片描述
在这里插入图片描述
可以看出结果:我们可以对文件进行编辑了。

对目录:是否可以对目录中子目录或子文件的元数据进行更改

在这里插入图片描述
x:
对文件:是否可以通过文件名称调用文件内记录的程序
先建立一个文件,在文件里写入date命令
在这里插入图片描述
在这里插入图片描述
sh是一个命令解释器。这里加上r是因为只有读了才能知道是什么命令,才能够执行

对目录:是否可以进入目录

在这里插入图片描述

(2) 更改方式

== chmod <u/g/o><+/-/=><r/w/x> file/dir 对文件或者目录进行修改权限==

chmod   u+x    /mnt/westos/testchmod   g-r    /mnt/westos/hellochmod   ug-r   /mnt/westos

在这里插入图片描述

chmod  u=r,g+x     /mnt/file1 chmod    –r        /mnt/file2chmod   o=rw-      /mnt/file3

在这里插入图片描述

(3) rwx对应的数字

r 4
w 2
x 1

(分别是2的进制)

7=rwx,6=rw-,5=r-x,4=r–,3=-wx,2=-w-,1=–x,0=—

在这里插入图片描述

随堂测试:

在这里插入图片描述
1.新建用户要求我们在前面已经做过(前一篇博客)这里就不做解释。
首先新建目录
在这里插入图片描述
已经建好的用户
在这里插入图片描述
修改权限
在这里插入图片描述
检查:
在这里插入图片描述

五.umask

umask         系统建立文件时默认保留的权利

(1)查看umask的值是多少:

超级用户的umask

在这里插入图片描述
普通用户的umask
在这里插入图片描述
临时设定umask

umask     XXX          XXX是你要预留的权利,比如umask   007

总结:

系统默认中,超级用户是777-022
普通用户是777-022-111

永久更改umask

1.
vim /etc/profile ##系统配置文件

59 if [ $UID –gt 199 ] && [ “id –gn” = “id –un” ];then60 umask 022       ##普通用户的umask61 else62 umask 077      ##超级用户的umask63 fi

在这里插入图片描述

在这里插入图片描述
原始的如上图,将其数字改为下图的样子
在这里插入图片描述
2.
vim /etc/bashrc ##shell配置文件

70 if [ $UID –gt 199 ] && [ “id –gn” = “id –un” ];then71 umask 00272 else73 umask 07774 fi

在这里插入图片描述

在这里插入图片描述
改为下图
在这里插入图片描述
3.
source /etc/profile ##调用,让更改立即生效
source /etc/bashrc

在这里插入图片描述

结果:

超级用户由原来的0022变成0077

在这里插入图片描述
普通用户由0002变成0022
在这里插入图片描述

六.特殊权限

1.

sticky ##粘制位

作用:只针对目录有效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除

设定方式:

chmod    o+t     dirchmod    1xxx    dir     两者功能相同

实验如下

1.

首先可以创建一个监控,实时观看/westos目录的权限变化在这里插入图片描述

tom建立一个file1,harry建立一个file2

在这里插入图片描述

tom用户把harry建立的文件file2删除了,也就说明别人可以删除不是自己建立的文件

在这里插入图片描述
为了解决这个问题,我们可以进行以下操作

在这里插入图片描述

总结:当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除

sgid ##强制位

设定方式:

chmod    g+s      file/dirchmod    2xxx     file/dir        两者功能相同

作用:

1)对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

实验如下:

用watch -n 1 " ls -ld /westos ; ls -l /westos " 进行监控

在这里插入图片描述

1.mkdir    /westos2.ls  -ld  /westos  此时可以看到/westos的目录权限为755

在这里插入图片描述

3.useradd   westos            增加一个用户4.chgrp     westos  /westos   在watch监控下可以看到原来用户组root变成了westos5.touch     /westos/file          可以看到此时的file用户组还是root

在这里插入图片描述

为了解决这个问题,我们进行一下操作

6.chmod  g+s  /westos   给用户组加权限,使任何人在此目录中建立的所有文件都属于此目录的所有组7.ls   -ld    /westos        可以看见权限改变,用户组的权限改为r-s

在这里插入图片描述

touch /westos/file1 可以看到file1的用户组为westos
在这里插入图片描述
再次检测:

su   -   westos      切换到普通用户westostouch /westos/file2  失败,因为不具有写的权力 exitsu   -    rootchmod g+w /westos   注意:这一步也可以写在前面,也可以直接chmod 777 /westos                       在前面设定之后就可以在westos用户直接建立/westos/file3su   -    westostouch  /westos/file3  可以看到即使是普通用户westos建立的file3 它的文件用户组依旧是westos

在这里插入图片描述

也可以在再建立普通用户,在里面建立文件,看是否用户组属于westos

在这里插入图片描述

总结:用了chmod g+s /westos 任何人在此目录中建立的所有文件都属于此目录的用户组

2)对文件:只针对与二进制可执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组

实验如下:

因为对文件的时候只对二进制可执行文件有效,所以我们用==/bin/watch==进行实验

对进程的监控 ps -ax -o user,group,comm | grep watch

在这里插入图片描述

1.ls  -l  /bin/watch         查看/bin/westos2./bin/watch -n 1 date       运行一个进程3.用ps -ax -o user,group,comm | grep watch监控   发现用户是root用户组也是root4.ctrl+c 退出进程5.chgrp westos /bin/watch     将/bin/watch 的用户组改为westos。6./bin/watch -n 1 date         运行一个进程7.ps -ax -o user,group,comm | grep watch监控  发现我们修改了用户组,但是root的用户组没改变

在这里插入图片描述

但是此时我们需要将文件用户组改为我们设定的用户组

1.chmod   g+s   /bin/watch   赋予这个文件权限,将其用户组改为我们设定用户组2. ls     -l   /bin/watch    查看/bin/westos 发现用户组的权限改为r-s

在这里插入图片描述

1. /bin/watch -n 1 date       运行一个进程2.ps -ax -o user,group,comm | grep watch监控  发现root用户的用户组变成了westos3.useradd  cui                建立一个新的用户  (已经建立就不用建立了)4.su - cui                    切换到普通用户5./bin/watch -n 1 date         运行一个进程6.用ps -ax -o user,group,comm | grep watch监控    发现watch命令用户是cui 用户组已经改为了westos

在这里插入图片描述

说明用此命令,任何人执行此文件产生的进程,它的用户组都属于文件的用户组(也就是我们设定的用户组)

3

.suid ##冒险位

设定方式:

chmod   u+s   filechmod   4xxx   file       两者功能相同

作用:只针对与二进制可执行文件,当文件上有suid时任何人执行这个文件中程序产生的进程都属于文件的所有人

实验如下:

在这里插入图片描述

此时我们需要无论谁产生的这个进程,都属于我们的设定的文件所有人
步骤如下:
在这里插入图片描述
结果如下:
在这里插入图片描述
再次验证:
在这里插入图片描述
总结:当文件上有suid时任何人执行这个文件中程序产生的进程都属于文件的拥有者

七.acl权限列表

(1)作用:让特定的用户对特定的文件拥有特定权限
(2)acl列表查看

-rw-rwxr–+  1  root  root 0 Jul 21 14:25 file      1中权限中的“+”即为acl开启

在这里插入图片描述

getfacl file查看acl开启的文件的权限
在这里插入图片描述

file : file 文件名称
owner : root 文件拥有者
group : root 文件拥有者
user::rw- 文件拥有人的权限
user::kiosk:rwx 指定用户(kiosk)的权限
group::r– 文件拥有组的权力
mask::rwx 能赋予用户的最大权力值
other::r– 其他人的权限

(3)acl列表的管理

从acl列表增加

setfacl –m u:harry:rwx file          ##设定harry对file拥有rwx权限setfacl –m u:harry:0 file            ##设定harru对file拥有0权限setfacl –m g:shengchan:rwx file      ##设定shengchan对file拥有rwx权限

在这里插入图片描述

从acl列表删除

setfacl –x u:harry file              ##从acl列表中删除用户harrysetfacl –x g:shengchan file          ##从acl列表中删除组shengchan

在这里插入图片描述

关闭acl列表

setfacl  -b  file                     ##关闭file上的acl列表

在这里插入图片描述

上面的‘+“消失不见了,说明关闭了acl列表

(4)mask的值

在权限列表中mask标志能生效的权力值,当用,mask值会发生改变

实验如下

用watch命令监视:

在这里插入图片描述

设定westos对/mnt/file拥有rw权限

在这里插入图片描述

在这里插入图片描述如果要恢复mask的值,输入以下命令:chmod g+w /mnt/file 或者setfacl –m m:rw /mnt/file
在这里插入图片描述
在这里插入图片描述
(5)acl的默认权限设定

acl默认权限只针对目录设定,“acl权限只针对设定完成之后新建的文件或目录生效,而已经存在的文件是不会继承默认权限的”

setfacl  –m  d:u:student:rwx  /mnt/westos      设定acl默认权限

在这里插入图片描述

在这里插入图片描述

setfacl  –k  /mnt/westos        删除设定的默认权限

在这里插入图片描述

转载地址:http://hvjvb.baihongyu.com/

你可能感兴趣的文章
Hadoop Hdfs 配置
查看>>
tsung集群测试
查看>>
oracle定时删除表空间的数据并释放表空间
查看>>
解决文件提示: /bin/ksh^M: bad interpreter: bad interpreter:No such file or directory
查看>>
ajaxanywhere jsp 使用
查看>>
如何静态化JSP页面
查看>>
XML 与 Java 技术: 用 Castor 进行数据绑定
查看>>
Python未知领域系列:(附Python学习教程+Python学习路线)Python高级教程之面向对象
查看>>
盘点Python 面向对象编程最容易被忽视的知识点
查看>>
Python:一个可以套路别人的python小程序
查看>>
Python教程:Python数据类型之字典
查看>>
Python基础教程:python的数据类型
查看>>
写给那些想学Python的人,建议收藏后细看
查看>>
数据全裸时代,你的隐私有多容易获取?
查看>>
分析http代理报错问题
查看>>
Python学习教程:Python入门笔记整理
查看>>
常用排序算法总结
查看>>
Java输入输出
查看>>
MSSQL数据库常见问题
查看>>
Java8 Lambda
查看>>