1.使用文件权限符
1.1 权限符号含义:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
| - | r | w | x | r | w | x | r | - | x |
对象类型 | 组1: | 对象的 | 属主 | 组2: | 对象的 | 属组 | 组3: | 系统其他 | 用户 | |
八进制码 | 7 | 7 | 5 | |||||||
二进制码 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
第1个符号的种类:代表了对象的类型
符号 | 含义 | |
1 | - | 代表文件 |
2 | d | 代表目录 |
3 | l | 代表链接 |
4 | c | 代表字符型设备 |
5 | b | 代表块设备 |
6 | n | 代表网络设备 |
之后跟了3组字符的编码,每一组定义了3种访问权限:
符号 | 含义 | |
1 | r | 代表对象是可读的 |
2 | w | 代表对象是可写的 |
3 | x | 代表对象是可执行的 |
4 | - | 代表没有该位置上的权限 |
1.2 默认文件权限:
umask命令用来设置所创建文件和目录的默认权限。
Linux文件权限码:
权限 | 二进制码 | 八进制码 | 描述 | |
1 | --- | 000 | 0 | 没有任何权限 |
2 | --x | 001 | 1 | 只有执行权限 |
3 | -w- | 010 | 2 | 只有写入权限 |
4 | -wx | 011 | 3 | 有写入和执行的权限 |
5 | r-- | 100 | 4 | 只有读取权限 |
6 | r-x | 101 | 5 | 有读取和执行的权限 |
7 | rw- | 110 | 6 | 有读取和写入的权限 |
8 | rwx | 111 | 7 | 有全部权限 |
2.改变安全性设置
2.1改变权限
命令:chmod
格式:chomd options mode file
mode参数一般用八进制码进行安全性设置:
如:chmod 760 newfile
options参数为chmod命令提供了另外一些功能:
如:‘-R’选项可以让权限的改变递归的作用到文件和子目录。
2.2 改变所属关系
即改变文件的属主。
命令:
- chown:改变文件的属主;
- chgrp:改变文件的默认属组;
chown命令:
格式:chown options owner[.group] file
可用登录名或UID来指定文件的新属主。
如:chown dan newfile
chown 命令还支持同时改变文件的属主和属组:
chown dan.shared newfile
‘-R’参数配合通配符可以递归地改变子目录和文件的所属关系;
‘-h’参数可以改变该文件的所有符号链接文件的所属关系;
chgrp命令:
修改文件或目录的默认属组。
如: chgrp shared newfile
3.共享文件
Linux系统上共享文件的方法是创建组。
Linux还为每个文件和目录存储了3个额外的信息位:
- 设置用户ID(SUID):当文件被用户使用时,程序会以文件属主的权限运行;
- 设置组ID(SGID):对文件来说,程序会以文件属组的权限运行;对目录来说,目录中创建的新文件会以目录的默认属组作为默认属组;
- 粘着位:进程结束后文件还驻留(粘着)在内存中;
其中SGID位对文件共享特别重要,启用SGID位后,可以强制在一个共享目录下创建的新文件都属于该目录的属组,这个组也就成为了每个用户的属组。
SGID可以通过chmod命令设置,它会加到标准3位八进制值之前(组成4位八进制值)。
chmod命令中SUID,SGID和粘着位的八进制值:
二进制 | 八进制 | 描述 | |
1 | 000 | 0 | 所有位都清零 |
2 | 001 | 1 | 粘着位置位 |
3 | 010 | 2 | SGID为置位 |
4 | 011 | 3 | SGID和粘着位置位 |
5 | 100 | 4 | SUID位置位 |
6 | 101 | 5 | SUID和粘着位置位 |
7 | 110 | 6 | SUID和SGID位置位 |
8 | 111 | 7 | 所有位都置位 |