ACL的使用
我们知道文件的访问权限的是根据文件的属主、属组和其他用户这三种来设置,而ACL是提供这三种之外的更加细部的权限设定。ACL可以对单一用户和目录及文件来设置权限,这对于需要特殊的权限来说很有帮助。在之前谈到的SUID和SGID这些特殊权限,不过这些特殊权限和ACL相比,ACL可以对特定的用户来设定更加细部的权限,而SUID和SGID则是对于多个用户或者一组用户来说比较合适。
在谈ACL的使用之前,我们先一起来谈谈用户访问文件时的顺序是如何进行的?
在这里暂时不讨论有关SElinux的使用。
在没有使用ACL的前提下,用户是这样来访问文件的:
首先当某一个用户访问一个文件时,在用户访问这个文件的时候会产生一个相应的进程,例如,使用cat /etc/inittab命令查看文件时,系统会为cat命令产生一个进程。而这个进程的属主为启动这个文件的用户,进程的属组则是启动这个文件用户的基本组(默认和用户名相同)。当这个进程访问文件时,首先会查看进程的属主和文件的属主是否相同;如果不相同,则查看进程的属主是否是文件的属组中的成员(不是查看进程的属组是否和文件的属组是否一样);最后如果都不想相同,则是以其他用户的身份来访问的。在这种情况下,用户访问文件的顺序流程为:
Owner-->Group-->Other
如果文件使用了ACl,用户是这样来访问的:
首先当某一个用户来访问一个文件时,会检查进程的属主是否和文件的属主的是否一致;如果不一致,在检查这个文件是否设置了ACL,不过此时检查的是哪些用户对文件有权限(基于用户来检查的);如果仍然不一致,在检查该进程的属主是否是文件的属组中的成员;如果也不是,在检查这个文件是否设置了基于用户组的ACL(原理同用户的访问方法);如果这些都不行,则以其他用户的身份来访问。
访问流程为:
Owner-->FileACL(user) -->Group-->FileACL(group)-->Other
使用ACL来为文件设定额外的权限
setfacl [-m|-x] [ug]:[USERNAME|GROUPNAME]:PERM FILE (PREM是rwx形式的)
-m:设定ACL
-x:取消ACL,注意取消ACL的是时候,不需要加权限。
-b:删除该文件的所有acl参数
u:指定用户对该文件所具有的的权限
g:指定用户组对该文件所具有的权限
m:PREM:设置mask的值(指定文件的有效权限,使用者和群组的权限必须在mask范围内才能生效,否则使用者和群组的真正的权限为mask权限)
如:# setfacl -m m:r file1
那么如何获取已经设定好的ACL呢?
getfacl FILE
接下里介绍几种命令系统查看命令
whoami:查看当前系统上面登入的有效用户。(注意:使用su命令切换的用户不算是登陆进去的用户)
who:查看有哪些用户登入到系统上面来了。(注意:使用su命令切换的用户不算是登陆进去的用户)
终端类型:
console:控制台
pty:物理终端(VGA)
tty:虚拟终端(VGA)
ttys:串行终端
pts/#:伪终端
who -r:显示当前系统运行的级别(注意:使用su命令切换的用户不算是登陆进去的用户)
w:查看已经登入进去的用户以及他们正在做些什么
last:显示/var/log/wtmp文件的内容,显示的是用户登入历史及用户重启历史
-n #:显示最近几次的历史信息
lastb:显示/var/log/btmp文件的内容,显示的是用户错误的登入尝试
-n #:显示最近几次的错误登入尝试
lastlog:显示系统上面每一个用户最近一次登入的时间
-u USERNAME:显示特定用户的最近一次的登入时间信息
basename /PATH/TO/SOMEFILE :显示路径的基名
所谓基名就是指定路径的最后一个名称。
例如/etc/passwd的基名就是passwd
关于mail的使用在此简略介绍
mail:不加任何选项表示查看邮件,看完的邮件存放在~/mbox下
#(序号):表示查看第几个邮件的内容
mail -s '主题' USERNAME 内容 表示给某个用户发送邮件
使用.结束邮件内容
关于hostname的语法
hostname:不加选项时显示当前的主机名
hostname NAME:修改当前的主机名
HOSTNAME:用来保存主机名
使用 echo $HOSTNAME 来显示保存的主机名
关于随机生成数的产生RANDOM
RANDOM变量产生的随机数的范围为0-32768
使用echo $RANDOM可以显示产生的随机数
产生随机数的随机生成器有两个:
/dev/random
/dev/urandom
本文出自 “linux学习之路” 博客,谢绝转载!