Linux下有两种用户:超级用户(root)、普通用户
超级用户:可以在linux系统下做任何事情,不受限制
普通用户:在linux行动受限制
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
拥有者:文件/文件目录的所有者
所属组:文件/文件目录拥有者所在的组的用户
other:其他用户
r:可读(对于文件,则可以读取文件内容,对于目录,则可以浏览此目录的文件列表)
w:可写(对于文件,则可以修改文件内容,对于目录,则可以创建/删除文件)
x:可执行(对于文件,具有执行文件的权限,对于目录,则可以进入目录)
“—”表示不具有该项权限
d:文件夹
-:普通文件,如源代码,可执行程序等
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
1 字符表示
2 八进制表示
chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
格式1:用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
格式2 三位8进制数字
chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
umask
功能:
查看或修改文件掩码
新建文件默认权限(起始权限)=0666
新建目录默认权限(起始权限)=0777
超级用户默认掩码值为0022,普通用
户默认为0002
但实际上新创建的文件和目录,看到的权限往往不是上面这个值,因为还要受到umask的影响
假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
即,最终权限=起始权限-权限掩码中出现的权限
权限掩码002--> 000 000 010
新建文件的起始权限是666--> 110 110 110
新建文件的最终权限: 110 110 100 即 664(rw- rw- r--)
一个文件一定属于一个目录,文件能否被新建和删除不由它本身决定,而与目录的权限有关
若是当张三和李四共处同一个目录下,由于当前目录的other有w权限,那么张三就可新建自己的文件,张三也可以删除自己建立的文件,但是李四也可以删除张三建立的文件,这就有点小bug了,那么粘滞位的出现,即可解决以上问题
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
超级管理员删除及目录的拥有者删除
[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作