第十三章、facl及用户及Linux终端
08_01_facl及用户及Linux终端
文件系统访问列表:
如何让tom的文件被jerry读写?
用户名:tom, 基本组:tom
1. 添加jerry访问tom文件的权限: other: rw-
但是这样其他用户也具有了访问权限,不安全。
2. 修改文件的属组为jerry,但是普通用户没有权限执行chown命令
3. FACL
FACL:Filesystem Access Control List
利用文件扩展保存额外的访问控制权限,可以做到只把jerry的访问权限改为: rw-
1. setfacl
-m: 设定额外的访问控制列表
u:UID:perm
g:GID:perm
-x:取消
u:UID
g:GID
-b Remove all
2. getfacl: 查看文件的访问控制列表
e.g: setfacl -m u:hadoop:rw inittab
setfacl -x u:hadoop inittab
添加访问控制列表后
使用ls -l 查看文件,权限位最后多一个+
-rw-rwxr--+ 1 root root 905 7月 16 09:19 inittab
权限验证顺序
一般情况:Owner ->Group -> Other
有facl后:Owner -> facl, user -> Group -> facl, group ->Other
终端有关的几个命令:
1. w:查看所用登录的用户及正在执行的命令
2. who: 查看所用登录的用户,三个字段:用户名,登录终端,时间,注释
-r:显示当前运行级别
练习:
每隔5秒钟,就来查看hadoop是否已经登录,如登录,显示其已经登录,并退出;
sleep命令可以定时
3. whoami:查看有效用户
who am i : 查看真实用户
终端类型:
console:控制台
pty: 物理终端(VGA)
tty:虚拟终端 (VGA)
ttyS:串行终端
pts/#:伪终端
4. last,显示/var/log/wtmp文件,显示用户登录历史及系统重启历史
-n #: 显示最近#次的相关信息
lastb,/var/log/btmp文件,显示用户错误的登录尝试
-n #:
lastlog: 显示每一个用户最近一次的成功登录信息;
-u USERNAME: 显示特定用户最近的登录信息
5. basename:取得路径的基名
$0: 执行脚本时的脚本路径及名称
dirname:去除基名,取得路径的路径
6. mail:邮件
e.g: cat /etc/inittab | mail -s "Subject" root
mail -s "Subject" root < /etc/inittab
7. hostname: 显示主机名
hostname 修改hostname
$HOSTNAME 保存的是登录设定的主机名,
练习:
如果当前主机的主机名不是www.magedu.com,就将其改为www.magedu.com
[ `hostname` != "www.magedu.com" ] && hostname www.magedu.com
如果当前主机的主机名是localhost,就将其改为www.magedu.com
如果当前主机的主机名为空,或者为(none),或者为localhost,就将其改为www.magedu.com
[ -z `hostname` ] || [ `hostname` == '(none)' -o `hostname` == 'localhost' ] && hostname www.magedu.com