
文件的權(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
通過ll或ls -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)教程,感謝您的查閱。