权限管理模型
1.发起进程的属主与文件的属主是否相同,如果相同则应用属主权限
2.否则查看与文件的属组是否相同,如果相同则应用属组权限
3.否则只能应用others的权限
r:readable,读
w:writable,写
x:excutable,执行
文件的权限
r:可读取/获取文件的数据
w:可修改文件的数据
x:可将此文件发起运行为进程
- 所有命令都有执行权限
- 自己创建的文件一般都没有执行权限的,文件默认是不应该有执行权限的
目录的权限
r:可使用ls命令获取其下的所有文件列表
w:可修改此目录下的文件列表,创建/删除文件
x:可cd至此目录,可使用ls -l获取所有文件的详细属性信息
664 775 750 600 755 640
修改文件权限
Mode表示法:chmod[OPTION]... MODE[,MODE]... FILE...
u:属主 g:主组 o:其他 a:所有
[root@clc tmp]# chmod g=rxw abc.txt
[root@clc tmp]# ll abc.txt
-rw-rwxr--. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod g=x,u=rxw abc.txt
[root@clc tmp]# ll abc.txt
-rwx--xr--. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod uo=wx abc.txt
[root@clc tmp]# ll abc.txt
--wx--x-wx. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod u+r abc.txt
[root@clc tmp]# ll abc.txt
-rwx--x-wx. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod uo-x abc.txt
[root@clc tmp]# ll abc.txt
-rw---x-w-. 1 root root 0 May 12 20:38 abc.txt
八进制表示法:chmod[OPTION]... OCTAL-MODE FILE...
[root@clc tmp]# chmod 660 abc.txt
[root@clc tmp]# ll abc.txt
-rw-rw----. 1 root root 0 May 12 20:38 abc.txt
[root@clc tmp]# chmod 775 abc.txt
[root@clc tmp]# ll abc.txt
-rwxrwxr-x. 1 root root 0 May 12 20:38 abc.txt
chmod[OPTION]... --reference=RFILE FILE...
[root@clc tmp]# ll /var/log/messages
-rw-------. 1 root root 435845 May 12 20:52 /var/log/messages
[root@clc tmp]# chmod --reference=/var/log/messages abc.txt
[root@clc tmp]# ll abc.txt
-rw-------. 1 root root 0 May 12 20:38 abc.txt
-R:递归修改
[root@clc tmp]# chmod -R g+r /tmp/test
- 用户仅能修改属主为自己的文件的权限
修改文件属主/属组
chown[OPTION]... [OWNER][:[GROUP]] FILE...
-R:递归修改
间隔符用 . 或 :都行
[root@clc docker]# ll -a
total 4
drwxr-xr-x. 2 root root 33 May 12 21:33 .
drwxrwxrwt. 19 root root 4096 May 12 21:33 ..
-rw-r--r--. 1 root root 0 May 12 21:33 a
-rw-r--r--. 1 root root 0 May 12 21:33 b
-rw-r--r--. 1 root root 0 May 12 21:33 c
[root@clc docker]# chown -R clc /tmp/docker docker文件夹及其子文件属主被改为clc
[root@clc docker]# ll -a
total 4
drwxr-xr-x. 2 clc root 33 May 12 21:33 .
drwxrwxrwt. 19 root root 4096 May 12 21:33 ..
-rw-r--r--. 1 clc root 0 May 12 21:33 a
-rw-r--r--. 1 clc root 0 May 12 21:33 b
-rw-r--r--. 1 clc root 0 May 12 21:33 c
[root@clc docker]# chown -R clc.clc /tmp/docker
[root@clc docker]# ll -a
total 4
drwxr-xr-x. 2 clc clc 33 May 12 21:33 .
drwxrwxrwt. 19 root root 4096 May 12 21:33 ..
-rw-r--r--. 1 clc clc 0 May 12 21:33 a
-rw-r--r--. 1 clc clc 0 May 12 21:33 b
-rw-r--r--. 1 clc clc 0 May 12 21:33 c
chown[OPTION]... --reference=RFILE FILE...
可参考其他文件修改权限
思考:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改文件内容?能否删除文件?
答:不能修改,但能删除
- 用户对文件是否有写权限决定了此用户能否修改文件内容
- 用户对目录是否有写权限决定了此用户能否增加/删除目录下文件
- 仅管理员能修改文件的属主/属组
umask
文件的权限反向掩码,遮罩码
文件:666-umask
目录:777-umask
之所以文件用666去减,表示文件默认不能拥有执行权限
假如umask为023,666-023=643,此时other有执行权限不符合规定
在此类情况下(减得的结果中有执行权限),需要将其加1
umask的默认值为0002
[clc@clc ~]$ umask
0002
修改umask
[clc@clc ~]$ umask 023
install
install - 复制文件并设置属性
install [OPTION]... [-T] SOURCE DEST
单源复制
install [OPTION]... SOURCE... DIRECTORY
多源复制
install [OPTION]... -t DIRECTORY SOURCE...
多源复制
install [OPTION]... -d DIRECTORY...
创建目录
-m:指定目标文件权限,如果不指定,默认为755
-o:设置目标文件属主
-g:设定目标文件属组
-d:创建目录(不能用来复制目录)
mktemp
创建临时文件或临时目录
mktemp [OPTION]... [TEMPLATE]
[root@clc ~]# mktemp /tmp/test.XXX
/tmp/test.pHO
[root@clc ~]# mktemp /tmp/test.XXX
/tmp/test.Foo
[root@clc ~]# mktemp /tmp/test.XXX
/tmp/test.qxS
-d :创建临时目录
文件操作
vipw和vigr