您的位置:首页 > 运维架构 > Linux

facl以及linux终端

2016-01-19 16:38 531 查看
facl:文件系统访问控制列表(filesystem access control list)
利用文件扩展保存额外的访问控制权限

假设tom和jerry不在同一个组,但是tom有个文件,它希望jerry拥有执行权限,又不想其他人也拥有执行权限,这个时候我们就可以利用facl

getfacl
setfacl
-m:设定
u:UID:perm
g:GID:perm -x:取消

u:UID
g:GID

例子:
[root@logstash tmp]# getfacl test
# file: test
# owner: root
# group: root
# flags: s-t
user::rwx
group::r-x
other::r-x
[root@logstash tmp]# setfacl -m u:tom:rwx /tmp/test
[root@logstash tmp]# getfacl test
# file: test
# owner: root
# group: root
# flags: s-t
user::rwx
user:tom:rwx
group::r-x
mask::rwx
other::r-x
[root@logstash tmp]# setfacl -x u:tom test
[root@logstash tmp]# getfacl test
# file: test
# owner: root
# group: root
# flags: s-t
user::rwx
group::r-x
mask::r-x
other::r-x
当文件没有设定facl属性时,系统对比文件权限的过程为:
owner-->group-->other
而当文件设有facl属性时,对比过程如下:
owner-->facl.user-->group-->facl.group-->other
所以当对文件设置了facl属性时,系统的工作效率会下降

facl中的mask字段:
mask用来设定默认不能超过这个字段的权限,就是说假设mask值为rw-,而你设置某个用户为rwx,这个里面的x权限是不会生效的,具体设置mask的方法有待研究

终端类型:
console:控制台

pty:物理终端

tty#:虚拟终端

ttys#:串行终端

pts#:伪终端

几个命令:
whoami:打印当前登陆者身份

who:显示谁登陆过系统

w:显示谁登陆系统,并正在做什么

last:显示/var/log/wtmp文件,显示用户登录历史以及系统重启历史

-n #:显示最近#次的相关信息

lastb:/var/log/btmp文件,显示用户的错误的登录尝试

-n #:显示最近#次的相关信息
lastlog:显示每一个用户最近一次的成功登录信息

basename:截取文件名称,比如/etc/passwd,截取为passwd

$0:显示脚本本身的名称

hostname:显示主机名

生成随机数:
RANDOM:0-32768
echo $RANDOM

随机数生成器:熵池
/dev/random:数据的随机性比较好,但是会中断,速度较慢
/dev/urandom: 数据的随机性较差,但是不会中断,速度较快

random和urandom区别:
两个都是从熵池中取随机数,但是random会在熵池数据被取光的时候中断等待熵池重新生成随机数,而urandom则在被取光的时候利用软件生成随机数,因为软件生成的随机数总是有规律可循的,所以随机性较差。

熵池:当前系统的环境噪音,熵指的是一个系统的混乱程度,系统噪音可以通过很多参数来评估,如内存的使用,文件的使用量,不同类型的进程数量等等

写一个脚本:利用RANDOM变量生成10个随机数,并找出其中的最大值和最小值

#!/bin/bash
ran=$RANDOM
max=$ran
min=$ran
for i in {1..10}
do
echo $ran
ran=$RANDOM
if [ $ran -gt $max ];then
max=$ran
fi
if [ $ran -lt $min ];then
min=$ran
fi
done
echo "MAX: $max MIN:$min"

本文出自 “单季稻” 博客,请务必保留此出处http://linzb.blog.51cto.com/5192423/1736543
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: