liunx操作之权限管理

ls -lR 目录 ##查看目录下的所有文件(包含目录里的文件)的属性
在这里插入图片描述
文件权限存在意义:
保证文件可以被可用的用户做相应操作
1.文件的类型

  -|rw-r--r--| 1| root| root| 323| Oct 8 2013 |langpacks.conf
    1     2      3   4      5    6       7          8

-      ##空文件,或者文本
d      ##目录
l      ##软链接,相当于windows的超链接
s      ##socket套接字(程序与外界的接口)
b      ##block块设备(文件以块的形式存储,比如u盘)
c      ##字符设备(用来显示字符的设备,可与cpu相交互,是系统用内存空间模拟出来的一个空间)
p	   ##管道

2.文件的权限

rw-|r--|r--
1   2   3

1.[u]用户能对文件做什么操作
2.[g]用户所在组能对文件做什么(组成员能作什么)
3.[o]其他人能对文件做什么
(3)文件的硬链接个数
文件被系统记录的次数=文件需要被删的次数
(4)文件所有人
(5)文件所有组
(6)对文件:文件大小
对目录:目录中子文件元数据大小
(元数据可理解为文件的属性大小)
(7)文件内容被修改的时间,不是修改属性的书简
(8)文件的名称
3.文件或目录的所有人或所有组更改
监视命令watch -n 1 'ls -lR /mnt/'
chown 更改后的所有人 文件/目录 ##更改文件或目录的所有人
在这里插入图片描述
chgrp 更改后的所有组 文件/目录 ##更改文件或目录的所有组
在这里插入图片描述
chown 更改后的所有人:更改后的所有组 ##更改文件或目录的所有人和所有组
在这里插入图片描述
加上-R 表示递归,适用于同时修改目录和目前下的文件的所以人和所有组
比如: chown -R root:root /mnt/ 更改目录下所有文件及目录的所有人和所有组(一起修改)

echo 输出命令
echo heheh 则输出heheh

在这里插入图片描述
4.如何改变文件权限
(1).对权限的理解
r:读
对文件:是否可以查看文件中的内容 —>cat file
对目录:是否可以查看目录的有什么子目录或者内容 —>ls dir
w:写
对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行更改
x:执行
对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
(2).更改方式

chmod <u|g|o><+|—|=><r|w|x>
chmod u+x   	  /mnt/file1
chmod g-r   	  /mnt/file2
chmod ug-r  	  /mnt/file3
chmod u-r,g+x     /mnt/file4
chmod -r          /mnt/file5
chmod o=r-x       /mnt/file6

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

   利用数字表示权限
        r w x
        r=4或0
        w=2或0
        x=1或0
    rwx|-wx|--x
     7   3   1
    chmod 731 /mnt/file1      
7=rwx
6=rw-
5=r-x
3=-wx
2=-w-
1=--x
0=---

在这里插入图片描述
##新建目录权限默认为755
##新建文件默认权限为644

5 .umask——系统中预留的权限

目的:为了安全起见,一个文件或者目录建立后系统需要回收一部分权力

umask ##系统建立文件是默认保留的权力
umask 177 ##临时设定系统预留权限为177

永久更改umask
(1).vim /etc/profile ##系统配置文件

    59  if[$UID -gt 199]&&["`id -gn`"="`id -un`"];then
	60      umask 002      ##普通用户的umask
	61  else
	62 	    umask 022      ##超级用户的umask
	63  fi

在这里插入图片描述

(2).vim /etc/bashrc ##shell配置文件

    70 if[sUID -gt 199]&&["`id -gn`"="`id -un`"];then
	71    umask 002			##普通用户的umask
	72 else
	73    umask 022			##超级用户的umask
	74 fi    	

在这里插入图片描述
(3).执行生效(source ##重读目录文件)

source /etc/profile    ##让更改立即生效
source /etc/bashrc

示例:对超级用户的umask值修改为177
在这里插入图片描述
hhh的权限是777-177=600
可见6=2+4=rw权限

6.特殊权限
1.sticky ##粘制位
作用:只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能由文件的所有者删除
设定方式:

chmod o+t      dir
chmod 1xxx     dir

未更改前
在这里插入图片描述
在这里插入图片描述
更改后
在这里插入图片描述
在这里插入图片描述
2.sgid ##强制位
作用:
对文件: 只针对二进制可执行文件
当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录: 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式

    chmod g+s   file|dir
	chmod 2xxx  file|dir

未执行前
在这里插入图片描述
执行后
在这里插入图片描述
3.suid ##冒险位
只针对与2进制可执行文件
当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
设定方式:

chmod u+s    file
chmod 4xxx   file 

ps ax -o comm,user,group 扫描所有进程,包含其所有组和所有人并显示出来
执行前在这里插入图片描述
执行后
在这里插入图片描述

7.acl权限列表

(1)作用:让特定的用户对特定的文件拥有特定权限

(2)acl列表查看

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

getfacl file  ##查看acl开启的文件的权限

在这里插入图片描述

#file : file       ##文件名称

#owner : root      ##文件拥有者

#group : root      ##文件拥有组

user::rw-         ##文件拥有人的权限

user::xixi:rwx     ##指定用户(xixi)的权限

group::r--        ##文件拥有组的权力

Mask::rwx       ##能赋予用户的最大权力值

Other::r--      ##其他人的权限

(3)acl列表的管理

getfacl  file  ##查看权限

setfacl –m u:username:rwx file     ##设定username对file拥有rwx权限

setfacl  -m g:group:rwx file       ##设定group组成员对file拥有rwx权限

satfacl  -x u:username file     ##从acl列表中删除username

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

在这里插入图片描述
(4)mask的值

在权限列表中mask标志能生效的权力值,当用chmod减小开启acl的文件权限时,mask值会发生改变

chmod g-w file  可同时改变mask的值

在这里插入图片描述
如果要恢复mask的值

setfacl –m m:rw file

在这里插入图片描述
(5)acl的默认权限设定

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

setfacl –m d:u:xixi:rwx /mnt/westos   ##设定acl权限
setfacl –k /mnt/westos                ##删除默认的acl权限

在这里插入图片描述
默认权限列表对已经存在的file文件无效,但对新建的hh文件目录有效

猜你喜欢

转载自blog.csdn.net/qwqq233/article/details/85715139