1、基本权限

文件权限位,10位:-rwxr-xr-- 第一位表示文件类型,后面3组就是权限,第一组是u所有者,第二组是g所属组,第三组是o其他人  r 读,w 写 ,x 执行

权限修改:chmod [选项] 模式 文件名

选项-R表示递归全部赋予命令指定权限

比如:chmod u+x abc.avi 给当前用户可执行权限

chmod g+w,o+w abc.avi

减权限:chmod u-x,g-w abc.avi

不用考虑之前的,直接对应赋予对应组权限:chmod u=rwx,g=rw abc.avi

给所有用户赋权限:chmod a=rwx abc.avi 三组权限都一样,一般不常用

常用的数字方式:chmod 755 abc.avi

chmod 644 abc.avi 使用比较灵活,r=4,w=2,x=1,二进制指数,避免的歧义和重复

读权限r:对于普通文件,有r权限就可以查看文件内容,如果对目录有读权限,那么可以查看目录下的文件列表

写权限w:对于普通文件,有w权限就可以用vi vim echo编辑文件内容,但是不能删除文件

文件的数据本身属于文件本身的权限控制,文件名称属于目录存放的数据

如果对目录有w权限,就可以修改文件的名称或者删除文件,以及修改目录名称,在目录下面进行任何的操作

执行权限x:对于文件可以运行可执行的脚本;如果对目录有x权限,那么可以进入目录,cd进去

对于文件来说最高权限是执行,对目录来说最高权限是写

对目录来讲 只有0 5 7是有意义的

这些权限限制对root用户是没有用的,root用户可以操作任何权限的目录和文件

chown改变文件所有者

chown user1 abc 然后权限仍然是:755这样user1用户权限是7,就可以正常访问了

chgrp group abc 是修改文件的所属组

chown user1:group1 abc 可以同时修改用户和组,冒号前面是用户,后面是组

同样加-R是递归修改,-v查看修改过程详细信息

对于web服务器等服务端平台,实际开发过程中分配权限的核心原则是:在最小权限下能够满足要求即可,符合最小权限原则

umask 查看默认权限:root用户:0022 普通用户:0002 (文件刚建立时的默认权限,根据这个可以分析默认情况下文件和目录的权限)

第一位0代表特殊权限

文件默认权限是不能执行的,所以最大权限是666,所以文件的默认权限是666换算成字母减去umask值换算成字母相减就是rw-rw-rw-  减去 --- -w- -w- = rw-r--r-- = 644

如果umask是033,则rw-rw-rw- 减去 --- -wx -wx = (空减去x仍为空,所以仍然为644) rw-r--r-- = 644

暂时修改umask值:umask 0033

目录的最大权限是777,所以仍然是:rwxrwxrwx 减去 --- -w- -w- = 755

umask值最小,权限最大,umask值最大,权限最小

永久修改umask值,配置文件和环境变量在同一个文件:/etc/profile

这里面的if语句是用来判断普通用户还是root用户的,修改这个文件可以永久修改umask值

2、特殊权限

ACL权限:任何目录都只能有一个用户和一个组,某些特殊要求下需要ACL权限,ACL权限是为了解决用户身份不够用的情况

原来ACL是为了挂载分区使用的

dumpe2fs -h /dev/sda5 列出超级块信息,可以查看acl权限的存在状态

临时给分区赋予acl权限,重新挂载即可,比如根分区:mount -o remount,acl /

如果分区默认没有acl权限,设置默认挂载需要修改配置文件:/etc/fstab

即把后面的defaults添加修改为defaults,acl

查看文件的acl权限:getfacl 文件名 默认是没有的,查看只显示普通权限

设置权限:setfacl 选项 文件名

添加ACL权限:setfacl -m u:lw:rx av 给用户lw设置av文件为rx权限,这样再使用ls -l查看最后一位从之前的.变成了+

然后通过getfacl av可以看到多了一行user:lw:r-x这就是acl权限,如果是给组设置就用g

还有一行mask::rwx这是指控制用户最高权限,需要和实际的权限进行与运算得到的才是用户真正的权限

r && r=r r && - = - - && r = - - && - = -,所以实际权限为:r-x && rwx = r-x 还是一样的

修改mask值:setfacl -m m:rx av

这时候就算设置:setfacl -m u:lw:rwx av 最后用户lw的权限仍然是r-x

