iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
0

今天又要來基本指令囉,真希望可以趕快脫離(嘆氣)
今天的指令是跟權限相關的。

指令們

chmod

再開始講這個指令前要先提一下有哪些權限:

  1. r 讀取 (4)
  2. w 寫入 (2)
  3. x 執行 (1)
    看起來都很好懂吧!
    那他後面的數字是什麼意思呢?他是每個權限的代號,我們很快就會用到他並發現他的妙處。
    那麼這時候我們想要看一下每個檔案的權限是如何的,於是我們需要la(用我的.cshrc)或是ll(預設)又或是ls -l,這時候你應該會看到類似這樣的東西:
    https://ithelp.ithome.com.tw/upload/images/20190920/20120263HTUICguYzV.png
    我們看到最左側那一排,最前面是d代表它是一個目錄,是-代表他是檔案,暫且不必管它。而後面有九碼,由rwx組成,三碼一組,共三組。如果是-代表沒有這個權限。第一組是擁有者(左側數過來第三排)對這個檔案的權限,第二組是擁有者的群組(左側數過來第四排)的,而第三組是其他人的。
    我們就拿這張圖顯示的第二個index.php來舉例好了。
    他顯示的是這樣的:-rw-r--r--
    我們把它拆解一下:
    - rw- r-- r--
    所以我們可以知道:
  4. 他是檔案,因為第一個是-
  5. 擁有者對他的權限是可讀、可寫、不可執行
  6. 擁有者的群組是可讀、不可寫、不可執行
  7. 其他人是可讀、不可寫、不可執行
    看起來很合理吧,那我們來說說chmod囉!
    用法:
    chmod [777] [file]
    看到中間的777了吧,這就是他數字設計的用途,你可以發現7=1+2+4,所以7就是可讀、可寫、可執行。所以file這個檔案就會變成擁有者、擁有者的群組、其他人都是可讀、可寫、可執行。
    那如果是6呢?看起來就是6=4+2,也就是可讀、可寫、不可執行。
    那這個數字加起來不會重複嗎?稍微算一下數學,你會發現他一定是不會重複的,每一個數字都可以拆解成三種權限的和。
    因為有點複雜,這邊再舉一個例子:
    chmod 711 file
    這樣子的話,file就會變成擁有者可讀、可寫、可執行擁有者的群組跟其他人都不可讀、不可寫、可執行。想要看有沒有成功可以去看ls -l有沒有改。如果是上面那個的話他會變成:-rwx--x--x
    但是chmod還有另外一個比較好理解但是字比較多的寫法:
    chmod [who] [+/-/=] [rwx]
    他的who會是u(user擁有者)、g(group同群組)、o(others其他人)、a(all擁有者+同群組+其他人)
    而第二項的+是增加權限;-是取消權限;=是把權限設定(絕對的)
    假設現在test這個檔案是777,那我們:
    chmod u=r test
    這樣就會變成擁有者可讀、不可寫、不可執行擁有者的群組跟其他人都可讀、可寫、可執行
    那如果:
    chmod go-wx test
    那麼就會是擁有者可讀、可寫、可執行擁有者的群組跟其他人都可讀、不可寫、不可執行

接下來就出現跟昨天一樣的問題了,要怎麼改整個目錄的權限呢?嗯也許又想試試看:
chmod 777 [directory]
欸沒有錯誤欸,可是似乎不太合理,ls -l看看好了:
欸真的是drwxrwxrwx欸,似乎是對的!
但是令人遺憾的是當你進去目錄時,發現裡面完全不是這麼一回事。
那依照之前的經驗,應該要-r吧!於是:
chmod -r 777 [directory]
出現錯誤了欸,沒有777這個目錄?
這是因為chmod有上面那種更改方式,他會認為是對777這個檔案a-r,顯然不是我們要的!
那要用甚麼呢?小寫不行就試試大寫囉!
chmod -R 777 [directory]
這樣就可以了呢!
但是如果是用另外一個方法的話要這樣打歐:
chmod -R a+rwx [directory]
最後提醒一點,當出現沒有存取權的時候會用到它,然後都會懶得思考直接chmod 777,建議不要這樣(雖然我都這樣),因為蠻危險的,當其他人都可以存取甚至修改的時候,代表你的資料蠻危險的,除非不重要,不然請小心使用

chown

上面真的好可怕,那接下來就要到chown囉!
它的功能是改變檔案或目錄的擁有者,所以會影響到chmod那邊歐。
用法:
chown [user] [file]
chown :[group] [file]
如此一來,他就會把file這個檔案的擁有者改成user(一樣可以看ls -l有沒有改),然後在權限那邊也會有所更動。
最後還有一點是chown的遞迴也是用-R喔!

今日小結

阿有些東西記錯了害我差點來不及QAQ
下一次就開始安裝東西囉!
應該會好玩一點吧~


上一篇
【Day6】基本指令們(3)
下一篇
【Day8】如何安裝(1)
系列文
30天學會用FreeBSD & Apache架網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言