目录
在电脑科学中,大多数现代文件系统都具有针对不同使用者或使用者组的管理访问权限的方法。这些系统控制着不同使用者对文件系统的可操作权限。
进程安全上下文
-
进程对文件的访问权限应用模型:
-
进程的属主与文件的属主是否相同;如果相同,则应用属主权限;
否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组圈子按;
否则,就只能应用other的权限。
-
权限
当在命令行中执行 ls -l 这个命令时,第一列的字符表示文件或目录的类型和权限,第一列的其余 9 个字符表示文件或目录的访问权限,分别对应三个字符一组的 rwx 权限。
-
rwx
-
r:readable,读取,表示读取权限
-
w:writeable,写,表示写入权限
-
x:excuteable,执行,表示执行权限
-
-:表示没有权限
-
-
rwxrwxrwx
-
左三位:定义user(owner)的权限
-
中三位:定义group的权限
-
右三位:定义other的权限
-
-
文件:
-
r:可获取文件的数据
-
w:可修改文件的数据
-
x:可将此文件运行为进程
-
-
目录:
-
r:可使用ls命令获取其下的所有文件列表
-
w:可修改此目录下的文件列表;即创建或删除文件
-
x:可cd至此目录中,且可使用”ls -l“来获取所有文件的详细属性信息;
-
-
权限模型
-
mode:rwxrwxrwx
-
owership:user,group
-
-
权限组合机制:
r=4,w=2,x=1
-
---,000,0
-
--x,001,1
-
-w-,010,2
-
-wx,011,3
-
r--,100,4
-
r-x,101,5
-
rw-,110,6
-
rwx,111,7
-
权限管理命令
注意:用户仅能修改属主为自己的那些文件的权限
-
chmod:用来变更文件或目录的权限
-
用法:
-
chmod [OPTION]... MODE[,MODE]... FILE...
-
chmod [OPTION]... OCTAL-MODE FILE...
- chmod [OPTION]... --reference=RFILE FILE...
-
-
三类用户
-
u:属主
-
g:属组
-
o:其他
-
a:所有
-
-
chmod [OPTION]... MODE[,MODE]... FILE...
-
mode表示法:
-
赋权表示法:直接操作一类用户的所有权限位
[root@localhost ~]# ll -rw-r--r--. 1 root root 0 May 25 09:17 cui.txt ## 添加权限 [root@localhost ~]# chmod u=rwx,g=rwx,o= cui.txt [root@localhost ~]# ls -l -rwxrwx---. 1 root root 0 May 25 09:17 cui.txt
-
授权表示法:直接操作一类用户的一个权限位
-
u+,u-
g+,u-
a+,u-
-
代码演示
[root@localhost ~]# ls -l -rwxrwx---. 1 root root 0 May 25 09:17 cui.txt ## 去掉user的执行权限 [root@localhost ~]# chmod u-x cui.txt [root@localhost ~]# ls -l -rw-rwx---. 1 root root 0 May 25 09:17 cui.txt [root@localhost ~]# chmod o+r cui.txt ## 给其他用户添加读的权限 [root@localhost ~]# ll -rw-rwxr--. 1 root root 0 May 25 09:17 cui.txt ## 给用户和属组添加执行权限 [root@localhost ~]# chmod ug+x cui.txt [root@localhost ~]# ll -rwxrwxr--. 1 root root 0 May 25 09:17 cui.txt ## 给所有用户去掉读的权限 [root@localhost ~]# chmod -r cui.txt [root@localhost ~]# ll --wx-wx---. 1 root root 0 May 25 09:17 cui.txt ## 去掉所有写的权限 [root@localhost ~]# chmod -w cui.txt [root@localhost ~]# ll ---x--x---. 1 root root 0 May 25 09:17 cui.txt ## 添加读的权限,但是只对user添加写入的权限 [root@localhost ~]# chmod +w cui.txt [root@localhost ~]# ll --wx--x---. 1 root root 0 May 25 09:17 cui.txt
-
-
chmod [OPTION]... OCTAL-MODE FILE...
-
八进制权限
-
代码演示
## 修改为user和group为读写 [root@cui ~]# chmod 660 cui.txt [root@cui ~]# ll -rw-rw---- 1 root root 0 May 25 21:32 cui.txt
-
-
chmod [OPTION]... --reference=RFILE FILE...
-
引用式修改
-
代码演示
## 引用/etc/yum.repos.d的权限给cui.txt [root@cui ~]# ll /etc/ drwxr-xr-x. 2 root root 220 Oct 2 2020 yum.repos.d [root@cui ~]# chmod --reference=/etc/yum.repos.d cui.txt [root@cui ~]# ll total 0 -rwxr-xr-x 1 root root 0 May 25 21:32 cui.txt
-
-
-
-
选项
-
-R,--recursive:递归修改(通常在授权表示法中用)
-
-
从属关系管理命令
chown,chgrp
注意:仅管理员可以修改文件的属主和属组
-
chown:修改属主的命令(也可以修改属组)
-
chown [OPTION]... OWNER] FILE... chown [OPTION]... --reference=RFILE FILE...
-
选项:
-
-R,--recursive:递归修改
-
-
代码演示
## 修改文件的属主为centos [root@cui ~]# ll cui/ -rwxr-xr-x 1 root root 0 May 25 21:32 cui.txt [root@cui ~]# chown centos -R cui/ [root@cui ~]# ll cui/ -rwxr-xr-x 1 centos root 0 May 25 21:32 cui.txt ## 同时更改属主和属组 [root@cui ~]# chown -R centos:centos cui/ [root@cui ~]# ll cui/ -rwxr-xr-x 1 centos centos 0 May 25 21:32 cui.txt [root@cui ~]# chown -R --reference=/etc/yum. yum.conf yum.repos.d/ ## 通过引用来修改 [root@cui ~]# chown -R --reference=/etc/yum.repos.d/ cui/ [root@cui ~]# ll cui/ -rwxr-xr-x 1 root root 0 May 25 21:32 cui.txt
-
-
-
chgrp:修改属组
-
chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE...
-
-
umask:文件的权限反向掩码,遮罩码;(防止多余的权限)
-
文件:
-
666-umask
注意:之所以文件用666去减,表示文件默认不能拥有执行权限
umask:023
666-023=643,如果出现执行权限(对于目录没有这种要求),则+1,为644
-
-
目录:
-
777-umask
-
-
umask命令:
注意:此类设置仅对当前的shell进程有效
-
umask:查看当前umask
-
umask MASK:设置umask,默认为0022
-
代码演示
[root@cui ~]# umask 0022 [root@cui ~]# touch 1.txt [root@cui ~]# ll -rw-r--r-- 1 root root 0 May 26 15:35 1.txt [root@cui ~]# umask 027 [root@cui ~]# touch 2.txt [root@cui ~]# ll total 0 -rw-r--r-- 1 root root 0 May 26 15:35 1.txt -rw-r----- 1 root root 0 May 26 15:35 2.txt
-
-
install:复制文件,并且可以设置文件属性
-
用法
-
install [OPTION]... [-T] SOURCE DEST(单元复制) install [OPTION]... SOURCE... DIRECTORY(多元复制) install [OPTION]... -t DIRECTORY SOURCE...(多元复制) install [OPTION]... -d DIRECTORY...(创建目录)
-
-
常用选项
-
-m,--mode=MODE,设定文件的权限,默认为755;
-
-o,--owner=OWNER,设定目标文件属主:
-
-g,--group=GROUP,设置文件属组
-
-d,--directory,创建目录
## 将文件复制到/opt/下 [root@cui ~]# ll -rw-r--r-- 1 root root 0 May 26 15:35 1.txt [root@cui ~]# install 1.txt /opt/ [root@cui ~]# ll /opt/ -rwxr-xr-x 1 root root 0 May 26 15:51 1.txt ## 注意这里的权限变成了755 ## 指定选项 [root@cui ~]# ll -rw-r----- 1 root root 0 May 26 15:35 2.txt [root@cui ~]# install -o centos -g centos -m 644 2.txt /opt/ [root@cui ~]# ll /opt/ -rw-r--r-- 1 centos centos 0 May 26 16:06 2.txt ## 创建新的文件夹 [root@cui ~]# install -d hello [root@cui ~]# ll drwxr-xr-x 2 root root 6 May 26 16:16 hello ## 创建一个为hello的目录,权限为755
-
-
-
mktemp命令:创建临时文件或临时目录(一般放在“/tmp”目录下,一个月之后会删)
注意:mktemp会将创建的临时文件直接返回,因此,可直接通过命令引用保存起来
-
用法
-
mktemp [OPTION]... [TEMPLATE]
-
-
常用选项
-
-d,--directory:创建临时目录
-
-u,-u, --dry-run:只执行命令,没有结果;干跑
-
-
-