五大权限:UGO权限、SetUID SetGID Sticky、ACL权限、chattr(文件系统级别的权限)、SELINUX
======================文件属性以及ugo权限==================================
ls -l 列出文件的属性
linux文件的类型包括以下六种:
- 普通文件
d 目录文件
l 链接文件
b block类型的设备文件 块设备文件
c 字符型的设备文件
s socket文件 网络类型的文件
p 管道类型的文件
ugo权限
u 代表 users 拥有者
g 代表 group所属组
o 代表 others
a 代表所有,包括ugo
rwx的含义
r代表读权限 w代表写权限 x代表执行权限
对于文件:r代表可使用cat等命令查看文件内容,w代表可增 加/删除/修改文件内容,x代表可执行该文件。
对于目录:r代表可使用ls命令列出目录下的文件名,要想看文件的详细信息,需结合x权限。
w代表表可在该目录下创建/删除文件和子目录,或修改 文件名称, 要与x结合使用。x代表可进入该目录。
r=4 w=2 x=1
文件类型的查看方式?两种 ls -l 或者 file
文件夹的权限
x 代表可以cd进去
rx 代表可以cd进去 ls ls-l
wx 代表可以cd ls touch rm vi 自己的文件和别人的文件
wxt 只能编辑自己的文件 cd touch vi
chmod修改文件ugo权限
chmod ugoa +-= rwx的命令方式:
chmod o+w file1
chmod g-w file1
chmod o=--- file1
chmod a=rw file1
chmod -R 递归修改文件ugo权限
chmod 644 file1
chown
chown sherk a
chown shrek.ttt b
chown shrek:ttt b
chown -R
chown .ttt
chgrp ttt
R4 W2 X1
在ext2 ext3文件系统中
文件以inode + block的方式存在,inode保存了文件的属性
stat filename可以用来检查文件的inode
umask
umask 决定用户创建的文件和目录的默认权限。
root 用户 022(默认) 普通用户 002 (默认)
文件最大权限666,目录最大权限777。
umask 直接回车,可查看当前用户的umask值。
设置umask 值
(1)umask 数字 可临时修改当前用户的umask值。
~/.bashrc 添加umask 数字 可永久修改用户的umask值
(2) vim ~/.bashrc 永久生效
/etc/bashrc 是系统级的配置
vim /etc/bashrc (全局配置) 一般不用
======================suid sgid sticky=============================
suid 作用在二进制的可执行程序上,让任何人在执行这个二 进制可执行程序时临时拥有文件拥有者的权限。
设置方式:chmod u+s filename,例如passwd可执行文件就是这个权限
sgid 作用在二进制的可执行程序上,任何人在执行这个二进 制可执行程序时临时拥有文件所属组内用户的权限。
作用在目录上,任何人在这个目录下创建的文件所属组都继承目录的所属组。
设置方式:chmod g+s filename/dirname
sticky 作用在目录上。任何人都可以在该目录下创建文件, 但是自己只能删除或修改自己的文件,
不能删除其他用户创建的文件,只用这个目录的拥有者能够删除该目录下所有文件,达到动态平衡。
设置方式:chmod +t dirname
suid=4 sgid=2 sticky=1
chmod 1777 file
chmod 7777 file
======================acl权限=============================
访问控制列表
acl 权限 是UGO权限的补充权限,UGO最多可控制三类用户,acl可针对单个用户和单个组做权限的设置。
getfacl filename 查看某个文件拥有的acl权限
setfacl -m u:usename:rwx file1 针对某个特定用户设置acl权限
setfacl -m g:groupname:r-x file1 针对单个组设置acl权限
setfacl -m m:权限 设置mask值,mask是规定除了user和others之外,剩下的用户能够拥有的最大权限。 ^C
setfacl -x u:username finame删除一条acl条目 ^C
setfacl -x g:groupname filename
setfacl -x m filename
setfacl -b filename 清空整个acl列表
acl权限一般用在linux和windows连用的时候,因为windows一般权限都是针对单个用户
ls的变化
drwxrwxr-x+ 2 root root 4096 Feb 5 17:08 aclfile
===================== =ATTR权限===========================
针对特殊用户的特殊权限
lsattr file1 查看
chattr +i filename 任何人不能修改该文件 chattr -i filename 适用于重要文件防止误删除
chattr +a 只能追加文件,不能改原本的东西 chattr -a filename 适用于日志文件
+A 文件时间戳不被更新 适用于访问量大的文件
用的最多的就是 +i 和 +a
帮助文档man chattr
查看文件的属性
ls
file
lsattr
stat
getfacl