权限可以设置多个用户

删除指定用户权限:setfacl -x u:lw av 同样删除组是用g:组名

删除文件所有的acl权限,所有用户和组的权限都会被删除:setfacl -b av

递归设置目录下所有文件都有对应用户的acl权限:setfacl -m u:lw:rx -R av

但是上面方法导致av下所有的文件都有x可执行权限,这样文件权限就太高了,不可避免的导致了权限溢出

默认情况下目录默认mask为rwx,文件是r-x

给目录设置默认acl权限,以后该目录下所有新建文件或者目录都会继承这个acl权限

设置默认acl权限命令:setfacl -m d:u:lw:rw -R /home/av

设置后使用getfacl查看配置都变成了默认的,设置默认acl只会对之后产生的文件赋予acl权限,之前已经有的文件不会被设置权限

递归权限设置当前存在的文件,默认权限设置以后目录新放进去的文件

默认权限和递归权限都是针对目录来说的,对普通文件没有任何意义

sudo是用户操作命令的权限,重点是针对于命令,而其他都是针对用户操作所有文件的权限

超级用户应该赋予权限,普通用户才可以使用

通过命令visudo可以配置权限,相当于修改配置文件/etc/sudoers

user ALL=(ALL) ALL

user是要赋予权限给哪个用户,ALL是被管理主机的地址,(ALL)是可使用的身份,ALL是授权使用的命令的绝对路径(一定是绝对路径)

如果是本地一台主机,ALL和本地IP作用一样

%group ALL=(ALL) ALL

这里是修改组名

命令可以带参数,写的越详细限制就越严格,只写命令代表可以执行所有的参数

比如执行visudo打开文件定位到最后一样添加:user1 ALL=(ALL) sbin/shutdown -r now

这样就给user1用户赋予了重启计算机的权限

普通用户通过命令:sudo -l 回车后按提示输入密码可以查看自己可以执行哪些命令,否则默认没有sudo权限

普通用户执行命令必须严格执行(必须写绝对路径):sudo /sbin/shutdown -r now 这样才可以正确执行

添加visudo也可以写成:user1 ALL=/usr/sbin/useradd 效果是相同的

比如更改密码添加:user1 ALL=/usr/bin/passwd 这样一定是不可以的!这样普通用户一旦得到权限,就有可能更改root用户的密码,所以应该使用正则表达式匹配

user1 ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root

这样就可以更改一般用户密码,但是不能更改root用户密码了,注意上面逗号后面必须加空格,

这样用户在执行上面设置的命令时,身份是root用户,一定要注意这个关系

某些特殊的权限是系统内部使用的权限,一般不太常用,比如SetUID,SetGID等,强烈建议不要修改,对服务器影响很大

umask第一位是特殊权限的定义

只有可执行的文件才可以设置SUID权限,如果文件不可执行则没有任何意义

对可执行文件赋予SUID可以写成:chmod 4775 abc 第一位补充一个4,这样文件的权限就设置为rwsrwxr-x了,s就代表SUID权限,此时文件颜色变为红色,表示警告,如果没有r权限 ,那么文件权限会变为S权限,大写的S代表错误,所以s=r+S才可以正确执行

命令执行者必须可执行文件有x执行权限才可以执行s权限,

系统中passwd命令就有s权限,所以普通用户可以间接的通过passwd的s权限提升为所有者即root用户,对/etc/shadow密码文件进行修改,修改完毕,权限回归(灵魂附体只在普通用户执行带s权限的命令的过程中有效),如果文件没有SUID权限,则普通用户权限不会提升

设置SUID权限的命令是:chmod 4775 文件名或者chmod u+s 文件名

取消SUID权限的命令是:chmod 0775 文件名或者chmod u-s 文件名

设置SGID权限的命令是:chmod g+s 文件名或者chmod 2775 文件名,作用和前面一致,提升用户组的权限

正常情况下严格控制文件,不要手动设置SetUID权限,系统中定期检查是否出现不常见的SUID权限的文件,如果出现服务器就有可能被注入后门,要尽快清除

清除方法如下:

首先系统正常情况下设置模板文件保存系统中所有带SUID权限的文件:

find / -perm -4000 -o -perm -2000 > /root/suid.log

然后编写脚本,(注意:shello脚本空格严格区分,注意关键词间的空格间隔):

