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

Linux学习之二十一(facl及用户及linux终端)

2017-05-10 13:55 357 查看
facl及用户及Linux终端

    文件系统访问列表:

        FACL:Filesystem Access Control List

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

        setfacl:设置facl

            -m:设定

                u:UID:perm 针对文件添加额外用户访问控制权限

                    例:[root@Ourlab backup]# setfacl -m u:hadoop:rw inittab

                      
4000
 [root@Ourlab backup]# getfacl inittab

                        # file: inittab

                        # group: root

                        user::rw-

                        user:hadoop:rw-

                        group::r--

                        mask::rw-

                        other::r--

                g:GID:perm 针对文件添加额外属组访问控制权限

                    例:[root@Ourlab backup]# setfacl -m g:mygroup:rw inittab

                        [root@Ourlab backup]# getfacl inittab

                        # file: inittab

                        # owner: root

                        # group: root

                        user::rw-

                        user:hadoop:rw-

                        group::r--

                        group:mygroup:rw-

                        mask::rw-

                        other::r--

                d:u:UID:perm 针对目录添加默认用户访问控制权限,其目录下的文件继承该访问控制权限

                    例:[root@Ourlab backup]# setfacl -m d:u:hadoop:rw /backup

                        [root@Ourlab backup]# getfacl /backup

                        getfacl: Removing leading '/' from absolute path names

                        # file: backup

                        # owner: root

                        # group: root

                        user::rwx

                        user:hadoop:rw-

                        group::r-x

                        mask::rwx

                        other::r-x

                        default:user::rwx

                        default:user:hadoop:rw-

                        default:group::r-x

                        default:mask::rwx

                        default:other::r-x

                        [root@Ourlab backup]# touch b

                        [root@Ourlab backup]# getfacl b

                        # file: b

                        # owner: root

                        # group: root

                        user::rw-

                        user:hadoop:rw-

                        group::r-x            #effective:r--

                        mask::rw-

                        other::r--

                d:g:GID:perm 针对目录添加默认属组访问控制权限,其目录下的文件继承该访问控制权限

                    例:[root@Ourlab backup]# setfacl -m d:g:mygroup:rw /backup

                        root@Ourlab backup]# setfacl -m d:g:mygroup:rw /backup

                        root@Ourlab backup]# setfacl -m d:g:mygroup:rw /backup

                        # file: backup

                        # owner: root

                        # group: root

                        user::rwx

                        user:hadoop:rw-

                        group::r-x

                        mask::rwx

                        other::r-x

                        default:user::rwx

                        default:user:hadoop:rw-

                        default:group::r-x

                        default:group:mygroup:rw-

                        default:mask::rwx

                        default:other::r-x

                        [root@Ourlab backup]# touch c

                        [root@Ourlab backup]# getfacl c

                        # file: c

                        # owner: root

                        # group: root

                        user::rw-

                        user:hadoop:rw-

                        group::r-x            #effective:r--

                        group:mygroup:rw-

                        mask::rw-

                        other::r--

            -x:取消

                u:UID

                    例:[root@Ourlab backup]# setfacl -x u:hadoop inittab

                        [root@Ourlab backup]# getfacl inittab

                        # file: inittab

                        # owner: root

                        # group: root

                        user::rw-

                        group::r--

                        group:mygroup:rw-

                        mask::rw-

                        other::r--

                

                g:GID

                    例:[root@Ourlab backup]# setfacl -x g:mygroup inittab

                        [root@Ourlab backup]# getfacl inittab

                        # file: inittab

                        # owner: root

                        # group: root

                        user::rw-

                        group::r--

                        mask::r--

                        other::r--

            选项补充:

            -b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。

            -k,--remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。

            -n,--no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。

            --mask:重新计算有效权限,即使ACL mask被明确指定。

            -d,--default:设定默认的acl规则。

            --restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除--test以外的任何参数一同执行。

            --test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。

            -R,--recursive:递归的对所有文件及目录进行操作。

            -L,--logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。

            -P,--physical:跳过所有符号链接,包括符号链接文件。

            --version:输出setfacl的版本号并退出。

            --help:输出帮助信息。

            --:标识命令行参数结束,其后的所有参数都将被认为是文件名

            -:如果文件名是-,则setfacl将从标准输入读取文件名。

                

        getfacl:获得facl

            例:[root@Ourlab backup]# getfacl inittab

                # file: inittab

                # owner: root

                # group: root

                user::rw-

                group::r--

                other::r--

    用于显示用户的几个命令

        w:显示谁登录和他们在做什么

            例:[root@Ourlab ~]# w

                23:34:15 up  1:07,  2 users,  load average: 0.22, 0.08, 0.03

                USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

                root     pts/1    192.168.100.104  22:38    0.00s  0.17s  0.02s w

                root     pts/2    192.168.100.104  23:25    8:23   0.06s  0.02s -bash

        

        who:显示谁登录了系统

            例:[root@Ourlab ~]# who

                root     pts/1        2017-05-03 22:38 (192.168.100.104)

            -r:显示当前运行级别

            例:[root@Ourlab ~]# who -r

                run-level 5  2017-05-03 22:27                   last=S

            -H:显示标题栏

            例:[root@Ourlab ~]# who -H

                NAME     LINE         TIME             COMMENT

                root     pts/1        2017-05-03 22:38 (192.168.100.104)

            例:查看某个用户是否正在登录;

                [root@Ourlab ~]# who | grep "hadoop"

                hadoop   pts/3        2017-05-03 23:30 (192.168.100.104)

            例:写一个脚本:每隔5秒钟,就来查看hadoop是否已经登录,如果登录,显示已经登录,并退出;

                sleep:睡眠

        whoami:显示有效的用户名

        

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

            -n #:只显示最近#次的登录信息

                例:[root@Ourlab ~]# last -n 2

                    wolf     pts/3        192.168.100.104  Wed May  3 23:39 - 23:39  (00:00)    

                    hadoop   pts/3        192.168.100.104  Wed May  3 23:30 - 23:31  (00:01)    

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

            例:[root@Ourlab ~]# lastb

                wolf     ssh:notty    192.168.100.104  Wed May  3 23:39 - 23:39  (00:00)    

                hadoop   ssh:notty    192.168.100.104  Wed May  3 23:27 - 23:27  (00:00)    

            -n #:只显示最近#次的错误登录信息

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

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

                例:[root@Ourlab ~]# lastlog -u hadoop

                    用户名           端口     来自             最后登陆时间

                    hadoop           pts/3    192.168.100.104  三  5月  3 23:30:11 +0800 2017

        basename:取路径的基名

            例:[root@Ourlab ~]# basename /etc/abc/me

                me

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

        mail:发送及查收邮件

            -s:指定邮件主题

            例:[root@Ourlab ~]# cat /etc/fstab | mail -s "How are you?" root

                或

                [root@Ourlab ~]# mail -s "How are you?" root < /etc/fstab

        hostname:显示或修改当前主机的主机名

            例:如果当前主机的主机名不是www.magedu.com,就改成www.magedu.com

              [root@Ourlab ~]# [ `hostname` != 'www.magedu.com' ] && hostname www.magedu.com

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

                [root@Ourlab ~]# [ -z `hostname` ] || [ `hostname` == '(none)' -o `hostname` == 'localhost' ] && hostname www.magedu.com

    

    生成随机数

        RANDOM:在0-32768范围内随机产生一个数(内部环境变量)

            例:[root@Ourlab ~]# echo $RANDOM

                21324

                [root@Ourlab ~]# echo $RANDOM

                3668

        随机数生成器:熵池

            /dev/random:

            /dev/urandom

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

                #!/bin/bash

                #

                declare -i MAX=0

                declare -i MIN=0

                for I in {1..10}; do

                    MYRAND=$RANDOM

                    [ $I -eq 1 ] && MIN=$RANDOM

                    if [ $I -le 9 ]; then

                        echo -n "$MYRAND,"

                    else

                        echo "$MYRAND"

                    fi

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

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

                done

                echo $MAX,$MIN

                

    终端类型:

        console:控制台

        pty:物理终端(VGA)

        tty#:虚拟终端(VGA)

        ttys#:串行终端

        pts/#:伪终端
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux