Shell學(xué)習(xí)之路-(02-文件的權(quán)限修改)

題圖:gratisography

文件的權(quán)限修改

1 分析

新建兩個(gè)測(cè)試腳本test_1.sh和test_2.sh,內(nèi)容大概如下就行:

#!/bin/sh

echo "test_1

發(fā)現(xiàn)這時(shí)如果直接輸入./test_1.sh是沒辦法執(zhí)行該腳本的(輸入時(shí)也沒辦法使用Tab鍵進(jìn)行補(bǔ)全),會(huì)提示權(quán)限限制,如下:

linye@ly:~/test_scripts$ ./test_1.sh
-bash: ./test_1.sh: Permission denied

通過llls -la查看文件的權(quán)限,如下:

linye@ly:~/test_scripts$ ll
drwxrwxr-x  2 linye linye 4096 Mar 17 14:04 ./
drwxr-xr-x 49 linye linye 4096 Mar 17 14:04 ../
-rw-rw-r--  1 linye linye   25 Mar 17 14:01 test_1.sh
-rw-rw-r--  1 linye linye   26 Mar 17 14:01 test_2.sh

一般只需要關(guān)注第一列即可,第一列一共有十個(gè)字符,第一個(gè)字符為d表示該對(duì)象對(duì)一個(gè)文件夾,為-表示該對(duì)象為一個(gè)文件。

后面九個(gè)字符分為3-3-3,三組每一組三個(gè)字符,三個(gè)字符分別代表讀、寫、執(zhí)行,如果該位置有對(duì)應(yīng)的字符說明有該權(quán)限,如果為-,則表示沒有該權(quán)限,而三組從左至右分別代表為文件屬主、與屬主同組的用戶、系統(tǒng)中其他用戶。

所以新創(chuàng)建的腳本權(quán)限為-rw-rw-r--,即可讀可寫但是沒有可執(zhí)行的權(quán)限,所以上面輸入./test_1.sh無(wú)法執(zhí)行。

2 修改

修改文件的權(quán)限有很多種方式/格式,這邊就只介紹幾個(gè)經(jīng)常使用的指令即可。

2.1 直接法

用戶的表達(dá)有如下幾個(gè):

  • u 表示“用戶(user)”,即文件或目錄的所有者。
  • g 表示“同組(group)用戶”,即和文件屬主有相同組ID的所有用戶。
  • o 表示“其他(others)用戶”。
  • a 表示“所有(all)用戶”。

操作額表達(dá)有如下幾個(gè):

  • r 可讀。
  • w 可寫。
  • x 可執(zhí)行。

所以我們可以使用指令chmod u=rwx,g=rwx,o=rwx test_1.sh來修改權(quán)限,如下:

linye@ly:~/test_scripts$ chmod u=rwx,g=rwx,o=rwx test_1.sh
linye@ly:~/test_scripts$ ls -la
total 16
drwxrwxr-x  2 linye linye 4096 Mar 17 14:04 .
drwxr-xr-x 49 linye linye 4096 Mar 17 14:04 ..
-rwxrwxrwx  1 linye linye   25 Mar 17 14:01 test_1.sh
-rw-rw-r--  1 linye linye   26 Mar 17 14:04 test_2.sh

同理我們可以使用chmod a=rwx test_2.sh來修改權(quán)限,如下:

linye@ly:~/test_scripts$ chmod a=rwx test_2.sh
linye@ly:~/test_scripts$ ls -la
total 16
drwxrwxr-x  2 linye linye 4096 Mar 17 14:04 .
drwxr-xr-x 49 linye linye 4096 Mar 17 14:04 ..
-rwxrwxrwx  1 linye linye   25 Mar 17 14:01 test_1.sh
-rwxrwxrwx  1 linye linye   26 Mar 17 14:04 test_2.sh

2.2 數(shù)值法

數(shù)值法即將rwx三個(gè)操作轉(zhuǎn)化成三個(gè)二進(jìn)制數(shù)值即可,如數(shù)字7代表二進(jìn)制的111,即可讀可寫可執(zhí)行;數(shù)字5代表二進(jìn)制101,即可讀不可寫可執(zhí)行。

所以可以有如下操作:

linye@ly:~/test_scripts$ chmod 543 test_1.sh
linye@ly:~/test_scripts$ ls -la
total 16
drwxrwxr-x  2 linye linye 4096 Mar 17 14:04 .
drwxr-xr-x 49 linye linye 4096 Mar 17 14:04 ..
-r-xr---wx  1 linye linye   25 Mar 17 14:01 test_1.sh
-rwxrwxrwx  1 linye linye   26 Mar 17 14:04 test_2.sh

輸入了543三個(gè)數(shù)值,分別對(duì)應(yīng)三個(gè)用戶的權(quán)限,即101、100、011。

當(dāng)然還有很多其他方法,這邊就不過多介紹了,夠用就行。

將test_2.sh設(shè)置成可執(zhí)行后,就可以通過./test_2.sh直接執(zhí)行了

linye@ly:~/test_scripts$ ./test_2.sh
test_2

還有一種是不用修改權(quán)限,直接使用sh test_2.sh,這時(shí)候就跟文件頭部的#! /bin/sh無(wú)關(guān)了。

文件的權(quán)限修改的分析就到這邊,有感悟時(shí)會(huì)持續(xù)會(huì)更新。

注:以上內(nèi)容來自C語(yǔ)言中文網(wǎng)及本人在使用過程的一些理解整理。如有侵權(quán),請(qǐng)及時(shí)通知我,我將馬上刪除,如有錯(cuò)誤之處也請(qǐng)指出,進(jìn)行探討學(xué)習(xí)。文章只是起一個(gè)引導(dǎo)作用,詳細(xì)的數(shù)據(jù)解析內(nèi)容還請(qǐng)查看Shell相關(guān)教程,感謝您的查閱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容