#!/bin/bash

find / -perm -4000 -o -perm -2000 > /tmp/setuid.check

for i in $(cat /tmp/setuid.check)

do

grep $i /root/suid.log > /dev/null

if [ "$?" != "0" ]

then

echo "i isn't in listfile!" >> /root/suid_log_(date +%F)

fi

done

rm -rf /tmp/setuid.check

然后执行脚本:

chmod 755 suid_check.sh

./suid_check.sh

当脚本执行完毕后,在root目录下就会出现suid_log_当前日期这样一个文件,这个时候打开这个文件,里面就是所有除系统默认之外的拥有SUID权限的文件,只需要把列表文件删除即可

SGID权限既可以对可执行文件设置也可以对目录设置,

如果对于文件SGID和SUID相似,只有可执行权限的文件才可以设置SGID权限,

chmod g+s abc或者chmod 2777 abc,设置后组权限有个s,只有普通用户执行时权限提升为组权限,执行完毕同样权限回归

比如普通用户可以执行locate命令提升组为slocate从而搜索数据库文件/var/lib/mlocate/mlocate.db

如果对于目录赋予权限,普通用户必须对目录有r和x权限,如果此时目录也有SUID权限,如果普通用户进入目录时,用户在此目录中的组权限就是该目录的所属组,用户如果对该目录有w权限,则用户在该目录下新建的文件或者目录所属组都是用户的所属组,而不是用户本身的所属组

SGID权限比SUID权限稍微安全一些,同样不建议随便使用

SBIT权限只针对目录有效,如果用户和用户组外其他用户对目录有rwx权限,即7权限,即可以查看并且在目录中创建文件,

首先建立目录,设置权限为chmod 777 abc

默认情况下其他用户虽然不能修改abc目录下root用户和组建立的文件内容,但是由于对目录有写权限,所以可以删除abc下面的文件,当设置SBIT粘着位之后,那么其他用户就算对目录拥有rwx权限,但是也不能删除这个目录下root用户创建的文件了,而只能删除自己的文件

设置SBIT权限,chmod o+t abc,设置后第三组其他用户权限变为rwt,t就代表SBIT

/tmp目录就拥有SBIT权限,默认情况下所有用户都拥有新建文件的权限等,默认情况下对指定文件没有写权限,所以不能删除也不能对其他用户的文件有任何操作,这样就发挥临时目录的作用

在web服务器目录中,不要设置目录权限为777,虽然这样方便,最好的方法是要更合理的调整用户符合分配最小权限原则,够用即可

之前设置给目录设置SBIT权限后,虽然目录下文件不能删除,但是可以修改内容,用不可改变位权限可以解决这个问题

不可改变位设置:

对于文件和目录都生效:chattr +i abc

通过lsattr abc可以查看这个文件具体的权限,可以看到+i后权限里面除了e还多出来一个i

通过lsattr -d abc可以查看目录的不可改变位权限

给普通文件设置i权限后,所有用户包括root都不能修改该文件的内容或者删除文件,但是root用户本身可以赋予或者取消该权限设置,同样拥有控制权

如果给目录设置i权限后,只能修改目录下文件内的内容,不能建立和删除下面的文件也不能对文件重命名

取消i权限:chattr -i abc

a权限,对文件或者目录设置a权限:chattr +a abc

给文件赋予a属性,属性中会多一个a,则文件里面只能追加内容,但是不能删除文件也不能减少内容,用vi/vim追加是无效的,会被系统禁止,但是可以用 echo abcd >> abc这样的方式正确追加

如果对目录设置a属性,则只可以在目录中建立新文件,但是不能删除或者修改旧文件名,但可以修改文件内容,但是会有警告,已经建立的新文件也无法删除

取消a权限:chattr -a abc

i和a权限同样不建议随便使用,还是建议灵活使用系统的基本权限以及默认权限,必要时再使用特殊权限,提高系统的稳定性和安全性。

