权限是系统用来对资源访问的控制,权限一般分为读、写、执行 三种。系统中的每个文件都有所属用户、用户组
通过这样的机制就可已控制对资源进行访问。
系统中的进程都是以某个身份去运行的,所以进程的权限与该用户的权限是一样的。 用户的权限大, 在该用户
下运行的进程的权限就大
对于目录来说必须具有x(可执行)权限才可以查看其目录内容
UGO
linux下的权限基于UGO 进行控制
u代表user G 代表group o代表ohters
每一个文件的权限基于UGO 进行设置
权限都是三个一组(rwx), 分别代表读, 写, 可执行。所以一个文件拥有的权限是九个
可以用ls -al 来查看文件的权限
可以通过命令来修改文件的权限属性:
chown 改变文件的所属用户
chown xzl xzl.cpp
加上 -R参数递归修改目录下文件的所属用户
chgrp xzl /xzl
加上-R参数递归修改目录下文件的所属用户组
chmod 可以修改文件的权限
chmod 模式 文件
模式格式如下:
u, g, o 分别代表 用户, 用户组, 其他
+ - 分别代表加权限, 和删除权限
r, w, x 代表三种权限
样例如下:
chmod u+rw xzl.cpp
chmod g-x xzl.cpp
修改权限也可已通过数字来修改 三个权限分别由数字来表示:
-r 4 -w 2 -x 1
通过组合的方式可以组合不同的权限
默认权限
创建文件夹和创建文件的时候都会赋予默认的权限
这个默认的权限就是由umask来控制的
一般的umask 用数字来表示权限 比如 022
目录的权限就是777 - umask
文件的权限就是666 - umask
普通用户的umask 的值就是002
root 用户的umask 值就是022
特殊权限
执行umask 命令时候 一般会显示 0002
其中前边的0 为特殊权限
特殊权限有三个suid sgid sticky
权限 对文件影响 对目录影响
suid 以文件所属用户去执行, 而不是执行用户 无
sgid 以文件所属用户组去执行 在该目录下创建的目录与所属目录的用户组是一样的
sticky 无 同一用户组下的具有写权限的用户,只能删除本用户的文件, 不得删除非本用户的文件
设置特殊权限
chmod u+s main
chmod g+s /xzl
chmod o+t /xzl