1. 程式人生 > >linux知識總結(二)

linux知識總結(二)

知識總結 zhang 小括號 ted 小s etc 查看權限 不同的 rmi

linux知識總結(二)

目錄:

1.知識總結圖

2.一些較為模糊命令的回顧

3.正則表達式與擴展正則表達式


一.知識總結圖

技術分享圖片

二. 模糊命令回顧

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設置個人權限

技術分享圖片
技術分享圖片

     在設置後,ll命令會顯示權限會多一個加號,此時應該調用getfacl 路徑名/ 查看權限,會發現此時多了一個user:liubei:rwx權限,原本liubei在文件夾裏是沒有寫入文件的權限的,而在設置之後便可在此文件夾裏寫入內容

     2.ACL設置組權限

技術分享圖片
技術分享圖片

            可以在圖中看到,liubei,zhangfei都屬於shuguo組,在設置了組權限之後,兩者均可在文件夾裏寫入內容。故ACL也可設置組權限

3.清空ACL權限

技術分享圖片

可以看到原本在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$"

linux知識總結(二)