iT邦幫忙

2022 iThome 鐵人賽

DAY 13
2
Software Development

林姓商人與指令操作的秘密—談 Linux command line interface系列 第 13

Day 13:權限的神秘數字 777:談權限的設置方式

  • 分享至 

  • xImage
  •  

前面談了針對檔案的讀寫之後,我們終於可以實際看到權限的效果,以及討論怎麼設置權限了。

權限的設置,如之前說過的一樣,如果一個檔案沒有 r 的權限,那麼該用戶就不能讀取

ls -al /etc
-r--r-----  1 root root     4328 Feb  8  2021 sudoers

cat /etc/sudoers
cat: /etc/sudoers: Permission denied

如果沒有 w 的權限,那麼就不能寫入

vim /etc/sudoers

嘗試編輯存檔後會看到

E45: 'readonly' option is set (add ! to override)

那麼。要怎麼樣去編輯權限呢?這邊要用到 chmod 這個指令

NAME
       chmod - change file mode bits

實際使用的方式如下

sudo chmod 777 aaa.txt
ls -al

-rwxrwxrwx  1 ec2-user ec2-user     5 Sep 12 15:38 aaa.txt

可能有些人開始會有些疑問了:這邊的 777 是怎麼回事?

其實是這樣的。Linux 設計權限時,很聰明的用二進位來設計。每個數字分別代表本人、同群組、其他人的權限。在單個數字中,如果二進位包含 4 代表可以讀取,包含 2 代表可以寫入,包含 1 代表可以執行。

所以,我們剛剛所使用的 777,就代表對本人、同群組、其他人,都同時可以讀取、編輯、執行的意思。簡單的說,就是把權限全部開放!

所以,如果我們想要,本人可以讀取、編輯、不能執行。同群組以及其他人都不能執行的話,那就要用 600

sudo chmod 600 aaa.txt
ls -al

-rw-------  1 ec2-user ec2-user     5 Sep 12 15:38 aaa.txt

是不是很神奇呢?

當然,我們也可以用比較語意化的寫法,這樣對不熟悉二進位權限設置的人,會比較好懂一點:

+ 代表增加,- 代表減少。rwx 分別代表讀取、寫入、執行。

chmod +x aaa.txt
-rwx--x--x  1 ec2-user ec2-user     5 Sep 12 15:38 aaa.txt

u 可以設置自己的權限,用 g 可以調整對群組(group)的權限

chmod g+x aaa.txt
-rw---x---  1 ec2-user ec2-user     5 Sep 12 15:38 aaa.txt

o 可以調整對其他人(other)的權限

chmod o+x aaa.txt
-rw------x  1 ec2-user ec2-user     5 Sep 12 15:38 aaa.txt

這邊是可以組合的,你可以任意組合出你想要的權限設置

chmod u-w,g+w,o+x aaa.txt
-r---w---x  1 ec2-user ec2-user     5 Sep 12 15:38 aaa.txt

是不是很有趣呢?

今天有關權限分享的部分就到這邊為止,各位明天見!


上一篇
Day 12:撰寫檔案,談 nano、vim
下一篇
Day 14:對檔案的進一步操作:cp、mkdir、mv、rm
系列文
林姓商人與指令操作的秘密—談 Linux command line interface30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言