第十三章、facl及用户及Linux终端

 

08_01_facl及用户及Linux终端

文件系统访问列表:

如何让tom的文件被jerry读写?

用户名:tom, 基本组:tom 

1. 添加jerry访问tom文件的权限: other: rw-

但是这样其他用户也具有了访问权限,不安全。

 

2. 修改文件的属组为jerry,但是普通用户没有权限执行chown命令

3. FACL

 

FACLFilesystem 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