权限管理:

  • -rwx rwx rwx 1 root root   10 3月  12 16:13 a.py
    

左三位:定义user(owner)的权限

中三位:定义group的权限

右三位:定义other的权限

进程安全上下文:
进程对文件的访问权限应用模式:

  1. 进程的属主与文件的属主是否相同,如果相同,则应用属主权限
  2. 否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组权限
  3. 否则,就只能应用other的权限

权限:r:readable读

​ w:writable写

​ x:excutable执行

文件:r:可获取文件的数据

​ w:可修改文件的数据

​ x:可将此文件运行为进程

目录:r:可使用ls命令获取其下的所有文件列表

​ w:可修改此目录下的文件列表,即创建或删除文件

​ x:可cd至此目录中,且可使用ls -l来获取所有的

​ 详细属性信息

mode:rwxrwxrwx

ownership:user,group

image-20220315174609519

我们不难发现,3个“位置”上各自只有两种变化,例如 r-- 和 — 第一位不是r就是-

所以我们可以用二进制来表示权限,而3位二进制又能转换为8进制

这种转变方法我们称为"八进制表示法"

权限管理命令:chmod

image-20220315175058469

三类用户:

​ u:属主

​ g:属组

​ o:其他

​ a:所有

(1)chmod [OPTION]… MODE[,MODE]… FILE…

MODE表示法:

赋权表示法:直接操作一类用户的所有权限位

u=

g=

o=

a=

授权表示法,只管一类用户的具体权限

u+,u-

g+,g-

o+,o-

a+,a-

(2)chmod [OPTION]… OCTAL-MODE FILE…

八进制权限位授权

r=4,w=2,x=1,null=0

(3)chmod [OPTION]… --reference=RFILE FILE…

[root@zilongyun ~]# ll quanxian.txt
-rw-r--r-- 1 root root 22 3月  15 18:05 quanxian.txt
[root@zilongyun ~]# chmod +x quanxian.txt
[root@zilongyun ~]# ll quanxian.txt
-rwxr-xr-x 1 root root 22 3月  15 18:05 quanxian.txt
[root@zilongyun ~]# chmod --reference=user.txt quanxian.txt
[root@zilongyun ~]# ll quanxian.txt
-rw-r--r-- 1 root root 22 3月  15 18:05 quanxian.txt

选项:

-R: --recursive:递归参数

从属命令:chown,chgrp

chown命令:

选项:

-R: --recursive:递归参数

chown [OPTION]… --reference=RFILE FILE…

chgrp命令:

大理与chown命令相同,只是只能修改组

注意:仅root可更改属主和属组

思考:目录对文件有写权限,但对目录下的文件没有写权限,能否修改此文件内容?能否删除此文件

模拟一下试试,please?

练习题:

image-20220316004846884

umask:文件的权限的反向掩码,遮罩码

为了避免用户默认创建出来的文件权限为777等我们不想看到的结果

目录:

666-mask

文件:

777-mask

注意:之所以文件用666去减,表示文件默认不能拥有执行权限

umask命令;

umask:查看当前umask

umask MASK:设置umask

注意:此类设定仅对当前SHELL进程生效

install命令: -复制文件并设置属性

单源复制:

install [options] [-s] [–strip] source dest

多源复制:

install [options] [-s] [–strip] source… directory

创建目录:

install [options] [-d,–directory] directory…

选项

-c 可忽略;这是为了与老Unix版本的 install 相兼容.

   -d, --directory
          创建每个给定的目录以及任何缺失的父目录,
          按照命令行要求来设置所有者,组别和模式,或者设为默认值.
          它也授予任何它创建的父目录以这些属性. (这有别于SunOS 4.x的 install, 该
          install 授予其创建目录以默认的属性.)

   -D     创建 dest  的所有前面部分,只有最后一个除外,然后复制  source  到  dest.
          该选项在如上总览中列出的第一种格式中有用.  (fileutils-4.0中的新功能.)

   -g group, --group=group
          设置安装的文件或目录的组所有权为  group
          这可能是组名,或者是数字化组标识.

   -m mode, --mode=mode
          设置安装的文件或目录的权限为  mode,  这可以为八进制数,也可以为   chmod
          中的符号化的模式,且都以0开头.默认的模式是0755                        -
          对所有者可读,可写并且可执行,对于组用户和其它用户可读和可执行.

   -o owner, --owner=owner
          如果 install 有合适的特权(运行为root),则设置安装的文件或目录的所有权为
          owner.  默认为'root'.  owner 可以为用户名,也可以为数字化用户标识.

mktemp命令:产生唯一的临时文件名

mktemp [-q] [-u] template

常用选项:

-d:创建一个临时文件

-u:不创建临时文件,用来测试居多

[root@centos tmp]# mktemp temp.XXXXXX
temp.HdWcst

XXXXXX为随机字符,这里是mktemp的一种普遍用法,我们创建临时文件时,一般都会创建随机名来进行区分

[root@centos tmp]# mktemp -d temp.XXXXXX
temp.FSJ26b
[root@centos tmp]# ll -d temp.FSJ26b/
drwx------ 2 root root 6 3月  16 01:00 temp.FSJ26b/

注意:mktemp会将创建的临时文件名直接返回,因此,可通过命令引用保存起来

[root@centos tmp]# tempfile=$(mktemp temp.XXXXXXX)
[root@centos tmp]# echo $tempfile 
temp.UkA2S1d
Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