Linux ACL权限设定
1.ACL(Access Control List)可以针对单一使用者、单一档案或目录来进行r、w、x的权限规范。ACL主要针对以下方面来控制权限:
1)使用者:可以针对使用者。来设定权限
2)群组:针对群组为对象来设定其权限
3)默认属性:还可以针对在该目录下建立新档案、目录时,规范数据默认权限
2.ACL是传统的Unix-Like操作系统额外支持的项目,因此ACL必须要有文件系统的支持才行。目前大部分文件系统都支持ACL的功能,包括ReiserFS,EXT2/EXT3,JFS,XFS等等
3.启动acl的方法:
1)mount -o remount,acl /:只在本次有效,但虚拟机上测试无效
2)直接修改/etc/fstab,在第一条记录的defaults后面加",acl"
4.setfacl [-bkRd][{-m|-x} acl 参数] 目标文件名:取得某个档案或目录的ACL设定项目,参数,
1)-m:设定后续的acl参数后给档案使用,不可与-x合用
2)-x:删除后续的acl参数,不可与-m合用
3)-b:移除所有的ACL设定参数
4)-k:移除预设的ACL参数
5)-R:递归设定acl,亦即包括此目录都会被设定起来
6)-d:设定“预设acl参数”的意思,只对目录有效,在该目录新建的数据会引用此默认值。
7)针对特定使用者的方式u:[使用者列表]:[rwx]
5.getfacl filename:获取文件的acl权限,参数基本与setfacl相同
6.su [-lm][-c 指令][username]:切换用户,参数,
1)- 用户名:单纯使用-如“su -”代表使用login-shell的变量档案读取方式来登入系统(即该参数会读取用户设定的登陆相关的文件,并修改当前的环境变量),若不加用户名称,则代表切换到root的身份。
2)-l:与-类似,但后面需要加欲切换为使用者的账号
3)-m:-m与-p是一样的,表示“使用目前的环境设定,而不读取新使用者的配置文件
4)-c:仅进行一次指令,所以-c后面可以直接加指令
7.sudo [-b][-u 新使用者]:不必输入要切换的用户的密码的情况下,切换账号,这种方法相对比较安全
1)-b:将后续的指令放到背景中让系统自行执行,而不与目前的shell产生影响
2)-u:后面可以接欲切换的使用者,若无此选项则代表切换身份为root,后面可以直接接指令
该指令默认只有root可以执行,若要执行,需要修改/etc/sudoers,可以通过visudo指令去修改该文档
8.visudo:设定sudo通行证,要使账号可以执行sudo指令只需,找到root那一行,然后模仿该行在底下新建一行,将root的地方修改为指定的的账号,该行的值为:root ALL=(ALL) ALL,该行四个组件的意义为:
1)系统哪个账号可以使用sudo指令,默认是root
2)当这个账号有哪部主机联机到本Linux主机,意思是这个账号可能由哪一部网络主机联机过来的,这个设定值可以指定客户端计算机(信任用户)。默认root可以来自任何一部网络主机
3)这个账号可以切换成什么身份来下达后续的指令,默认root可以切换成任何人
4)可用该身份下达什么指令?这个指令务必使用绝对路径撰写。预设root可以切换任何身份且进行任何指令之意
可以通过User_Alias,Cmnd_Alias分别设定用户列表和指令列表达到批量处理的目的
sudo指令在两次时间间隔不超过5分钟,则第二次执行指令不需要再次输入密码
9.w,who:查看当前登入系统的用户,其中w的信息较全一点,可以查看负载均衡等相关信息,而who只有用户名,终端信息和登入时间
10.lastlog:只有root的身份可以使用该指令读取/var/log/lastlog档案
11.write 收信人账号 [用户所在终端接口]:然后是内容,使用该指令可以与当前登入系统的账号对话。
12.mesg [yn]:使用该指令可以接收或拒绝用户通过write发来的的信息,但无法拒绝root发来的信息,其中y表示接收,n表示拒绝
13.wall messge:该指令可以向所有登入系统的账号发送消息。