Linux01-Linux文件权限facl及用户及Linux终端讲解和实战26


一、文件系统访问控制列表

   1、FACL:Filesystem Access Control List

       利用文件扩展保存额外的访问控制权限;

   2、使用命令:

       a)getfacl 查询文件额外的权限

       b)setfacl

           -m 设定

               u:UID:perm

               g:GID:perm

           -x 取消

               u:UID,如:setfacl -x u:hadoop /tmp/backup/inittab ;

               g:GID

如:[root@localhost backup]# setfacl -m u:hadoop:rw ./inittab

[root@localhost backup]# ls -l

total 8

-rw-rw-r--+ 1 root root 1677 May 11 14:59 inittab

[root@localhost backup]# getfacl ./inittab

# file: inittab

# owner: root

# group: root

user::rw-

user:hadoop:rw-

group::r--

mask::rw       ---->表示user和group的权限不能超出mask,但是会随着权限更改而变化;

other::r--

       c)用户访问文件正常顺序:Owner-->Group-->Other;

       d)用户用额外权限访问文件顺序:Owner-->facl,user-->Group-->facl,group-->Other;

二、几个用户命令

   1、whoami,显示当前系统的有效用户,并非是登录用户

   2、who,显示当前登录系统的用户和终端有哪些

       -H :显示用户相关的标题

       -r :用户登录级别

   3、w,登录用户正在做什么,比who显示更详细

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

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

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

       -n #:

   6、lastlog: 显示每一个用户最近一次的成功登录信息;

       -u USERNAME: 显示特定用户最近的登录信息

   7、basename,取文件基名

       $0: 执行脚本时的脚本路径及名称

   8、mail,查收或发送邮件

       如:cat /etc/fstab | mail -s "Hello" root

   9、hostname: 显示或更改主机名;

练习1:

   1、如果当前主机的主机名不是www.magedu.com,就将其改为www.magedu.com

[ `hostname` != 'www.magedu.com' ] && hostname www.magedu.com

   2、如果当前主机的主机名是localhost,就将其改为www.magedu.com

[ `hostname` = 'localhost' ] && hostname www.magedu.com

   3、如果当前主机的主机名为空,或者为(none),或者为localhost,就将其改为www.magedu.com

       [ -z `hostname` ] || [ `hostname` == '(none)' -o `hostname` == 'localhost' ] && hostname www.magedu.com


   10、生成0-32768随机数,如:echo $RANDOM

       a)随机数生成器:熵池

           /dev/random:

           /dev/urandom:

三、Linux终端

1、终端类型:

       console :控制台

       pty :物理终端(VGA)

       tty# :虚拟终端(VGA)

       ttys# :串行终端

       pts/# :伪终端 ;

练习2,写脚本:

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

参考答案:

#!/bin/bash

#

declare -i MAX=0

declare -i MIN=0

for I in {1..10}; do

 MYRAND=$RANDOM

 [ $I -eq 1 ] && MIN=$MYRAND    --->给个初始值

if [ $I -le 9 ]; then

  echo -n "$MYRAND,"           --->不换行循环显示前9个数字

else

   echo "$MYRAND"

 fi

 [ $MYRAND -gt $MAX ] && MAX=$MYRAND

 [ $MYRAND -lt $MIN ] && MIN=$MYRAND

done

echo $MAX, $MIN 。


你可能感兴趣的:(Random,w,basename,setfacl,getfacl,LASTB)