文件和目录的权限与归属
访问权限 ls -l命令可以查看指定文件或目录的权限。
arduino
[root@localhost /]# ll opt //ls -l 可以查看文件目录的属性
总用量 0
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
权限格式:rwx rw- --x
r读:
文件:可以看里面的内容。
文件夹:可以用ls看文件夹中的文件列表。
w 写入:文件:可以修改文件的内容。(必须要有读的权限才能对其更改)
文件夹:新建文件(文件夹),删除文件(文件夹),移动文件(文件夹)。(在没有读权限下还是可以操作的)
x 执行:文件:可以运行(命令、脚本)颜色是绿色。
文件夹:执行是最小的权限,没有执行什么都做不了所以必须得有。
归属(所有权):
- 属组:拥有该文件或目录的组账号(文件的拥有组)
- 属主:拥有该文件或目录的用户账号(文件的主人,文件的拥有者,拥有最高权限)
- 其他人:除了上面两种
数字表示法:
读:100------4
写:010------2
执行:001------1
最高权限:111------7
将二进制转化成十进制
修改文件属性权限命令:chmod
chmod命令格式:chmod 【选项】 指明属主,属组,其他人+权限 文件
常用选项:
选项 功能 | |
---|---|
-R | 递归 |
u | 属主 |
g | 属组 |
o | 其他人 |
a | 所有人 |
+ | 加上 |
- | 减去 |
= | 赋予 |
- chmod u+r 文件名(为属主加上读的权限)
- chmod u-r 文件名(为属主减去读的权限)
- chmod u+r 文件名(为属主)
- chmod a+r 文件名(为所有人都加上读的权限)
演示:
csharp
[root@localhost /]# ll zhutou //查看当前该文件的权限
-rw-r--r--. 1 root root 0 4月 7 13:53 zhutou
[root@localhost /]# chmod a+rwx zhutou //给当前文件权限升级为777
[root@localhost /]# ll zhutou
-rwxrwxrwx. 1 root root 0 4月 7 13:53 zhutou
也可写成数字表示法,会较为方便一些
arduino
[root@localhost /]# ll zhutou //查看当前该文件权限
-rw---x--x. 1 root root 0 4月 7 13:53 zhutou
[root@localhost /]# chmod 777 zhutou //给所有人加上最高权限
[root@localhost /]# ll zhutou //查验
-rwxrwxrwx. 1 root root 0 4月 7 13:53 zhutou
设置文件和目录的归属chown、chgrp
设置文件属性的属主与属组
chown命令格式:
选项 | 功能 |
---|---|
chown 属主 文件名 | 只改变文件的属主 |
chown :属组 文件名 | 只改变文件的属组 |
chown .属组 文件名 | 只改变文件的属组 |
chown 属主:属组 文件名 | 属主属组都改变 |
chown 属主.属组 文件名 | 属主属组都改变 |
常用选项:
-R:递归修改指定目录下所有文件、子目录的归属
演示:
chown既可以改变属主也可以改变属组
sql
[root@localhost zhubao]# ll //查看当前文件夹下所有文件的属性
总用量 4
-rw-r--r--. 1 root root 0 4月 8 15:04 1
-rw-r--r--. 1 root root 0 4月 8 15:04 2
-rw-r--r--. 1 root root 0 4月 8 15:04 3
-rw-r--r--. 1 root root 9 4月 8 15:05 hello
[root@localhost zhubao]# chown zhubao.zhubao 1 //将文件1的属主与属组改为zhubao
[root@localhost zhubao]# ll
总用量 4
-rw-r--r--. 1 zhubao zhubao 0 4月 8 15:04 1
-rw-r--r--. 1 root root 0 4月 8 15:04 2
-rw-r--r--. 1 root root 0 4月 8 15:04 3
-rw-r--r--. 1 root root 9 4月 8 15:05 hello
sql
[root@localhost zhubao]# chown zhutou:zhutou 2 //换一种写法得出结果相仿
[root@localhost zhubao]# ll
总用量 4
-rw-r--r--. 1 zhubao zhubao 0 4月 8 15:04 1
-rw-r--r--. 1 zhutou zhutou 0 4月 8 15:04 2
-rw-r--r--. 1 root root 0 4月 8 15:04 3
-rw-r--r--. 1 root root 9 4月 8 15:05 hallo
sql
[root@localhost zhubao]# chown :guinv 3 //改变文件3的属组为guinv
[root@localhost zhubao]# ll
总用量 4
-rw-r--r--. 1 zhubao zhubao 0 4月 8 15:04 1
-rw-r--r--. 1 zhutou zhutou 0 4月 8 15:04 2
-rw-r--r--. 1 root guinv 0 4月 8 15:04 3
-rw-r--r--. 1 root root 9 4月 8 15:05 hallo
权限掩码umask
设置新建文件夹或目录的默认权限
csharp
[root@localhost /]# mkdir zhutou //在系统中创建新文件夹默认权限为755
[root@localhost /]# ll -d zhutou
drwxr-xr-x. 2 root root 6 4月 8 15:37 zhutou
csharp
[root@localhost zhutou]# touch 11 //在系统中默认创建文件权限为644
[root@localhost zhutou]# ll 11
-rw-r--r--. 1 root root 0 4月 8 15:40 11
umask作用:
- 控制新建的文件或者目录的权限。
- 默认权限去除umask的权限为新建的文件
- 规定了新建文件和新建文件夹落地权限
777(最高权限)-022(umas设置权限)=755(新建文件的默认权限)
umask查看: umask
umask设置: umask 0022
文件夹:这里的0022,第一个0为特殊权限,可以忽略,剩下的022为默认777基础上没有的权限,所以文件夹默认权限为755(rwx r-x r-x)。
文件:出于安全性考虑新建文件的最高权限为666 ,执行权限对于文件而言相对是比较危险的,所以一开始文件是没有执行权限的(相当于文件的初始权限是在最高权限777-111开始的)所以便得出666-022=644(rw- r-- r--)
umask设置格式
umask后面跟上数值可以设置umask值(umask 0000)
演示:
1.将umask改为0000创建文件夹(权限拉满)
[root@localhost
[root@localhost zhutou]# mkdir zhubao
[root@localhost zhutou]# ll -d zhubao
drwxrwxrwx. 2 root root 6 4月 8 16:04 zhubao
2.将umask改为0123 新建文件则变为666-123=644(-rw-r--r--)文件结果遇到奇数加一偶数不变。
[root@localhost
[root@localhost zhutou]# touch 123
[root@localhost zhutou]# ll 123
-rw-r--r--. 1 root root 0 4月 8 16:07 123
这样的umask只起到一个临时效果如果想要永久改变默认的话需写到/etc/profile文件下
csharp
[root@localhost zhutou]# vim /etc/profile //写入profile文件里可永久有效
[root@localhost zhutou]# umask
0123
文件的特殊权限SUID、SGID、sticky bit
三种特殊权限
suid:如果拥有该权限,把当前用户当做文件的属主
guid:如果拥有该权限,把当前用户当成文件的属组
stike:拥有该权限的文件夹,该文件内的文件只有超级管理员和属主可以删除其他人不可以删除。