1. 程式人生 > >Linux入門——用戶 ,組,權限

Linux入門——用戶 ,組,權限

用戶和組 swd 徹底刪除 可執行 所有者 linux入門 login inf 執行權限

Linux是一個多任務多用戶的系統,多用戶可以同時登陸同一臺主機。為了考慮到每個人的隱私權和工作空間,這時候文件所有者(owner)就是即用戶的角色就變得尤為重要了,同時為了用戶與用戶之間方便合作,共享一些公共資源,這時,為了實現資源的快速分配,我們把多個用戶放在一個公共的空間,分別賦予他們不同的讀寫執行等操作的權限,這些用戶共同組成的一個整體,就是所謂的用戶組(group)。

用戶與組的主要配置文件

1/etc/passwd:用戶及其屬性信息 文件格式

技術分享圖片

用戶名:密碼位:xuid:gid:描述位:家目錄:shell:

2/etc/group 組及其屬性信息 文件格式

技術分享圖片

組名:組密碼:組id:附加組成員列表

3 /etc/shadow 用戶密碼及其相關屬性 文件格式

技術分享圖片

用戶名:密碼(加密):密碼的上次修改日期: 密碼最小存活期: 密碼最大存活期: 密碼過期前多少天開始提醒用戶:密碼過期後多少天帳戶過期:帳戶過期:保留位:

4 /etc/gshadow:組密碼及其相關屬性 文件格式

技術分享圖片

組名:組密碼(加密):組管理員: 附加組成員列表

用戶和組管理命令

Id

id 用戶名 顯示指定用戶的信息

技術分享圖片

useradd

  -u UID 指定 UID

-o 與-u 配合,不檢查uid的唯一性

-g GID/組名 指定用戶的主要組

-G GID/組名 指定用戶的附加組

-s /sbin/nologin 指定用戶的默認shell

useusermod

-g GID/組名 修改用戶的主組(該組要先存在)

-G GID/組名 設置用戶的附加組

    usermod -G ‘‘ zhangsan 刪除所有的附加組

-s shell 修改用戶的默認shell

Userdel

  userdel 用戶名 刪除用戶不刪除家目錄(可在/etc/home下查看)

  userdel -r 用戶名 刪除用戶時,連同家目錄和mail文件一同刪除

su

  su – 用戶名 在root在切換不需要密碼,其他用戶需要切換密碼

groupadd

  groupadd 組名

groupmod

  group -n 新組名 當前組名 修改組名

group -g 新ID 當前組名 修改GID

groupdel

  groupdel 組名 刪除組

gpasswd

  gpasswd -a 用戶名 組名 將指定用戶以附加組方式加入到指定組

  gpasswd -d 用戶名 組名將指定用戶從指定組中刪除

  gpasswd -A 用戶名 組名 設置組管理員(管理員可以修改組密碼,及修改組成員)

gpasswd -M ‘ ‘ 組名 刪除組成的所有成員

groupmems

  groupmems -g 組名 -a 用戶名 往組中增加成員

  groupmems -g 組名-d 用戶名 從組中刪除成員

  groupmems -g 組名-l 列出組成員 (不包含主組)

  groupmems -g 組名-p 清空該組的所有組員

總結:將某已在用戶以附加組方式加入某組當中

1.usermod -G 組名 用戶名

2.gpasswd -a 用戶名 組名

3.groupmems -g 組名 -a 用戶名

要明白 每個用戶有且只能有一個主要組,但用戶可以有零到多個附加組每個文件只能有一個所屬人,和一個所屬組

練習

1創建組weiguo,shuguo,創建用戶liubei為shuguo組管理員,caocao為魏國組管理員

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

2創建用戶kongxiuxiu,guanyu其附加組為weiguo,創建用戶zhangfei其主組為shuguo

技術分享圖片

技術分享圖片

3徹底刪除用戶kongxiu,把guanyu的附加組weiguo改為shuguo

技術分享圖片

理解並設置文件權限