linux0775权限,Linux权限管理相关推荐

  1. o在linux是什么权限,Linux权限管理基本知识大全

    Linux权限管理基本知识大全 Linux系统有什么基本权限,权限管理命令是什么?下面跟yjbys小编一起来看看吧! 一.基本权限 linux权限机制采用UGO模式.其中 u(user)表示所属用户. ...

  2. 【Android 逆向】Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )

    文章目录 一.Linux 权限简介 二.系统权限 / 用户权限 / 匿名用户权限 1.系统权限 2.用户权限 3.匿名用户权限 一.Linux 权限简介 Linux 是基于文件的系统 , 内存 , 设 ...

  3. php linux权限,Linux权限详细介绍

    在理解权限之前我们要知道linux中的用户组: 在Linux中每个用户都属于一个组,Linux中每个文件都都有所有者.所有组.其他组.这几个概念我们可以用现实中的例子来理解.比如说你有一本书,那么你就 ...

  4. linux中ugo什么权限,Linux权限机制:UGO | 昆特斯的控

    权限 权限是操作系统用来限制对资源访问的机制,权限一般分为读.写.执行.系统中每个文件都拥有特定的权限.所属用户及所属组,通过这样的机制来限制哪些用户.哪些组可以对特定文件进行什么样的操作. 每个进程 ...

  5. linux中来宾用户权限,linux权限分配

    查看当前目录,附带上权限级别的  ll [root@localhost text]# ll total 24 drwxr-xr-x. 3 root root 4096 Sep 26 00:29 a d ...

  6. linux递归访问文件权限,Linux基础管理——文件权限管理(访问控制)

    1.文件权限 1.1.三类权限简述 读.写.执行:rwx. 1.2.文件属性操作chown :设置文件的所有者(属主信息): chgrp :设置文件的属组信息: 1.3.修改文件的属主和属组 1.3. ...

  7. linux 774是什么权限,Linux 权限位,权限值,权限管理

    Linux 是个多用户操作系统.由于是个人计算机,一般都是被信任的人使用,可以直接登录并且管理.但是在服务器上,不是所有的用户都使用管理员的身份登录,根据不同的工作需要和职位需要,和权限等级合理分配用 ...

  8. linux的rwx权限,linux权限管理:rwx

    标签:rwx 权限管理简介: r,w,x 对文件及目录进行权限管理,从而达到文件及目录管理. 1.rwx对于文件而言: r:可读,可以使用类似cat等命令查看文件内容: w:可写,可以编辑或删除此文件 ...

  9. linux alc权限,Linux账号管理与ALC权限设定(二)

    接上篇.鸟哥提出了一个问题.就是 如果myuser1用户是这个项目的助理,他只能查看该目录下的内容,而无法修改删除.那该如何操作呢? 首先,不能将该用户加入projecta这个群组,否则他也可以修改删 ...

最新文章

  1. java 路径 工具类,java 绝对路径工具类
  2. C# ThreadPool类(线程池)
  3. 单片机与外设模块数据传输不成功各种原因分析总结
  4. Jrebel最新激活破解方式
  5. 如何在 Flink 中规划 RocksDB 内存容量?
  6. Java日历compareTo()方法与示例
  7. 城市轨道交通运营管理属于什么院系_专业介绍|城市轨道交通运营管理专业
  8. python故事_python的故事
  9. .NET 5中的EF Core 5数据迁移:在单独的库中并自动部署
  10. 各大搜索引擎提交地址
  11. 问题2----网速问题?造成的ORA-01034和ORA-27101
  12. java文件下载和导出文件名乱码浏览器兼容性问题
  13. 马哥Linux学习笔记2-3Linux命令帮助的获取详解
  14. Latex角标 左侧角标 左上角角标 左下角角标
  15. 计算机基础知识如何打钩,打勾的符号怎么输入电脑上(对勾符号在word和Excel的输入方法)...
  16. 自定义可折叠和展开的View
  17. Redis进击(二)搭建Redis主从复制服务集群(一主两从、反客为主)【Windows环境】
  18. 实习生如何在平淡无奇的工作中凸显自我价值?
  19. 台式电脑耳麦合一接线方式
  20. 王见:手机创业很简单,去县城获取粉丝更简单!

热门文章

  1. 使用CSDN的Markdown编辑器
  2. 变种GandCrab样本分析
  3. 检查字符串是否包含数字
  4. 什么是MySQL,以及它的特性
  5. Spring boot排除依赖
  6. Nginx的启动、停止
  7. Mybatis的insert方法
  8. 发那科冲压直线搬运机器人_行业应用 | 直线七轴软件配置
  9. C语言学生成绩简单,C语言实现简单学生成绩管理系统.pdf
  10. 【JUC并发编程03】线程间通信