权限管理:
-
-rwx rwx rwx 1 root root 10 3月 12 16:13 a.py
左三位:定义user(owner)的权限
中三位:定义group的权限
右三位:定义other的权限
进程安全上下文:
进程对文件的访问权限应用模式:
- 进程的属主与文件的属主是否相同,如果相同,则应用属主权限
- 否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组权限
- 否则,就只能应用other的权限
权限:r:readable读
w:writable写
x:excutable执行
文件:r:可获取文件的数据
w:可修改文件的数据
x:可将此文件运行为进程
目录:r:可使用ls命令获取其下的所有文件列表
w:可修改此目录下的文件列表,即创建或删除文件
x:可cd至此目录中,且可使用ls -l来获取所有的
详细属性信息
mode:rwxrwxrwx
ownership:user,group
我们不难发现,3个“位置”上各自只有两种变化,例如 r-- 和 — 第一位不是r就是-
所以我们可以用二进制来表示权限,而3位二进制又能转换为8进制
这种转变方法我们称为"八进制表示法"
权限管理命令:chmod
三类用户:
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?
练习题:
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