Linux权限

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": 不允许的操作

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言