众所都周知:linux一切皆文件
一、文件权限之基本权限
1、基本权限介绍
基本权限类型:
r = 可读 4
w = 可写 2
x = 可执行 1
权限的归属:
u = 属主
g = 属组
o = 其他人
2、设置权限
2.1、修改属主、属组
chown 属主.属组 目标文件
-R 递归修改
2.2、修改u、g、o对应的权限
chmod
-R 递归
# 1.加减法
# 为mm.txt文件的属主添加rw权限,属组添加rw权限,其他人添加rw权限
chmod u+rw,g+rw,o+rw mm.txt
# 2.赋值
# 为mm.txt文件设置属主权限为rx,属组权限为rx,其他人权限为r
chmod u=rx,g=rx,o=r mm.txt
# 3.数字
chmod 660 mm.txt
3、权限对文件/目录的意义
文件:ls -l 文件名
r 可以读取文件内容(cat)
w 可以修改文件
x 可以执行文件代码,(若文件的代码时编译好的结果,则只需要x权限即可执行,但如果该文件的代码是
#一个解释型分脚本程序,则需要r权限的配合才行(将文件的代码读取出来,由解释器解释成二进制文件,才能执行))
目录: ls -dl 文件名
r 可以浏览目录下的内容(ls命令,查看子文件)
w 可以在目录下创建新文件
x 1、可以执行目录下的程序(除了对目录由执行权限,还要对目标文件有相应的权限)
2、可以正常切换到该目录下
3、涉及到多层目录,如/aa/bb/cc,需要对每一级目录都有x权限才能正常走到下一级目录
二、文件权限管理之特殊权限
众所周知,每运行一个程序,就是启动了一个进程,而每个进程都需要有用户。linux系统是根据uid来区分用户的,但是在启动进程时,还有一个行为:系统会将uid转换为euid,通过euid来启动进程,而通常情况下euid与uid是相同的。
1、SUID
chmod u+s 文件
1、SUID权限仅对二进制可执行文件有效
2、如果执行者对于该二进制文件具有x权限,执行者具有该文件的所有者权限
3、本权限仅在执行该二进制可执行文件的过程中有效
2、SGID
chmod g+s 文件
1、当SGID仅作用于普通文件时,和SUID类似,在执行该文件时,获得该文件所属组的权限
2、当SGID作用于目录时:
当一个用户对某一目录有wx权限时,该用户就能在目录下建立文件
如果该目录被设置SGID,则该用户在该目录下创建的文件都属于这个目录的属组
3、SBIT(sticky)
chmod o+t 文件
SBIT与SUID、SGID关系不大,SBIT只对目录有效,用来阻止非文件的所有者删除文件
PS:为文件添加特殊权限也可以使用数字
chmod 7777 -> rws rws rwt
chmod 6777 -> rws rws rwx
chmod 5777 -> rws rwx rwt
三、文件权限管理之umask
新建文件、目录的默认权限是由umask决定的
# 1、uid>199且属主与属组相同的用户,umask = 0002
文件:664
目录:775
# 2、除1之外的其他用户,比如root用户,umask:0022
文件:644
目录:755
linux系统中文件的默认权限为666,目录的默认权限为777,在umask的影响下
临时设置umask:
# 临时设置umask为000
umask 000
永久设置umask:
vim /etc/profile