linux是一個多用戶分布式系統(tǒng)
同一臺主機(jī)可供多人使用
尤其是在服務(wù)器這塊應(yīng)用廣泛
有可能同時會有幾千人在登錄同一臺主機(jī)
但這時權(quán)限的設(shè)置就顯得尤為重要
簡單點說就是夠用就好
linux添加新用戶
# root用戶下
$ adduser ch
# 下面的某些信息可以按enter跳過

創(chuàng)建完后,同時為ch分配了一個家目錄
登錄新用戶
我們采用ssh的方式
$ ssh ch@xxx.xxx.xxx.xxx
這時候的ip是你所連的局域網(wǎng)的ip

查看權(quán)限
假設(shè)新添加的用戶ch是你的室友
你允許他訪問你的電腦的時候
但是你有個人小秘密
不想讓他看到
怎么辦
那我們就來試探一下
創(chuàng)造一個secret目錄
并創(chuàng)建文件mimi
$ mkdir secret
# 創(chuàng)建secret目錄
$ touch mimi
# 創(chuàng)建空文件mimi
$ echo "mimi" > secret/mimi
# 為mimi文件添加內(nèi)容
怎么查看權(quán)限呢?
查看目錄信息以及內(nèi)容
$ ls -ld secret
# d表示dicretionary

下面的drwxr-xr-x表示什么呢?
d 表示這是一個目錄
后面有9位
每三位一組
r->read 擁有讀的權(quán)利 用數(shù)字4表示
w->write 擁有寫即改的權(quán)利 用數(shù)字2表示
x->execute 即我們熟悉的.exe可執(zhí)行 用數(shù)字1表示
所以當(dāng)我們看到 777 時表明擁有所有權(quán)限
第一組rwx : 表示文件所有者的權(quán)限 為可讀可寫可執(zhí)行
第二組r-x : 表示所屬群組的權(quán)限 為可讀可執(zhí)行
第三組r-x : 表示其他人的權(quán)限 可讀可執(zhí)行
后面的2 root root
2便是該目錄的鏈接數(shù)(不用在意)
第一個root是文件所有者
第二個root為所屬群組
默認(rèn)的話新創(chuàng)建的用戶沒有加入組
就自創(chuàng)一個,他一個人在那一個組
再看一看目錄下文件的權(quán)限
$ ls -l /secret/mimi

-表示這是一個文件
rw- 文件所有者可讀可寫
r-- 群組可讀
r-- 其他人可讀
對于文件來說默認(rèn)是不給可執(zhí)行的權(quán)限的
因為很多病毒就是通過文件的可執(zhí)行才能運行
這里是為了安全考慮
驗證權(quán)限
注意對于目錄的權(quán)限和文件的權(quán)限的區(qū)別
目錄的可寫
表示對目錄下的文件可以刪除和創(chuàng)造新文件
目錄的可讀表示可以列出目錄下的文件
驗證一下我這位親愛的室友能不能看到我創(chuàng)建的文件
不然我的小秘密被看到了怎么辦
上面查詢到的ch用戶是有權(quán)限看的
那我們先驗證可以看
切換到ch用戶
$ cat mimi
# 查看內(nèi)容

那他能不能修改呢
$ echo "看看我能不能寫" > mimi

對不起,您是不能修改我文件的內(nèi)容的
NEXT!
He cannot read!
切換到root用戶
修改權(quán)限
$ chmod o-r setret/mimi
# 對于root群組來說 由于ch用戶并不在群組里面
# 他這時候的身份就是其他人
# chmod 表示修改權(quán)限
# o-r 表示 把可看的權(quán)限去掉

切換到ch用戶
驗證這時候他能不能看到

hahaha
舒舒服服
對不起 我莫得感情
要是他氣的想要刪除怎么辦?
對不起不可能
因為前面說了對目錄的權(quán)限是可讀可執(zhí)行
并沒有寫的權(quán)限
那就驗證一下咯
切換到ch用戶
$ rm mimi

哈哈哈
對不起
我莫得感情
他要是起的把我文件夾都刪了怎么辦
那就更不可能了
你對我的目錄僅有讀的權(quán)利
$ rm -rf secret
# rm -rf 強(qiáng)制并且遞歸刪除目錄secret

仍然是沒有權(quán)限的
大可放心
如果某一天我向和他共同擁有這個小秘密呢
那我就給他讀寫的權(quán)利唄

