Linux系列教程(五)——Linux鏈接命令和權限管理命令
前一篇博客我們講解了Linux文件和目錄處理命令,還是老生常淡,對於新手而言,我們不需要完全記住命令的詳細語法,記住該命令能完成什麽功能,然後需要的時候去查就好了,用的多了我們就自然記住了。這篇博客我們接著講Linux命令——鏈接命令和權限管理命令。
1、鏈接命令
一、生成鏈接文件命令:ln
①、命令名稱:ln
②、英文原意:link
③、命令所在路徑:/bin/link
④、執行權限:所有用戶
⑤、功能描述:生成鏈接文件
⑥、語法: ln -s 【源文件】【目標文件】
-s 創建軟鏈接
不加 -s 創建硬鏈接
例子:一、創建文件 /etc/issue 的軟鏈接 /tmp/issue.soft:ln -s /etc/issue /tmp/issue.soft
二、創建文件 /etc/issue 的硬鏈接 /tmp/issue.hard:ln /etc/issue /tmp/issue.hard
我們可以看到:
第一:軟鏈接 前面是 l 開頭的(link),而硬鏈接是 - 開頭,表示文件
第二:軟鏈接所有者和所屬組具有全部操作的權限,rwxrwxrwx;而硬鏈接不是。也就是軟鏈接的前面都是 lrwxrwxrwx
第三:軟鏈接類似與 windows 的快捷方式,有一個明顯的箭頭指向,而指向的是源文件
第四:硬鏈接文件除了文件名與源文件不一樣,其余所有信息都是一樣的。類似於 cp 復制操作。但是又和復制不一樣,硬鏈接可以同步更新。
第五:通過 ls -i 操作,來查看 文件的 i 節點。發現硬鏈接和源文件的 i 節點是相同的,而軟鏈接與源文件的 i 節點是不同的
第六:不允許將硬鏈接指向目錄;不允許跨分區創建硬鏈接
2、權限管理命令
一、更改文件或目錄權限命令:chmod
①、命令名稱:chmod
②、英文原意:change the permissions mode of a file
③、命令所在路徑:/bin/chmod
④、執行權限:所有用戶
⑤、功能描述:改變文件或目錄權限
⑥、語法: chmod 【{ugoa}{+-=}{rwx}】【文件或目錄】
【mode=421】【文件或目錄】
-R 遞歸修改
註意:不是每一個Linux用戶都有權限更改某個文件或目錄權限,能更改文件或目錄權限的只有兩種用戶
①、文件的所有者。我們通過ls命令查看某個文件的詳細信息,可以看到該文件的所有者。
②、root用戶,這不用多說,root用戶是linux系統權限最大的用戶。別人不能幹的事,root用戶都能幹。
對於上面的語法 chmod 【{ugoa}{+-=}{rwx}】【文件或目錄】,我們要知道ugoa分別是:u:表示所有者,g:表示所屬組,o:表示其他人,a:表示所有人。而rwx表示的意思如下:
對於【mode=421】【文件或目錄】,這是我們將權限用數字表示,其中 r 表示4,w表示2,x表示1,分別是2的0次方,1次方,2次方。那麽我們可以這樣理解:具有 rwx 權限的數字就是 7,具有 rw- 權限的數字是 6,具有 r-- 權限的數字是 4。
範例1:我們賦予 tmp 目錄下的 tmp.log 所有者 x 的權限;賦予 所屬組 w 權限,其他人 w 權限。
chmod u+x /tmp/tmp.log
chmod g+w,o+w /tmp/tmp.log
將上面例子改為用 數字來操作,也就是說我們要給 tmp.log賦予的文件權限是 rwxrw-rw-,用數字表示是766。chmod 766 tmp.log
我們還可以遞歸賦予權限,也就是加上 -R 參數給指定目錄下的所有文件或目錄賦予指定權限。
範例2:給 tmp 目錄下所有文件和目錄賦予 776 的權限
chmod -R 776 /tmp
二、改變文件或目錄所有者命令:chown
①、命令名稱:chown
②、英文原意:change file ownership
③、命令所在路徑:/bin/chown
④、執行權限:所有用戶
⑤、功能描述:改變文件或目錄的所有者
⑥、語法: chmod 【用戶】【文件或目錄】
註意:能更改文件或目錄的所有者用戶是 root
這裏我們通過useradd【用戶名】命令創建用戶,然後通過passwd【用戶名】輸入密碼,這兩個命令後面會將。我們通過這兩個命令創建 vae 用戶
然後我們將tmp.log的所有者更改為 vae 用戶:chown vae tmp.log
三、改變文件或目錄所屬組命令:chgrp
①、命令名稱:chgrp
②、英文原意:change file group ownership
③、命令所在路徑:/bin/chown
④、執行權限:所有用戶
⑤、功能描述:改變文件或目錄的所屬組
⑥、語法: chgrp【用戶組】【文件或目錄】
註意:能更改文件或目錄的所有者用戶是 root
四、顯示、設置文件的缺省權限命令:umask
①、命令名稱:umask
②、英文原意:the user file-creation mask
③、命令所在路徑:shell 內置命令
④、執行權限:所有用戶
⑤、功能描述:顯示、設置文件的缺省權限
⑥、語法: umask 【-S】
-S 以rwx形式顯示新建文件的缺省權限
註意:可能大家不太明白這個命令的意思,我們分別執行umask和 umask -S ,如下:
其中umask 執行顯示結果是 0022,第一個0表示特殊權限,後面我們會單獨進行講解有哪幾種特殊權限。022表示權限的掩碼值,我們用7 7 7 減去 0 2 2得到755(是每一位相減),表示的就是下面通過加上-S輸出的rwxr-xr-x,這個值用數字表示就是755.
這個意思說明創建一個文件的默認權限所有者為rwx,所屬組為rx,其他人為rx。也就是說創建一個新文件默認權限為 rwxr-xr-x,我們創建一個文件來驗證一下:
我們發現使用touch命令創建了一個文件a.txt,然後發現權限並不是rwxr-xr-x,而是rw-r--r--。對比發現少了三個x,也就是少了可執行權限。這是為什麽呢?
這是因為在Linux系統中,所有新創建的文件都是沒有可執行權限的。這是出於Linux系統的一種自我保護,因為類似的病毒木馬程序都是具有可執行權限的。所以在Linux系統中,新創建的文件是沒有可執行權限的。
那麽我們如何設置默認權限呢?比如我們想將新創建的文件權限設置為rwxr-xr--,也就是754。我們用777減去754得到023。也就是通過執行 umask 023 來完成默認權限設置。
3、總結
本篇文章我們講解了鏈接命令ln和權限管理命令。首先對於鏈接命令,我們要註意 ln -s 表示創建軟鏈接,不加-s表示創建硬鏈接,我們需要註意軟鏈接和硬鏈接的區別,軟鏈接類似與 windows 的快捷方式,有一個明顯的箭頭指向,而指向的是源文件。而硬鏈接我們可以想象為 cp -p +同步更新,也就是說創建的硬鏈接和原文件保持一樣的屬性,而且原文件更改了,硬鏈接也會更改。
接著我們介紹了幾個權限管理命令,對於權限,我們說夠用就好,很多新手在進行權限操作是,上來就是 chmod 777 【文件或目錄】,這樣雖然省事,但是顯然是不夠準確的,chmod命令可以更改文件或目錄權限,chown命令可以改變文件或目錄所有者,chgrp命令可以改變文件或目錄所屬組。我們需要註意的是,後面兩個命令只能由root用戶來完成,而chmod命令除了root用戶能完成,還有所更改文件或目錄的所有者。
Linux系列教程(五)——Linux鏈接命令和權限管理命令