1. 用戶和用戶組
了解 Linux 的權(quán)限管理首先要了解用戶和組的概念狼钮。Linux 是多用戶的操作系統(tǒng),同一時間可以有多個用戶同時操作同一臺計算機(jī)捡絮。為了讓用戶和用戶之間不相互影響熬芜,必須要有一種機(jī)制來保障每一個用戶的行為不會越界對其他用戶造成不必要的影響。
所以 Linux 引入了用戶和用戶組的概念福稳。一個用戶可以擁有多個文件和目錄涎拉, 用戶對這個文件或目錄的訪問權(quán)限擁有控制權(quán)。同時用戶可以屬于一個或者多個用戶組灵寺,用戶組中的用戶擁有同屬于這個組的對文件的訪問控制權(quán)曼库。
Linux 會給每個用戶分配一個 uid(標(biāo)識用戶) 和 gid (標(biāo)識用戶組),在創(chuàng)建用戶的時候默認(rèn)就會創(chuàng)建一個和用戶名同名的用戶組略板,我可以用id
命令來查看:
id
uid=0(root) gid=0(root) 組=0(root) 環(huán)境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
這些信息都是配置在配置文件中的毁枯,我們有必要了解這些信息在哪些配置文件中,他們主要配置在三個文件中/etc/shadow
,/etc/passwd
和/etc/group
。
用戶帳戶 定義在/etc/passwd 文件里面叮称,用戶組定義在/etc/group 文件里面种玛。當(dāng)用戶帳戶和用戶組創(chuàng)建以后藐鹤, 這些文件隨著文件/etc/shadow 的變動而修改她按,文件/etc/shadow 包含了關(guān)于用戶密碼的信息勋桶。 對于每個用戶帳號茅糜,文件/etc/passwd 定義了用戶(登錄)名护盈、uid、gid拍冠、帳號的真實姓名辟拷、家目錄 和登錄 shell智政。如果你查看一下文件/etc/passwd 和文件/etc/group 的內(nèi)容质涛,你會注意到除了普通 用戶帳號之外稠歉,還有超級用戶(uid 0)帳號,和各種各樣的系統(tǒng)用戶汇陆。
2. 基本的用戶管理
2.1 創(chuàng)建一個普通用戶
添加用戶
useradd shui
設(shè)置密碼
passwd shui 按提示輸入密碼即可
這樣就會創(chuàng)建一個新的用戶怒炸,我們可以在/etc/group
中看到新建的默認(rèn)用戶組的信息shui:x:1000:
也可以再/etc/shadow
,/etc/passwd
看到相關(guān)信息。
2.2 為用戶配置sudo權(quán)限
配置sudo權(quán)限就是將永不加入到sudoers
用戶組中毡代,這是一個特殊的用戶組阅羹,在這個用戶組中的用戶可以通過在命令前面添加sudo
臨時獲取root
的權(quán)限。
用root編輯 vi /etc/sudoers
在文件的如下位置教寂,為hadoop添加一行即可
root ALL=(ALL) ALL
shui ALL=(ALL) ALL
或者使用如下語句也是相同效果
echo 'shui ALL=(ALL) ALL'>> /etc/sudoers
然后捏鱼,hadoop用戶就可以用sudo來執(zhí)行系統(tǒng)級別的指令
3. 文件權(quán)限的操作
前面說過用戶具有對文件的的訪問控制權(quán),訪問控制權(quán)具有可讀孝宗、可寫穷躁、可操作三種耕肩,我們來具體看一下
3.1 linux 文件權(quán)限的描述格式解讀
用ll
命令來看一下根目錄下的文件信息,我們復(fù)制其中的一部分:
dr-xr-xr-x. 5 root root 4096 11月 2 10:34 boot
drwxr-xr-x. 20 root root 3140 11月 2 10:36 dev
drwxr-xr-x. 74 root root 8192 11月 2 20:48 etc
drwxr-xr-x. 3 root root 18 11月 2 19:03 home
每個文件的信息大同小異因妇,關(guān)注最前面的十個字符,他就表示文件的操作權(quán)限猿诸。
以/etc目錄的信息為例drwxr-xr-x. 74 root root 8192 11月 2 20:48 etc
第一位表示文件類型,d 表示這是一個文件夾婚被,文件屬性還有以下內(nèi)容
后面的九位分別代表用戶權(quán)限、用戶組權(quán)限和其他用戶權(quán)限
- r:表示可讀 read
- w:表示可惜 write
- x:表示可執(zhí)行 excute
/etc 目錄的權(quán)限 rwxr-xr-x
就表示梳虽,root 用戶具有可讀可寫可操作的權(quán)限址芯,文件所有者的組成員可以訪問該目錄,但是不能新建窜觉、重命名谷炸、刪除文件,其他成員可以訪問該目錄禀挫,但是不能新建旬陡、重命名、刪除文件语婴。
4. chmod 更改權(quán)限
只有root
和文件的所有者才能更改文件的權(quán)限描孟,更改文件的權(quán)限有兩種方式驶睦,一種是使用符號,另一種是使用八進(jìn)制數(shù)字匿醒。
4.1 符號方式修改文件權(quán)限
符號即前面rwx
對應(yīng)的含義场航,ugoa
則分別表示用戶(user)、用戶組(group)廉羔、其他人(other)和所有(all),一組示例來演示:
chmod g-rw haha.dat 表示將haha.dat對所屬組的rw權(quán)限取消
chmod o-rw haha.dat 表示將haha.dat對其他人的rw權(quán)限取消
chmod u+x haha.dat 表示將haha.dat對所屬用戶的權(quán)限增加x
4.2 八進(jìn)制的方式來修改權(quán)限
一個八進(jìn)制數(shù)字可以表示三個二進(jìn)制數(shù)溉痢,二進(jìn)制的 111 對應(yīng)八進(jìn)制的 7,而 111 正好可以表示 rwx 的含義憋他,1 則代表有權(quán)限 0 則代表沒有權(quán)限适室。
八進(jìn)制 | 二進(jìn)制 | 符號 |
---|---|---|
0 | 000 | --- |
1 | 001 | —-x |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r-- |
5 | 101 | r-x |
6 | 110 | rw- |
7 | 111 | rwx |
例如:
chmod 664 haha.dat
修改成 rw-rw-r--
一些人喜歡使用八進(jìn)制表示法,而另一些人則非常喜歡符號表示法举瑰。符號表示法的優(yōu)點是捣辆, 允許你設(shè)置文件模式的某個屬性,而不影響其他的屬性此迅。