linux知識總結(二)
阿新 • • 發佈:2018-01-21
知識總結 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知識總結(二)