Linux組管理和權限管理
組的基本介紹
在Linux中的每個用戶必須屬於一個組,不能獨立於組之外,在linux中每個文件有 所有者 、所在組、其它組 的概念。
1)所有者
2)所在組
3)其它組
4)改變用戶所在組
新增組
指令
groupadd 組名:增加一個新的用戶組
-g:指定用戶組標識號GID
-o:一般與-g一起使用,表示新用戶組的GID可以與已有用戶組GID相同
示例:
- groupadd group1:增加一個用戶組group1,GID是在當前已有GID最大值上加1
- groupadd -g 101 group1:增加一個用戶組group1,並指定其GID為101
刪除組
groupdel 組名:組名不存在時會提示錯誤信息。
修改用戶組
在添加用戶時,可以指定將用戶添加到哪個組,可以用root的權限改變用戶所在的組。
usermod -g 用戶組 用戶名
usermod -d 目錄名 用戶名 改變該用戶登錄的初始目錄
用戶和組相關的文件
/etc/passwd:
- 用戶的配置文件,記錄用戶的各種信息
- 每行含義,用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄shell
- wansw:x: 1001: 1001: : /home/wansw: /bin/bash
/etc/shadow
- 口令的配置文件
- 每行含義,登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志
/etc/group
- 組的配置文件,記錄Linux包含的組的信息
- 每行含義,組名:組標識號:組內用戶列表
查看文件的所有者
ls -ahl:-rw-r--r-- 1 root root 162 Jul 6 2018 1.log
第一個root:所屬用戶
第二個root:用戶所屬組
chgrp,采用群組名或群組識別碼GID的方式改變文件或目錄的所屬群組,超級用戶使用。被改變的組名必須在/etc/group文件內存在
-c:當發生改變時輸出調試信息
-f:不顯示錯誤信息
-R:處理指定目錄及其下所有子目錄、子文件
-v:運行時顯示詳細處理信息
例如:
chgrp -v bin log1.log:將log1.log的群組改為bin,並顯示詳細處理信息
chgrp --reference=log2.log log1.log:改變log1.log群組屬性,使之參考log2.log
chgrp -R bin test:改變test下所有目錄及其子目錄的群組屬性為bin
chgrp -R 100 test:根據群組識別碼GID改變test群組屬性
chgrp polic orange.txt:把文件的所屬組改成 polic
chown,改變文件的擁有者與群組,擁有者可用用戶名或用戶ID、群組可用組名或組ID。chown命令的操作權限一般為系統管理員,系統管理員常將文件拷貝到另一用戶目錄名下,使之擁有使用該文件的權限
-c:顯示更改的部分信息
-f:忽略錯誤信息
-R:處理指定目錄及其下所有子目錄、子文件
-v:顯示詳細處理信息
例如:
chown mail:mail log1.log:改變log1.log的擁有者與所屬群組為mail
chown :mail log1.log:改變log1.log的文件群組為mail
chown -R -v root:mail test6:改變test6文件夾及其下所有文件/文件夾的所有者為root,群組為mail,修改時顯示處理信息。
權限介紹
-rw-r--r-- 1 root root 162 Jul 6 2018 1.log
-
0:確定文件類型。
- d:目錄
- - :普通文件
- l:軟鏈接
- c:字符設備【鍵盤、鼠標等】
- b:塊文件【硬盤】
-
1-3:確定文件的所有者擁有的權限---User。
-
4-6:確定所屬組的用戶擁有的權限--Group。
-
7-9:確定其他用戶擁有的權限--Other User。
-
10:
- 第一位是目錄:表示 該目錄下的子目錄數量【包含有隱藏目錄數量】。
- 第一位是文件:表示硬鏈接數。
-
第一個root:所屬用戶
-
第二個root:文件所在組
-
162:表示文件大小
- 如果是目錄,此處顯示 4096。
-
Jul 6 2018:最后修改時間
rwx權限說明
- 作用到文件上:
- r:可讀
- w:可寫,只有對該文件所在目錄有寫權限,才可以對文件進行刪除。
- x:可以執行
- 作用到目錄:
- r:可讀,ls 命令可以查看目錄內容
- w:可以修改,目錄內新增+刪除+重命名目錄
- x:可以進入該目錄
- 可以用數字表示權限:
- r:4
- w:2
- x:1
chmod,用於改變Linux系統文件或目錄的訪問權限
-f:錯誤信息不輸出
-c:當發生改變時,報告處理信息
-R:處理執行目錄及其子目錄下所有文件
-v:運行時顯示詳細處理信息
<權限范圍>+<權限設置>:使權限范圍內的目錄或文件具有指定權限
<權限范圍>-<權限設置>:刪除權限范圍內的目錄或文件的指定權限
<權限范圍>=<權限設置>:設置權限范圍內的目錄或文件的權限為指定的值
| **權 限 范 圍 ** | 權 限 代 號 |
|---|---|
| u:目錄或文件的當前用戶 | r:讀,代號為4 |
| g:目錄或文件的當前群組 | w:寫,代號為2 |
| o:其他用戶或群組 | x:執行,代號為1 |
| a:所有用戶和群組 | -:刪除,代號為0 |
| s:特權權限 |
例如:
chmod a+x log1.log:設定文件log1.log所有用戶或群組都有執行權限
chmod ug+x,o-x log1.log:同時設定不同的用戶權限
chmod u=x log1.log:撤銷用戶原有對log1.log的權限並設定為x
chmod -R u+x test4:遞歸地給test4下所有文件與子目錄分配執行權限
chmod 751 file:給file、屬主分配讀、寫、執行權限,給所在組分配讀、執行權限,其他用戶分配執行權限
chmod tom apple.txt:把 apple.txt 文件 的所有者轉給 tom 用戶
