关于linux权限管理的基础内容

权限管理

Windows上默认就是管理员登录,Linux也是。
linux权限管理的意义在于,同一台服务器有不同的用户使用,应该拥有不同的权限

1.文件基本权限

-rw-r--r--. 1 root root   0 8月  11 22:46 abd

第一位: - 文件类型
-文件
d目录
l 链接
rw- 所有者拥有读写权限 u —> user
r-- 所属组拥有读权限 g —> group
r-- 其他人拥有读权限 o —> other
a 所有的,包含所有者,所属组,其他人
修改权限命令 chmod [选项] 模式 文件/文件路径
选项 -R 递归
模式
[ugoa][±=][rwx]
[mode=421]
chmod u+x cangls给所有者赋予执行权限
chmod g+w,o+w cangls给所属组赋予写权限,给其他人赋予写权限
chmod a=rwx给所有者,所属组,其他人都赋予rwx权限。
chmod u-x abc给abc 减少执行(x)权限

chmod u=x,g=wx,o=wx goodstudy 

给文件指定的权限

chmod	u=,g=,o=, goodstudy	

所有人对这个文件没有操作权限

咱们工作中大多都是用数字来赋予权
r 读 4 ,代表2的二次方
w 写 2 ,代表2的1次方
x 执行 1 ,代表2的0次方
最长用到的权限数字 777 755 644 , 工作中不会遇到467

2.权限的作用

权限对文件的作用
r cat(查看短文本内容) more(查看长文本内容) head tail
w vi echo 但是不包含删除文件
目录的内容是文件,文件的内容是数据,所有对目录有写权限可以删除里面的文件,但是对文件有写权限只能删除文件中的数据,但是无法删除自身,因为自身是属于目录的,需要有目录的权限才可以删除文件
x 可执行

权限对目录的作用
r ls 查询目录下的文件名
w 具有修改目录结构的权限。新建文件和目录,删除移动重命名(touch mkdir rm mv cp )
x cd 可以进入目录

对文件来说 最高权限 x;
对目录来说 最高权限 w;
对目录来说 只有 0 5(rx) 7 有意义 4 1 6 都是没有意义的;

分配权限有一个原则
分配文件基本权限时,核心原则:在最小权限的情况下能够实现要求即可。

文件默认权限

在Windows上文件权限是继承上一个目录的权限,但是在Linux系统中,不是这样的。
umask 查看默认权限
0022:超级管理员
0002:普通用户
0: 文件特殊位
022: 文件默认权限 默认权限,是文件创建后就有的权限

文件默认没有执行权限,必须手工赋予执行权限。如果直接有执行权限,系统不安全

默认文件权限最大为666
666-022=644 这是错误的方式是换算成字母在相减
默认权限是换算成字母在相减。
-rw-rw-rw- 666
----w–w-- 022
-rw-r–r-- 644

目录的默认权限最大777
-rwxrwxrwx
----w–w--
-rwxr-xr-x 755

修改umask
临时修改:通过命令修改都是临时修改,想要永久修改 要修改配置文件。
umask 0033

  • rw- rw- rw- 666
  • — -wx -wx 033
  • rw- r-- r-- 644

umask配置文件: vim /etc/profile

普通用户的UID一定会大于199。
在配置文件里,如果UID大于199,umask是002,而小于的话是022

3.特殊权限ACL(了解)

setfacl 选项 文件名

选项:
-m 设定acl权限
-x 删除指定的acl权限
-b 删除所有的acl权限
-d 设定默认的acl权限
-k 删除默认acl权限
-R 递归设定acl权限

getfacl 文件名查看指定文件的ACL权限
setfacl -x u:lw 文件名删除指定用户的ACL权限(g:groupname 对用户组进行删除);
最大有效权限:mask
mask是用户指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限"相与"才能得到用户的真正权限
setfacl -m m:rx 文件名修改指定文件的最大有效权限mask;

递归权限

父目录在设定权限时,所有的子文件和子目录也拥有相同的ACL权限

setfacl -m u:username:权限 -R 目录
setfacl -m u:lw:rx  -R /home/av/

给文件夹递归赋予ACL的rx权限时,会导致权限溢出,表现就是目录下的文件也会得到执行权限,无法避免,只能一个文件一个文件的删除掉执行权限

递归权限只能赋予目录,不能赋予文件

默认权限

如果给父目录设定默认ACL权限,那么目录下所有新建的子文件都会继承该默认ACL权限

setfacl -m d:u:username:权限 -R 目录

d是default 默认

setfacl -m d:u:lw:rx -R /home/av/

getfacl /home/av

权限管理内容大致如上,如有错误或不当之处,敬请指出,谢谢!

猜你喜欢

转载自blog.csdn.net/Jie_Ger/article/details/83242205