Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75358
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 434
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-23 09:31
个人简介

天行健,君子以自强不息;地势坤,君子以厚德载物

文章分类
文章存档

2018年(11)

2017年(30)

我的朋友

分类: LINUX

2017-05-05 00:06:56

facl及用户及Linux终端
    文件系统访问列表:
        FACL:Filesystem Access Control List
        利用文件扩展保存额外的访问控制权限
        setfacl:设置facl
            -m:设定
                u:UID:perm 针对文件添加额外用户访问控制权限
                    例:[root@Ourlab backup]# setfacl -m u:hadoop:rw inittab
                        [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` != '' ] && hostname
            例:如果当前主机名为空、或者为(none)、或者为localhost,就将其改为
                [root@Ourlab ~]# [ -z `hostname` ] || [ `hostname` == '(none)' -o `hostname` == 'localhost' ] && hostname
    
    生成随机数
        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/#:伪终端
阅读(858) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~