我們必須要牢記用戶在訪問文件時權限順序是 owner > group >other

也就是當用戶訪問一個文件時,首先判斷當前用戶是否為該文件的所屬人owner,如果是owner,則應用owner位的權限;如果不是owner,則判斷該用戶的所屬組當中,是否有一個組與該文件的group相同,如果有,則應用group位的權限,如果都不是,則應用other位權限

用ll可以看到一個文件(如果文件沒有設置acl)的權限

技術分享圖片

-:文件的類型:-,d,l,b,c,p,s

rw-:owner

r--:group

r--:other

. 表示該文件是否有selinux的context值

r read 讀取文件 (列出目錄文件)
w write 寫權限 (可以在目錄中修改創建或刪除文件 需要x 權限)
x excute 執行權限 (目錄基本權限,只有執行權限才能有其他操作)

Chgrp

chgrp 組名 文件/目錄名(修改用戶的group)(owner可以修改文件的屬於組,但owner一定要屬於目標組)

chgrp -R 遞歸

Chown

chown 用戶名 文件/目錄名 修改用戶的owner

chown -R 遞歸同時修改目錄下的子文件子目錄

Chmod

符號模式

chmod u/g/o +-= rwx 文件名

例:chmod o+w a 向文件a的other位添加w權限

技術分享圖片

技術分享圖片

數字模式

1代表x 2代表w 4代表r

1:x 2:w 3:wx 4:r 5:rx 6:rw 7:rwx

例:chmod 777 a 設置文件a的權限為rwxrwxrwx

技術分享圖片

練習

1創建目錄/app/house,要求owner為liubei,僅劉關張對該目錄有完整權限,其他人無任何權限

技術分享圖片

註意:前面我已經把劉關張都加入了shuguo組

2分別使用劉關張三用戶在house創建各自的room目錄,名為xxx_room,要求各自的room只能自己有完整權限,其他人沒有任何權限

技術分享圖片

技術分享圖片

技術分享圖片

3創建一個共享目錄為/app/house/common,要求劉關張在該目錄下所創建的文件,彼此之間都可以讀寫,其他人無任何權限。

技術分享圖片

特殊權限

Suid

chmod u+s

當對於一個可執行的二進制文件作用了suid之後,任何人在執行該文件時,臨時擁有其所有人的權限

Sgid

chmod g+s

1.當對於一個可執行的二進制文件作用了sgid之後,任何人在執行該文件時,臨時擁有其所有組的權限

2.當對於一個目錄作用了sgid權限之後,任何人在該目錄下所創建的文件的所屬組,均與該目錄的所屬組相同

Sticky

對於一個目錄作用了sticky權限,該目錄下的文件僅其所屬人和目錄的所屬人及root可以刪除。

ACL

開啟acl的方式

centos7 默認支持acl

centos6及之前,操作系統安裝時所創建的文件系統默認支持acl,而操作安裝之後使用mkfs格式化的文件系統默認未開啟acl,需要手工開啟,方法如下:

1.tune2fs -o acl /dev/sda5

2.mount -o acl /dev/sda5 /app

ACl權限判斷順序

owner > acl user > group > other

設置ACL

setfacl -m u:liubei:rwx testdir

設置默認權限

setfacl -Rm u:liubei:rwx testdir/ 設置當前的權限

setfacl -Rm d:u:liubei:rwx testdir/ 設置未來文件的權限

刪除所有權限,清空acl結構

setfacl -b testdir

acl 擴展屬性 打包工具不支持存儲

練習

1、在/app/dir裏創建的新文件自動屬於shuguo組,組weiguo的成員如:caocao能對這些新文件有讀寫權限,組wuguo的成員如:sunquan只能對新文件有讀權限,其它用戶不能訪問這個文件夾

技術分享圖片

2、備份/app/dir裏所有文件,刪除/testdir/dir,然後恢復/testdir/dir,並恢復/testdir/dir中所有ACL權限。

技術分享圖片

技術分享圖片

Linux入門——用戶 ,組,權限