這時候發(fā)現(xiàn)顯示權(quán)限不足
于是發(fā)現(xiàn)既然是讓他能修改
那肯定是能先讀啊
這是如果我們讓讓有可寫但沒有可讀的權(quán)限
看看是怎樣的
首先我們確認(rèn)
在root用戶下看一看該文件

內(nèi)容為:
mimi
切換到ch用戶
因為他是沒有讀的權(quán)利

但是他可以改
但是改完之后
以前的內(nèi)容被覆蓋了
改完之后他仍舊是不能看
切換到root用戶

看,的確內(nèi)容被覆蓋了
所以如果你想讓他和你一起擁有秘密
請你也給他讀的權(quán)限吧
$ chmod o+r secret/mimi

這時候他就能讀能寫了

并且沒有覆蓋掉原來的內(nèi)容
我們就可以一起快快樂樂的分享秘密了
倘若我給他目錄寫的能力,他就也可以創(chuàng)建新的秘密與我分享了
這樣更好喔
$ chmod o+w secret

這是他就可以對在目錄下添加文件和刪除文件了
$ touch xiaoxiao
沒有報錯說明創(chuàng)建成功

再看看他能不能刪除這個mimi這個文件

即便文件的所有者是root用戶
他仍然是可以刪除的
因為給了他對這個目錄寫的權(quán)限
修改文件所有者并添加群組
前面我們了解到root用戶擁有至高無上的權(quán)利
不管是誰創(chuàng)建的文件
他都擁有最高的權(quán)限
現(xiàn)在我們更換一個情景
對于一個團(tuán)隊來講
是要共同完成一個任務(wù)的
對于我們寢室xinfeng來講
寢室現(xiàn)在要完成一項任務(wù)
就是要把做的作業(yè)放進(jìn)一個文件中
這是后該怎么辦呢
假設(shè)寢室有三個人
前面我們新建了一個用戶ch
現(xiàn)在我們再來新建兩個用戶
一個叫dww
一個叫pyj
$ adduser dww
$ adduser pyj
groupadd xinfeng
#添加群組xinfeng
$ usermod -G xinfeng ch
$ usermod -G xinfeng dww
$ usermod -G xinfeng pyj
$ mkdir zuoye
$ cd zuoye
$ touch gaoshu
查看權(quán)限

現(xiàn)在我想選出一個寢室長
并將文件的所有者給ch用戶
并將這個文件交給群組xinfeng
$ chown ch zuoye
# change owner
$ chgrp xinfeng zuoye
# change group
現(xiàn)在這個文件的所有者就是寢室長ch
目錄的所屬組就是xinfeng
可以看到
對目錄的權(quán)限
目錄所有者ch 可讀可寫可執(zhí)行
目錄所屬組的成員( ch dww pyj) 可讀可執(zhí)行
其他人員 可讀可執(zhí)行
現(xiàn)在對文件也修改一下
同樣的操作
$ chown ch zuoye/gaoshu
# change owner
$ chgrp xinfeng zuoye/gaoshu
# change group
現(xiàn)在目錄以及文件都屬于ch
所屬組都是xinfeng
但是現(xiàn)在成員dww以及pyj都只能看到文件
為不能向gaoshu里面寫文件
或者也不能刪除文件
因為他們對目錄的操作是不可寫的
在/etc/group中可以看到分組情況

驗證
ssh登錄dww和pyj


可以查看文件
但是他們是不能修改文件的

現(xiàn)在我們要為他們添加權(quán)限
因為要一起完成任務(wù)
$ chmod g+w zuoye/gaoshu
群組用戶dww修改


群組用戶ch文件所有者ch同樣可以修改
他的區(qū)別在于他可以刪除gaoshu這個文件,而組內(nèi)的其他成員不可以
實驗:
# dww用戶下:
$ rm gaoshu

再來看看ch用戶
$ rm gaoshu

刪除成功!
再來看看其他人
現(xiàn)在隨便建一個用戶
$ adduser who
用who用戶登錄主機(jī)
我們讓他連看目錄的資格都沒有
這也比較符合具體的場景
$ chmod o-r zuoye

那這樣就完美了啊
哈哈哈
我是個合格的管理員了!
這樣完成了
我的微信公眾號:跨時代的jay
關(guān)注我哦,定時推送知識