今天总结的是linux系统文件的权限,下面先看一张图,了解下文件权限
1、权限位说明
linux文件或目录的权限位是有9个权限位来控制,每三位一组,它们分别是文件属主的读、写、执行,文件属组的读、写、执行以及其他用户的读、写、执行。
下面是测试结论:
linux 普通文件的读、写、执行权限说明:
可读r :表示具有阅读文件内容的权限
可写w :表示具有新增、修改文件内容的权限
(特别提示:删除文件(修改文件名等))的权限是受父目录的权限控制,和文件本身的权限无关。
可执行x:表示具有执行文件的权限(文件本身要能够执行,普通用户同时还需要r的权限,root用户不给r权限也能执行,当然文件本身要能够执行)。
linux目录的读、写、执行权限说明
可读r :表示具有浏览目录下面文件及目录的权限,即ls dir。(不能进入到目录里,即无法cd dir)
如果没有x权限,列表时也是有问题的,例如加-l参数 列表属性会有问号,提示没有权限
可写w :表示具有增加、删除或修改目录内的文件名,文件的权限(需要x权限配合)
可执行x :表示具有进入目录的权限:例如:cd dir
2、改变权限属性命令chmod
chmod 是用来改变文件或目录权限的命令,但只有文件的属主和超级用户root才有这种权限。通过chmod来改变文件或目录的权限有两种方法:一种是用过权限字母和操作符表达式的方法来设置,另一种是通过数字方法来设置权限。
如果是数字,则4代表r,2代表w,1代表x,如果是5代表r-x,6代表rw-,7代表rwx;
如果是符号,则a代表全部人all,u代表owner,g代表group,o代表others,r就是r,w就是w,x就是x,什么都不写表示一个权限都没有;
(1)chmod 755 test.txt:赋予test.txt rwxr-xr-x
(2)chmod u=rwx,go=r test.txt:赋予test.txt rwxr--r--
(3)chmod a=r test.txt:赋予test.txt r--r--r--
(4)chmod a+x test.txt:给test.txt全部的人添加x权限;
(5)chmod a-x test.txt:给test.txt全部的人删除x权限;
(6)chmod u=rwx,go= test.txt:赋予test.txt rwx------
3、改变文件属主属组的命令chown
语法:
chown [选项]...[所有者]:[组] 文件..
chown 用户 文件或目录 <==仅仅授权用户
chown :组 文件或目录 <==仅仅授权组
chown 用户:组 文件或目录 <==表示授权用户和组
提示:其中的冒号‘:’可以用点号‘.’代替。要授权的用户和组名,必须是系统里实际存在的。
-R 处理指定目录以及其子目录下的所有文件
4、为什么系统默认目录的权限是755,文件的权限是644,而不是其他值呢?
网站目录安全权限:目录755,文件644是相对安全的权限,并且用户为root以及用户组为root。生产工作中一定要尽量要我们的文件和目录达到以上的默认权限,包括属组。
linux系统默认权限方针:允许浏览,查看,但是禁止创建和修改,以及增加文件,内容。
5、我们希望默认的常见文件为000,目录为111,怎么实现呢?
在linux下的文件的默认权限是由umask值决定的。umask是通过八进制的数值来定义用户创建文件或目录的默认权限。
umask一般都是放在用户相关shell的配置文件中,比如用户家目录下的.bashrc或.profile,也可以放在全局性的用户配置文件中,比如/etc/login.defs,还可以放在shell全局的配置文件中,比如/etc/profile或/etc/bashrc等,umask放在相关的配置文件中,目的是当管理员创建用户时,系统会自动为用户创建文件或目录时配置默认的权限代码。
特别提示:在一般的生产场景,umask的使用不多见,在此,大家了解下umask是怎么回事即可。
6、umask设置记忆方法:
以上内容总结来自老男孩视频教程