4.26学习笔记:
文件权限:
读 ---> r | 4
写 ---> w | 2
执行---> x | 1
设置权限:
chown : 改变文件和目录的所属主以及所属组
chmod : 改变文件和目录的设置访问权限
r,w,x权限对文件和目录的意义:
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
r(读取) | 可以读取文件的内容 | 可以列出目录的内容(文件名) |
w(写入) | 可以更改文件的内容 | 可以创建或删除目录中的任意文件 |
x(执行) | 可以作为命令执行文件 | 可以访问目录的内容(取决于目录中文件的权限) |
r,w,x对目录的影响:
对目录没有w,对文件有rwx :
其他人对父目录没有w权限,则对其目录下的文件也没有w权限,无关乎文件的权限,但是目录又要执行权限,否则无法cd进去
对目录有w,对文件没有任何权限 :
对目录有w权限,可以在目录中创建新文件,可以删除目录中的文件(跟文件权限无关)
w对目录的影响:
有 : 可以删除目录下的文件,无关乎文件本身权限
无 : 不能在目录下创建文件和删除文件
注意事项:
文件: x 权限小心给予
目录: w 权限小心给予
文件类型:
针对文件
读权限-----能否查看文件内容
写权限-----能否编辑文件
执行权限----针对脚本,比如脚本文件叫做date.sh.能否使用./date.sh方式执行,或者是能否使用绝对路径的方式执行
针对目录
读权限------限制用户能否查看目录下的文件
写权限------能否创建文件或目录,能否删除文件或目录
执行权限---能否进入这个目录,如果没有执行权限,即使有读权限也无法查看目录下文件的详细信息,只能看到文件名字
文件对象
针对文件
#只修改属主
chown $user $file
#只修改属组
chown . $group #fileame
#即修改属主又修改属组
chown $user. $group filename
chown $user : $group filename
针对目录
递归修改目录及目录下子目录中的文件
chown [-R]
#只修改属主
chown -R $user $dirname
#只修改属组()
chown -R .$group $dirname
即修改属主又修改属组(目录以下)
chown -R $user.$group $dirname
chown -R $user : $group $dirname
常用目录文件权限:
/ r-xr-xr-x 555 /etc rwxr-xr-x 755
/var rwxr-xr-x 755 /tmp rwxrwxrwt 1777
/home/robin rwx------ 700 /root r-xr-x--- 550
/etc/passwd rw-r--r-- 644 /etc/shadow --------- 000
权限掩码:
系统用户的umask : umask(0022)
普通用户的umask : umask(0002)
系统默认文件最高权限 : 666 --->新创文件权限666-022
系统默认目录最高权限 : 777 --->新创目录权限777-022
高级权限:
suid : 针对普通文件(二进制命令文件 提权以后可以让普通用户像root用户一样执行这个命令)
sgid sticky : 针对目录
高级权限类型:
suid : 提权---> (只针对二进制命令文件生效,其他不用管)
sgid : 继承属组权限---> (只能针对目录设置,让新建文件继承父目录的属组)
sticky : t权限---> (权限控制,该目录下的文件,只有创建者和root可以删除)
Set UID
1、SUID权限仅对命令文件(二进制文件)有效;
2、执行者将具有该程序拥有者(owner)的权限。
Set GID
SGID主要用在目录上-----如果用户在此目录下具有w权限的话,
使用者在此目录下建立新文件,则创建的这个文件的群组与此目录的群组相同。
Sticky Bit
SBIT(Sticky Bit)目前只针对目录有效,
对于目录的作用是:
当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。
提权手段:
suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以root身份在执行。
sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。
visudo | vim /etc/sudoers
root ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD:ALL
%whell ALL=(ALL) ALL
gpasswd -a username
特殊权限:
getfacl $filename
授权:
setfacl -m u:username:rwx filename
回收权限:
setfacl -m u:username:--- filename
setfacl -x u:username filename
setfacl -b filename(所有特殊权限都收回)
setfacl : 针对个人设置权限 一个人查看一个文件的权限
getfacl : 查看权限
设置该文件为所有人所有组访问 : setfacl -m ::rwx a.txt