用戶、組、文件權限屬性
1、用戶和組的配置文件
在Linux中用戶和組的配置文件主要為: /etc/passwd :存放用戶及其屬性的信息(名稱、GID、UID) /etc/group :存放組及其屬性信息 /etc/shadow :存放用戶密碼及其相關屬性 /etc/gshadow :存放組密碼及其相關屬性
(1)、/etc/passwd的格式
root:x:0:0:root:/root:/bin/bash 分別表示為:用戶名 :密碼 : UID : GID : 描述信息 : 家目錄 : shell類型
(2)、/etc/shadow的格式
root::17361:0:99999:7::: 分別表示為:用戶名 : 密碼 : 距1970年天數 : 密碼最短有效期 : 最長有效期 : 提前通知天數 : 過期天數 : 賬戶有效期 其中密碼部分為: $6$1C6dXZDTp.Kccbji$8K.gFoDfNtFONEoWV5I9s87Fun6kw2NSlQqIEsrNblzrfSydSXQ9We3MW/6Ow1KPuI4xtZjPDffOY1j3Ccg9x. "6":表示其算法為sha512 "1C6dXZDTp.Kccbji"表示系統隨機生成的隨機數用于密碼中增加密碼的安全性 最后一部分為:加密生成的最終的密碼 在密碼最前面如有"!"則代表賬戶被鎖定,不能登錄 eg:tcpdump:!!:17361::::::
(3)、/etc/groupd的格式
root:x:0:分別表示為:用戶名 : 組密碼(X表示) : GID : 附加組
2、用戶和組的相關命令
(1)useradd 添加用戶
useradd [options] username -u UID :指定用戶的UID -g GID :指定用戶的GID -o :檢查ID的唯一性 -c :用戶的注釋信息 -s :shell類型 -G group:為用戶添加附加組(組需事先存在) -r :添加系統組 CentOS 6 系統ID:0-499 ,其他用戶ID:500-60000 CentOS 7 系統ID:0-999 ,其他用戶ID:1000-60000 創建用戶時的默認設置文件:/etc/default/useradd 當用戶被創建時用戶的家目錄會自動生成與/etc/skel目錄下相同的文件 /etc/login.defs目錄下為用戶登錄時的屬性默認設置,可通過更改文件設定來改變包括用戶有效期、UID、GID以及加密算法等在內的配置信息
(2)usermod 用戶屬性修改
usermod [options] username -u UID :修改新的UID -g group :新的基本組 -aG group :增加新的附加組至用戶 -md home :創建新的家目錄,并移動原家目錄數據至新家目錄 -s shell :更改shell -c "comment" :修改注釋信息 -l login_name:更改登錄名稱 -L username :鎖定指定用戶,在/etc/shadow 密碼列增加"!" -U username :解鎖指定用戶 -e YY-MM-DD :指定用戶賬戶過期時間
(3)userdel 刪除指定用戶
userdel [options] username -r :將指定用戶信息全部刪除 -f :強制刪除
批量創建用戶及更改口令
1、批量創建用戶 需要事先創建和/etc/passwd格式一樣的文件,如user.txt 命令newusers user.txt 可以批量創建user.txt內的用戶,但創建后用戶家目錄下會缺少一些文件,可以 去/etc/skel目錄下復制過來使用。 2、批量更改口令 先創建文本passwd.txt內容格式如:username:passwd 執行命令cat passwd | chpasswd 將文本中的用戶與密碼設定成功
(4)groupadd、groupmod、groupdel 創建組、修改組、刪除組
group [options] groupname -g GID :設定組ID -r :創建系統組 CentOS 6 系統ID:0-499 ,其他用戶ID:500-60000 CentOS 7 系統ID:0-999 ,其他用戶ID:1000-60000 groupmod [options] group -n groupname :更改新的組名 -g GID :新的GID groupdel :刪除組,若刪除的組為其他組的主組則不能刪除。
(5)passwd 修改指定用戶的密碼
passwd [options] username -l :鎖定指定用戶 -u :解鎖指定用戶 -e :用戶下次登錄強制修改密碼 --stdin :接受標準輸入
(6)gpasswd 更改組密碼
gpasswd [options] group -a username:將用戶添加到指定的組 -d username:從指定的組中將用戶刪除 -A username:設置有管理權限的列表
(7)groupmems
groupmems [options] -g group :指定要操作的組 -a username :指定用戶加入組 -d username :從組中刪除用戶 -p :清空所有成員 -l :顯示組列表
3、文件權限屬性
再打開文件和目錄時顯示其詳細信息如下:
(1)文件屬性信息
-rw-r--r--. 1 root mage 1738 Jul 19 19:18 /etc/passwd 其中: 第一位是文件的類型: - :普通文件 -d:目錄 -c:字符設備 -b:塊設備 -l:連接文件 -s:套接字 -p:管道文件 rw-r--r--為文件的權限:r(讀)、w(寫)、x(執行)、-(無) 前三位:為文件所屬主的權限 中三位:為文件所屬組的權限 后三位:為文件其他人的權限 1 root mage 1:為其鏈接數 root:為其屬主 mage:為其屬組 1738 Jul 19 19:18 1738:為其文件的大小,單位默認為K Jul 19 19:18 :為其訪問時間 /etc/passwd :為其文件路徑
(2)屬性更改
chown 設置文件的屬主、屬組 chown [OPTION]... [OWNER][:[GROUP]] FILE... chown user1:group1 file 更改文件file的屬主以及屬組 chown user1: file 只更改文件file的屬主 chown :group1 file 只更改文件的屬組 chown -R 遞歸更改 chmod 設置文件的權限屬性 chmod [WHO] [OPTION]... MODE[,MODE]... FILE... [who] : user、group、other [option]: + 增加 - 去除 = 賦值為 a 所有(all) [mode] : r、w、x、X(作用在目錄上,配合-R使用會將目錄下的除文件以 外的目錄加上x執行權限) eg : chmod u+rw file 將file文件加上rw權限 *注意:Linux系統對于目錄中的文件來說,文件能否被用戶刪除與文件本身的權限無 關,而與文件的父目錄有關,當用戶訪問父目錄具有w(寫)權限時才能夠將 文件刪除
(3)特殊權限 suid、sgid、sticky
suid (作用在可執行的二進制文件上): 訪問者會繼承文件所有者的權限 (用s表示) sgid (作用在可執行的二進制文件上): 訪問者會繼承文件所屬組的權限 (用s表示) (作用在目錄上) : 目錄下新建的文件的所屬組會繼承目錄的 所屬組(同屬一個組的成員可以新建、 互相更改及刪除文件) sticky (作用在目錄上) : 在一個公共的目錄上每個人都可以創建、 (用t表示) 刪除自己文件,但不能刪除別人的文 件,只有所有者能夠刪除 eg : [root@Centos6 /app]#chmod u+s passwd -rwSr-xr-x. 1 root root 1664 Jul 19 02:57 passwd 為passwd文件加上suid權限 這里說明:若文件權限最初無x(執行權限)則為S,反之為s [root@Centos6 /app]#chmod g+s passwd -rw-r-sr-x. 1 root root 1664 Jul 19 02:57 passwd 為passwd文件加上sgid權限 [root@Centos6 /app]#chmod o+t passwd -rw-r-xr-t. 1 root root 1664 Jul 19 02:57 passwd 為passwd文件加上sticky權限
(4)訪問控制列表(ACL)
在現實的生產中我們通過更改權限的命令只能設定群體的用戶,但是我們卻想要特定的文件只能某個用戶訪問或者拒絕其訪問這時就需要ACL來實現除了所有者、所屬組和其他人,可以對更多的特定用戶設置權限了 setfacl (set file acl) 設定文件ACL權限 -m 設定權限 -x 取消權限 -R 遞歸操作 -k 清空默認acl -b 徹底刪除acl權限,包括mask eg: setfacl -m u:user:r file 設定文件file對user只有r(讀)權限 setfacl -m u:user:rx dir 設定目錄對于user來說,在目錄下新建文 件時默認具有rx權限 setfacl -m g:group:w dir 設定目錄dir對group有寫權限 [root@Centos6 /app]#setfacl -m u:ymd:rx passwd -rw-r-xr-x+ 1 root root 1664 Jul 19 02:57 passwd 設定文件ACL權限后有"+" 為ymd用戶對passwd文件設定rx權限 [root@Centos6 /app]#getfacl passwd getfacl 查看設定的權限 # file: passwd # owner: root # group: root user::rw- 所屬主 user:ymd:r-x 自定義用戶 group::r-x 所屬、其表現出來的權限實際為mask的權限 mask::r-x 限制最高權限 other::r-x 其他人 備份與恢復ACL getfacl -R /file > backup.txt 將文件file備份到backup.txt setfacl --restore backup.txt 通過backup.txt恢復acl
原創文章,作者:M25_ymd,如若轉載,請注明出處:http://www.www58058.com/83133