linux知识总结(二)

目录:

1.知识总结图

2.一些较为模糊命令的回顾

3.正则表达式与扩展正则表达式


一.知识总结图

linux知识总结(二)_第1张图片

二. 模糊命令回顾

1.chown
chown  可以改变文件的所属人和所属组
[xiaoyu@localhost app]$ touch xiaoyufile1
[xiaoyu@localhost app]$ ll ./xiaoyufile1
-rw-rw-r--. 1 xiaoyu xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
[xiaoyu@localhost app]$ chown liubei xiaoyufile1
chown: changing ownership of ‘xiaoyufile1’: Operation not permitted
[xiaoyu@localhost app]$ exit
logout
[root@localhost app]# chown liubei xiaoyufile1
[root@localhost app]# ll ./xiaoyufile1
-rw-rw-r--. 1 liubei xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
[root@localhost app]# chown xiaoyu xiaoyufile1
[root@localhost app]# ll ./xiaoyufile1
-rw-rw-r--. 1 xiaoyu xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
[root@localhost app]# chown liubei.liubei xiaoyufile1
[root@localhost app]# ll ./xiaoyufile1
-rw-rw-r--. 1 liubei liubei 0 Jan 20 23:03 ./xiaoyufile1
[root@localhost app]# chown xiaoyu.xiaoyu xiaoyufile1
[root@localhost app]# ll ./xiaoyufile1
-rw-rw-r--. 1 xiaoyu xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
[root@localhost app]# su - xiaoyu
Last login: Sat Jan 20 23:00:59 CST 2018 on pts/0
[xiaoyu@localhost ~]$ cd /app
[xiaoyu@localhost app]$ chown .liubei xiaoyufile1
chown: changing group of ‘xiaoyufile1’: Operation not permitted
根据以上的命令结果可以得出结论:
1.当前用户为文件所属人时,无权更改文件的所属人和所属组
2.只有当前用户为root时,才可以更改文件所属人和所属组 
3.命令方式为      chown 所属人.所属组 filename    更改文件的所属人和所属组
2.chmod
 chmod 数字的用法我大致记住了 (chmod xxx 文件名),但是符号表示法比较陌生

    [root@localhost app]# ll ./xiaoyufile1
    -rw-rw-r--. 1 700 xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
    [root@localhost app]# chmod o-w xiaoyufile1
    [root@localhost app]# ll ./xiaoyufile1
    -rw-rw-r--. 1 700 xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
    [root@localhost app]# chmod o=rwx xiaoyufile1
    [root@localhost app]# ll ./xiaoyufile1
    -rw-rw-rwx. 1 700 xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
    [root@localhost app]# chmod g=rwx xiaoyufile1
    [root@localhost app]# ll ./xiaoyufile1
    -rw-rwxrwx. 1 700 xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
    [root@localhost app]# chmod u=rwx xiaoyufile1
    [root@localhost app]# ll ./xiaoyufile1
    -rwxrwxrwx. 1 700 xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
    [root@localhost app]# chmod a-w xiaoyufile1
    [root@localhost app]# ll ./xiaoyufile1
    -r-xr-xr-x. 1 700 xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
    [root@localhost app]# chmod a-rx xiaoyufile1
    [root@localhost app]# ll ./xiaoyufile1
    ----------. 1 700 xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
    [root@localhost app]# chmod u+rx xiaoyufile1
    [root@localhost app]# ll ./xiaoyufile1
    -r-x------. 1 700 xiaoyu 0 Jan 20 23:03 ./xiaoyufile1
    ```

    根据以上命令运行结果可以得出结论:
    1. 第一种用法: chmod u/g/o=xxx  filename 将文件所属人/所属组/其他人的权限改为 xxx
    2. 第二种用法; chmod u/g/o/a  -/+  xxx filename  将文件所属人/所属组/其他人/所有人加上xxx权限
    3.缺点:每次只能对一种权限进行操作,较为繁琐
         优点:较为准确
3.ACL访问控制列表
ACL权限:
     由于系统用户过多,会出现不同用户有着不同的权限需求,所以普通的 文件所属人,文件所属组,
     其他人这种普通的权限设置方式便不能满足要求。
     而ACL权限可以给特定的用户以特定的访问权限来实现其要求。

     1.ACL设置个人权限

linux知识总结(二)_第2张图片
linux知识总结(二)

     在设置后,ll命令会显示权限会多一个加号,此时应该调用getfacl 路径名/ 查看权限,
     会发现此时多了一个user:liubei:rwx权限,     原本liubei在文件夹里是没有写入文件的权限的,
     而在设置之后便可在此文件夹里写入内容

     2.ACL设置组权限

linux知识总结(二)_第3张图片
linux知识总结(二)_第4张图片

            可以在图中看到,liubei,zhangfei都属于shuguo组,在设置了组权限之后,
            两者均可在文件夹里写入内容。      故ACL也可设置组权限

3.清空ACL权限

linux知识总结(二)

可以看到原本在ll命令下是有+的,在输入命令后+消失了,即取消了ACL权限。

ACL总结

设置单用户: sefacl -m u:用户名:xxx(权限) 路径
设置组:           sefacl -m g:组名:xxx    (权限) 路径
取消ACL:        setfacl -b 路径
权限优先级:owner > acl user > group 与 acl group 谁的权限多,谁优先  > other

三.正则表达式与扩展正则表达式

这部分没得说,需要大量的练习

添加用户bash、testbash、basher、sh、nologin(其shell为/sbin/nologin),找出/etc/passwd用户名同shell名的行

cat /etc/passwd | grep "\(^.*\)\>.*\<\1$"

显示三个用户root、mage、wang的UID和默认shell

cat /etc/passwd | grep -w "^root\|mage\|wang\>"|cut -d":" -f3,7

找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行

cat /etc/rc.d/init.d/functions|grep -w "^[[:alpha:]]*_.*[(][)].*"

使用egrep取出/etc/rc.d/init.d/functions中其基名

 echo  "/etc/rc.d/init.d/functions"|egrep -o "\<[[:alpha:]]*$"

使用egrep取出上面路径的目录名

echo  "/etc/rc.d/init.d/functions"|egrep -o "^.*/"

显示/proc/meminfo文件中以大小s开头的行

cat /proc/meminfo |grep -i ^s

显示/etc/passwd文件中不以/bin/bash结尾的行

cat /etc/passwd | grep -v /bin/bash

显示用户rpc默认的shell程序

    cat /etc/passwd |grep "^rpc\b" |cut -d: -f71

找出/etc/passwd中的两位或三位数

cat /etc/passwd |grep "\b[0-9]\{2,3\}\b"

显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行

    cat /etc/grub2.cfg |egrep "^[[:space:]]+[[:graph:]].*"

找出"netstat -tan"命令的结果中以'LISTEN'后跟任意多个空白字符结尾的行

netstat -tan |grep "LISTEN[[:space:]]\+$"

显示CentOS7上所有系统用户的用户名和UID

cat /etc/passwd |cut -d: -f1,3 |grep -v root |grep "\b[[:digit:]]\{1,3\}\b$"