Linux之文件权限管理命令

一、查看文件属性。

1、命令ls -l filename 查看长格式形式查看文件详细属性。

ls -l file1      ##查看文件file1的详细属性

结果:

- |rw-r--r--| 1 |kiosk| kiosk| 0| Jul 21 09:18 | file1
[1]   [2]     [3] [4]    [5]  [6]       [7]       [8]

[1] 文件的类型

##空文件,或者文本
d ##目录
l ##软链接
s ##socket 套接字
b ##block 块设备
c ##字符设备

[2]文件的权限

rw- r- - r- -
1 2 3

1、[u] 文件拥有者对文件有什么权利
2、[g] 文件所有组对文件有什么权力
3、[o] 其他人对文件能做什么操作

[3]

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

[4]

文件的所有人

[5]

文件的所有组

[6]

(1)对文件:文件的大小
(2)对目录:目录中子文件的元数据(可以理解为文件的属性)大小

[7]

文件的内容被修改的时间

[8]

文件的名称

二、如何改变一个文件或者目录的所有者及所属组呢?

chown yan 文件名/目录名			##改变一个文件/目录的所有者
chgrp student 文件名/目录名		##改变一个文件/目录的所属组
chown yan:student 文件名/目录名	##同时改变一个文件/目录的所有者为yan,所属组为student。

chown -R yan 目录名				##递归改变一个目录及目录下文件或者目录的递归改变所有者
chgrp -R student 目录名			##递归改变改变一个目录及其子目录或者子文件的改变所属组
chown -R yan:student 目录名		##同时改变一个目录及其子文件的所有者为yan,所属组为student。

1、改变文件的所有人,所属组。

准备工作:

用root用户建立一个file文件并查看其所有者所属组均为root。
在这里插入图片描述

改变file文件的所有者及所属组。

chown yan file	  			    ##改变一个文件/目录的所有者
chgrp yan file 					##改变一个文件/目录的所属组
chown yan:student 文件名/目录名	##同时改变一个文件/目录的所有者为yan,所属组为student。

结果:
在这里插入图片描述

同时改变文件所有人及所属组:
Linux之文件权限管理命令_第1张图片

2、改变目录的所有人,所属组。

准备工作:用root用户递归建立目录dir,及dir1。

如图所示:
Linux之文件权限管理命令_第2张图片使用命令:

chown -R yan dir				##递归改变dir目录及目录下文件或者目录的递归改变所有者
chgrp -R student dir			##递归改变dir目录及其子目录或者子文件的改变所属组
chown -R yan:student dir1		##同时改变dir1目录及其子文件的所有者为yan,所属组为student。

结果如图所示:
Linux之文件权限管理命令_第3张图片

三、如何改变文件的权限?

1.对权限的理解

r
对文件:是否可以查看文件中的内容 —>cat file
对目录:是否可以查看目录中有什么子文件或者子目录 ----> ls dir
w
对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行更改
x
对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录

2.更改方式

1、用r,w,x来改变文件权限。

格式:chmod 所有人|所属组|其他人 + 读|写|执行权限 文件|目录

chmod <+|-|=>   file|dir
chmod u+x file1
chmod g-r file2
chmod o+w file3
chmod -r file4         ##删除所有用户的读权限

如图所示:
Linux之文件权限管理命令_第4张图片
注意:也可以用chmod o=r-w file 来设置其他人用户的读,执行权限。

2、用数值的方法设定文件和目录的权限。

r  w  x
4  2  1          #r取4,w取2,x取1

范例:

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

示例代码:

chmod 777 file2

效果图:
Linux之文件权限管理命令_第5张图片

四、系统默认权限umask

umask:可以理解为系统收回的权限

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

图示:
Linux之文件权限管理命令_第6张图片
PS:系统默认收回了所有用户的执行权限。

永久更改umask

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

Linux之文件权限管理命令_第7张图片

vim /etc/bashrc         ##shell配置文件
70	if [ $UID -gt 199 ] && [ "`id -gn`"="`id -un`" ]; then
71		umask 002
72 	else
73		umask 077
74	fi

在这里插入图片描述

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

在这里插入图片描述

五、特殊权限

特殊权限是用于弥补一般权限不能实现的功能,是针对文件设置的一种特殊功能。

1.sticky ##粘制位

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

chomd o+t dir
chmod 1XXX dir
示例:
没有加sticky权限,一个公共目录用户可以删除其他用户建立的文件。
Linux之文件权限管理命令_第8张图片
给dir目录加sticky权限后:
Linux之文件权限管理命令_第9张图片

2.sgid ##强制位

作用
对文件: 只针对与二进制可执行文件
当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录:
当目录上有sgid权限时任何人在此目录建立的文件都属于目录的所有组

设定方式:
chmod g+s file|dir
chmod 2XXX file|dir
对文件设置sgid权限:
准备工作:
设置/bin/watch文件的所有组为student
Linux之文件权限管理命令_第10张图片
用root用户执行/bin/watch文件:
在这里插入图片描述
用ps命令查看

ps ax -o comm,user,group | grep watch

在这里插入图片描述

对目录设置sgid权限:
Linux之文件权限管理命令_第11张图片

3.suid ##冒险位

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

设定方式
chmod u+s file
chmod 4XXX file
准备工作:
Linux之文件权限管理命令_第12张图片
用root用户执行/bin/watch 文件
在这里插入图片描述
查询系统的watch进程:
在这里插入图片描述

六、acl权限列表

1.作用

让特定的用户对特定的文件拥有特定的权限

2.acl列表查看

ls -l file
-rw-rwxr--+ 1 root root 0 Jul 21 15:45 file
		  #+表示acl开启

getfacl file     ##查看acl开启的文件的权限
## file: file    ##文件的名称
## owner: root   ##文件的所有者
## group: root   ##文件的所有组
user::rw-       ##文件所有者的权限
user:kiosk:rwx   ##指定用户的权限
group::r--        ##文件所有组的权力
mask::rwx         ##能赋予用户的最大权力
other::r--	  ##其他人的权限

示例:
Linux之文件权限管理命令_第13张图片

3.acl列表的管理

getfacl file
setfacl -m u:username:rwx file		##设定username对file拥有rwx权限
setfacl -m g:group:rwx file			##设定group对file拥有权限
setfacl -x u:username file			##从acl列表中删除username
setfacl -x g:group file				##从acl列表中删除group
setfacl -b file						##关闭file上的acl列表

设置acl权限:
Linux之文件权限管理命令_第14张图片
删除acl权限:
Linux之文件权限管理命令_第15张图片
关闭acl列表:
Linux之文件权限管理命令_第16张图片
注意:打开acl权限后,用ls -l 查询到的文件权限是假的,真实的文件权限需要用getfacl filename查看,如果使用chmod g-w file 会减去mask里面的权限,重置用 setfacl -m m:rwx file

4.mask值

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

chmod g-x file2

Linux之文件权限管理命令_第17张图片
如果要恢复mask值

setfacl -m m:rwx file

Linux之文件权限管理命令_第18张图片

5、acl的默认权限设定

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

setfacl -m d:u:student:rwx /mnt/dir		##设定acl默认权限
setfacl -k /mnt/dir		##取消目录的acl默认权限

Linux之文件权限管理命令_第19张图片
新建立文件:继承默认权限
Linux之文件权限管理命令_第20张图片
Linux之文件权限管理命令_第21张图片

你可能感兴趣的:(Linux)