Linux中文件权限管理

1.文件权限

1.文件权限的查看

ls -l    file
ls -ld   dir
ll       file
ll -d    dir

在这里插入图片描述
2.文件权限的读取
在这里插入图片描述
注:前7项各占一个字节,第8项占实际字节数
  [6]的内容对目录而言是元数据的大小,对文件而言是其内容所占的字节数
  建立一个空目录,其本身大小为6字节,其内的文件可以根据字节数计算
[1]文件的类型
-    ##空文件或者文本
d    ##目录
l    ##软链接(类似windows快捷方式)
s    ##socket 套接字
b    ##block 块设备
c    ##字符设备
[2]文件的权限
rw- | rw- | r–
  1  2   3
1.[u] 文件拥有者对文件能做什么操作
2.[g] 文件所有组对文件能做什么操作
3.[o] 其他人对文件能做什么操作
[3]
对文件:文件硬链接个数(文件内容被记录的次数)
对目录:目录中子目录的个数
[4]文件的所有人
[5]文件所有组
[6]
对文件:文件大小
对目录:目录中子文件元数据(matedate可以理解为文件的属性)大小
[7]文件的内容被修改的时间
[8]文件的名称

2.改变文件的所有人和所有组

chown|chgrp

chown      username     file|dir
chown      user.group   file|dir
chown -R   user.group   dir
chgrp      group        file|dir

使用root 新建的文件,其拥有者与拥有组都是root,我们可以使用上面命令对root.root进行更改:
在这里插入图片描述
在这里插入图片描述

2.对于文件权限的更改

1)对权限的理解
r(read)
  对文件:是否可以查看文件的内容
  对目录:是否可以查看目录里有什么字文件或字目录
w(write)
  对文件:是否可以修改文件的内容
  对目录:是否可以对目录中子目录或子文件的元数据进行更改
x(execute)
  对文件:是否可以通过文件名称调用文件内记录的程序
  对目录:是否可以进入目录
2)文件权限的更改 
  1.第一种方式:

chmod <u|g|o><+|-|=><r|w|x>  file|dir
                                 ##u=user;g=group;o=other
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

在这里插入图片描述
  2.第二种方式
   rwx  r=4  w=2  x=1
则:

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

使用命令:  chmod num file|dir
在这里插入图片描述

3.umask值

umask   系统建立文件时默认保留的权力
命令umask 可直接显示系统的umask值:
在这里插入图片描述
  这表示root在新建文件或者目录时,其文件权限一律为755,但是我们新建的/mnt/file4文件权限却为644,这是因为在新建文件时文件系统保留了各个位的x值。
命令:umask 077 ##临时设定系统预留权限为077
在这里插入图片描述
  临时更改umask值为077,则新建目录的权限为700,即drwx------
如何永久更改umask

vim /etc/profile       ##系统配置文件
vim /etc/bashrc      ##shell配置文件

vim /etc/profile:未更改之前:
在这里插入图片描述
       将root用户的umask值改为077:
在这里插入图片描述
同理:vim /etc/bashrc 中将umask值作相应改变:
在这里插入图片描述
更改完成后,使用下面的命令让更改立即生效:

source /etc/profile     
source /etc/bashrc

我们在使用umask命令,就可以看到umask值已经更改:
在这里插入图片描述

4.文件的特殊权限

1.sticky     ##粘制位
作用:
    只针对目录生效,当一个目录上有sticky权限时
    在这个目录中的文件只能被文件的所有者(即便是用户组不同也可以删除)删除
设定方式:

chmod o+t     dir
chmod 1xxx    dir

在这里插入图片描述
    我们可以看到,将/mnt/test目录other位权限改为rwt,将用户切换到普通用户tom,tom可以建立/删除属于自己的文件file2,但是不能删除属于student用户的文件file.

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

设定方式

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

在这里插入图片描述
    我们可以看到,将test目录的用户组改为tom,再使用 chmod g+s file|dir将group位的权限改为rws后,使用touch 新建的文件file2的用户组依然为tom,而修改权限前就已经存在的两个文件file、file1的属性仍不改变,说明更改过的权限只对更改后再新建的文件生效,对之前已经存在的文件不生效。
3.suid     ##冒险位
   只针对与2进制可执行文件
    当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人

设定方式

chmod u+s  file
chmod 4xxx file

5.acl权限

1.作用:让特定的用户对特定的文件拥有特定权限,开启acl权限之后,文件的权限以acl权限为标准,原本的权限失效。
2.acl列表查看
例如:

-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--        ##其他人的权限

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
 如果要恢复mask值setfacl -m m:rwx westos
在这里插入图片描述
  我们可以看到,当改变了mask值,用户与组后面会根据修改的mask值产生一个有效(effective)的权限,表明对于student用户只有r-x权限,tom组只有r- -权限。
5.acl的默认权限设定
acl默认权限只针对目录设定
"acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限"

setfacl -m d:u:student:rwx /mnt/westos   ##设置acl默认设置
setfacl -k /mnt/westos       ##取消acl默认设置

在这里插入图片描述
  当目录/mnt/test具有acl默认权限时,在此目录下新建的文件会继承目录中默认的acl 权限。
在这里插入图片描述
  当取消acl默认设置,其内的文件file0仍保留之前的acl权限,而新建的文件file1则不具有之前的acl权限。

猜你喜欢

转载自blog.csdn.net/weixin_41781946/article/details/82989432
今日推荐