linux入门之文件权限的管理(一)

对于系统中的用户及用户组有权限的限制,同样系统中各种文件也有其相应的权限。文件权限是系统最底层安全设定的方法,它限制了用户及用户组对文件的使用权利,只允许用户做相应操作。那么系统是怎样实现对权限的分配和管理的?

一、文件和目录的属性

  1. 查看文件和目录的属性
    ls -l file 用来查看文件的属性,我们用 ls -l 查看目录属性,发现查到的是该目录中的子目录。这时我们可以用 ls -ld test 查看目录的属性。在这里插入图片描述
  2. 文件和目录属性各部分的含义
  d | rwxr-xr-x | 2 |root | root | 6 | Mar 31 08:20 | test

(1)d 表示文件的类型
使用 file file/dir 命令可以查看文件或目录的类型 ,以下几种是常用的类型

  • l 快捷方式 (软连接)
  • d 目录
  • " - " 纯文本或空文件
  • b 块设备
  • c 字符设备
  • s 套接字 程序的一扇窗,可进入程序的内部,并进行交互
  • p 管道设备

(2) rwxr-xr-x 文件权限设定
文件的权限有三种,分别是读、写和执行;而对于文件面向的用户也有三种,分别是文件所有人(u)、所属组(g)和其他用户(o)。

  • u:文件拥有者可以做什么操作
  • g:文件所有组可以做什么操作
  • o:其他人对文件可以做什么操作

(3)一个数字

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

(4)文件的所有人
(5)文件的所有组
(6)一个数字

  • 对文件:文件的大小
  • 对目录:目录中子文件元数据的大小

(7)文件内容被修改的时间
(8)文件或目录的名称

二、所有人和所有组的更改

  1. 更改所有人
chown  username  file|dir       ##改变文件/目录所有人
chown user:group file|dir       ##改变所有人和所有组,user和group之间也可以用"."
chown -R user:group dir       ##改变该目录及子目录的所有人和所有组 

在这里插入图片描述
2. 更改所有组

chgrp groupname file|dir    ##改变所有组
chgrp -R group dir          ##改变该目录下及子目录下的所有组

在这里插入图片描述
注意:在使用chgrp username test 时,我们会发现只有该目录发生改变,该目录下的所有文件的所属组均未改变。因此我们可以利用 -R ,对目录下的文件一改到底。
三、权限的更改

  1. 认识权限
    (1)读 r
    对文件:是否可以查看文件中的内容
    对目录:是否可以查看目录中有什么子文件或子目录
    (2)写 w
    对文件:是否可以改变文件里面记录的字符
    对目录:是否可以对目录中子目录或子文件的元数据进行更改(元数据是指数据的属性)
    (3)执行 x
    对文件:是否可以通过文件名称调用文件内记录的程序
    对目录:是否可以进入目录
  2. 权限更改的方式
    (1)chmod更改权限
chmod (o|g|u)+rwx  file|dir   ##赋予权力
chmod (o|g|u)-rwx  file|dir   ##撤销权力
chmod  ug-r     file|dir      ##撤销所有人和所有组读的权利
chmod    +r  file|dir         ##更改所有位
chmod    -r  file|dir
chmod    +x  file|dir
chmod    -x  file|dir
chmod    +w  file|dir         ##只对所有人赋予权限
chmod    o=r-x file|dir 
chmod    -R o=rw  dir         ##改变该目录下子目录的权限

(2)umask更改权限
umask 系统建立文件是默认保留的权利

umask 077     ##临时设定系统预留权限为077

注意:umask只是临时修改权限的,退出terminal后权限未改变
在这里插入图片描述
(3)永久设置用户的权限

vim /etc/profile     ##修改系统文件中的umask
vim /etc/bashrc      ##修改shell配置文件中的umask 
source /etc/profile  ##让更改立即生效
source /etc/bashrc

在这里插入图片描述
注意:在执行完以上命令后,新建文件并查看它的权限,发现并未更改,我们需要使用sudo命令来告诉系统该用户具备这样的权限。

猜你喜欢

转载自blog.csdn.net/qq_43830639/article/details/88993111