一、組管理
在linux中的每個用戶必須屬於一個組,不能獨立於組外。組信息會存放在/etc/group
中。
1.1 文件所有者
文件的所有者一般爲文件的創建者。但也可以通過指令修改文件所有者。
查看文件所有者指令 | ls -ahl |
|
---|---|---|
修改文件所有者指令 | chown 用戶名 文件名 |
1.2 組的創建與修改
創建組 | group 組名 |
|
---|---|---|
修改文件所在組 | chgrp 新組名 文件名 |
|
改變用戶所在組 | usermod -g 組名 用戶名 改變用戶所在組;usermod -d 目錄名 用戶名 改變用戶登錄的初始目錄 |
二、權限管理
這裏的權限,指的是文件
或目錄
的權限。使用ls -l
查看ok.txt文件的信息如下,下面對此信息做詳細介紹。
①-
②rw-
③r--
④r--
. ⑤1
⑥root
⑦root
⑧0
⑨5月 21 23:16
⑩ok.txt
①文件類型 | ②文件所有者的權限 | ③與文件所有者同組的其他用戶的用戶權限 | ④不與文件所有者同組的其他用戶的用戶權限 | ⑤number | ⑥文件所有者 | ⑦文件所在組 | ⑧文件大小(字節) | ⑨文件最後的修改時間 | ⑩文件名 |
---|
權限:r
讀權限,w
寫權限,-
無權限
第①位確定文件類型:(d
目錄, -
普通文件,l
軟連接,c
字符設備,b
塊文件,x
可執行文件)
第⑤位,如果是文件
:顯示硬鏈接數;是目錄
:顯示子目錄個數。
第⑧位,如果是文件
:顯示文件大小;是目錄
:顯示4096。
注意:這些權限作用在目錄和作用在文件上是不完全相同的。
2.2 修改權限
u:擁有者
,g:所在組
,o:其他用戶
,a:所有人(u,g,o的總和)
r=4
,w=2
,x=1
,rwx=7
方法一:使用+
、-
、=
變更權限;方式二:通過數字變更權限
方式一 | 方式二 | 說明 |
---|---|---|
chmod u=rwx,g=rx,o=x 文件目錄名 |
chmod 751 |
給目錄擁有者rwx權限,所在組rx權限,其他用戶x權限 |
chmod o+w 文件目錄名 |
給文件的其他用戶增加一個w權限 | |
chmod a-x 文件目錄名 |
給所有的用戶都減掉一個x權限 |
2.3 修改文件所有者
chown newowner file |
改變文件的所有者 |
---|---|
chown -R newowner file |
遞歸改變文件file目錄下所有文件的所有者 |
chown newowner:newgroup file |
同時改變用戶的所有者和所有組 |
三、權限實踐案例
存在police(警察組)
和bandit(土匪組)
,警察有A和B,土匪有C和D,
要求:
(1)創建police(警察組)
和bandit(土匪組)
(2)創建用戶ABCD。
(3)用戶A創建一個hello.txt文件,自己可以讀寫u=rw
6,本組人可以讀g=r
4,其它組沒有任何權限o
0。
(4)用戶A修改該文件,讓其它組人可以讀o=r
, 本組人可以讀寫g=rw
。
(5)C投靠警察,查看看是否可以讀寫。
代碼實踐:
(1)
[root@fcal ~]# groupadd police
[root@fcal ~]# groupadd bandit
(2)
[root@fcal ~]# useradd -g police A
[root@fcal ~]# useradd -g police B
[root@fcal ~]# useradd -g bandit C
[root@fcal ~]# useradd -g bandit D
(3)
[A@fcal ~]$ ls -l
總用量 4
-rw-r--r--. 1 A police 6 5月 22 07:25 hello.txt
[root@fcal ~]# su - A
[A@fcal ~]$ chmod 640 hello.txt
(4)
[A@fcal ~]$ ls -l
-rw-r-----. 1 A police 6 5月 22 07:25 hello.txt
[A@fcal ~]$ chmod o=r,g=rw hello.txt
[A@fcal ~]$ ll
總用量 4
-rw-rw-r--. 1 A police 6 5月 22 07:25 hello.txt
(5)
[root@fcal ~]# usermod -g police C
[root@fcal ~]# id C
uid=503(C) gid=503(police) 組=503(police)
此時C並不能訪問同組成員的目錄,仍然需要手動更改成員目錄的權限(更改後需要重新登錄)