Linux系統之用戶和組
1、什么是用戶
用戶:資源獲取標識符,資源分配,安全權限模型的核心要素之一
2、沒有用戶,操作系統可否正常執行?
答案是肯定的
在Linux系統上,用戶管理是基于用戶名和密碼的方式進行資源的分配,
Username/UID分為以下類別:
管理員:root, 0 普通用戶:1-65535 系統用戶:1-499(CENTOS6), 1-999 對守護進程獲取資源進行權限分配 登錄用戶:500(CENTOS6)+, 1000+ 交互式登錄
Linux組:Groupname/GID
管理員組:root, 0 普通組: 系統組:1-499, 1-999 普通組:500+, 1000+
Linux組類別
用戶的主要組(主組): 用戶必須屬于一個且只有一個主組 組名同用戶名,且僅包含一個用戶:私有組 用戶的附加組(輔助組): 一個用戶可以屬于零個或多個輔助組
用戶在登錄時要進行認證,認證成功后要進行資源的分配既授權,還要對資源的使用進行審計,就是我們所熟悉的3A
Authentication 認證 Authorization 授權 Accounting|Audition 審計
進程的安全上下文
進程對文件的訪問權限應用模型 進程的屬主(發起者)與文件的屬主是否相同;如果相同;則應用屬主權限; 否則,則檢查進程的屬組(發起者)是否屬于文件的屬組;如果是,則應用屬組權限; 否則,就只能應用other的權限;
下面來介紹下Linux用戶和組的主要配置文件
1、/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)
從圖片上我們可以看到該文件是以":"為分隔符,分為的7個字段。如何知道每個字段的意思呢?
嘗試使用man幫助文檔:
首先確定該幫助文檔在man的那個分段中
[root@centos7 ~]# whatis passwd passwd (5) - password file passwd (1) - update user's authentication tokens sslpasswd (1ssl) - compute password hashes
由以上信息可知我們能夠使用如下命令查看該文件7個的字段的意思:
[root@centos7 ~]# man 5 passwd
man文檔已經解釋的很詳細了,這里我在簡單說明一下:
用戶名:密碼占位符:UID:GID:用戶備注信息(多個以,隔開):家目錄:默認shell
2、/etc/shadow
首先還是用whatis命令查看簡要命令幫助
[root@centos7 ~]# whatis shadow shadow (3) - encrypted password file routines shadow (5) - shadowed password file
查看man文檔
[root@centos7 ~]# man 5 shadow
我可以看到該配置文件的格式和/etc/passwd格式一樣,都是用":"分割開的不同字段
login name:登錄名 encrypted password:加密密碼 date of last password change:最近一次的密碼修改時間(距離1970-01-01的時間) minimum password age:密碼最短使用期限 maximum password age:密碼最長使用期限 password warning period:警告區間 password inactivity period:非活動區間 account expiration date:賬號過期期限 reserved field:預留段
在這里我們簡單介紹下加密解密機制
加密方法: 對稱加密:如果加密、解密使用相同的密碼稱之為對稱加密 DES,3DES,AES 非對稱加密:DSA,RSA 單向加密:雪崩效應,定長輸出,不可逆
這里我們著重開下/etc/shadow的第二個字段
格式如下:
$6$abcesd$fkdlagjdkalghio3qu4389qjtrkiejgr $6$xyzm./$878956ukijotrjiytoeutyvimyeuiore
$為分隔符
6表示加密算法 查看系統上支持的加密算法可以使用如下方法:
[root@centos7 ~]# sha //輸入sha,按兩次TAB自動補全 sha1sum sha224sum sha256sum sha384sum sha512sum 以上分別對應2-6 即6為sha512算法 其中1對應的為md5算法
使用如下命令可以改變默認的加密算法:
[root@centos7 ~]# authconfig --passalgo=sha512(可以更改) --update
abce或xyzm:表示salt
最后一部分表示:加密后的密碼
即該字段的整體意義為:$加密算法$8位鹽$亂碼
一個小的知識點
密碼的復雜性策略
使用數字、大寫字母、小寫字母及特殊字符中至少3種
足夠長
使用隨機密碼(沒有規律的、非腦殘的密碼)
定期更換,不要使用最近曾經使用過的面
3、/etc/group
[root@centos7 ~]# whatis group group (5) - user group file [root@centos7 ~]# man 5 group
4、/etc/gshadow
[root@centos7 ~]# man gshadow group name:It must be a valid group name, which exist on the system. encrypted password administrators It must be a comma-separated list of user names. Administrators can change the password or the members of the group. Administrators also have the same permissions as the members (see below). members It must be a comma-separated list of user names. Members can access the group without being prompted for a password. You should use the same list of users as in /etc/group.
對于Linux下的用戶和組所涉及到的基本文件已經介紹完了,下面我們來介紹常用命令:
vipw和vigr:相當于用vim打開上述的四個文件進行編輯
[root@centos7 ~]# man vipw [root@centos7 ~]# vipw /etc/passwd [root@centos7 ~]# vipw -s /etc/shadow [root@centos7 ~]# man vigr [root@centos7 ~]# vigr /etc/group [root@centos7 ~]# vigr -s /etc/gshadow
pwck和grpck:檢查上述文件的正確性
[root@centos7 ~]# pwck user 'ftp': directory '/var/ftp' does not exist user 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not exist user 'saslauth': directory '/run/saslauthd' does not exist user 'pulse': directory '/var/run/pulse' does not exist user 'gnome-initial-setup': directory '/run/gnome-initial-setup/' does not exist pwck: no changes [root@centos7 ~]# grpck
useradd[options] LOGIN -u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs -o 配合-u 選項,不檢查UID的唯一性 -g GID:指明用戶所屬基本組,可為組名,也可以GID -c "COMMENT":用戶的注釋信息 -d HOME_DIR:以指定的路徑(不存在)為家目錄 -s SHELL: 指明用戶的默認shell程序 可用列表在/etc/shells文件中 -G GROUP1[,GROUP2,...]:為用戶指明附加組,組必須事先存在 -N 不創建私用組做主組,使用users組做主組 -r: 創建系統用戶CentOS 6: ID<500,CentOS 7: ID<1000
默認值設定:/etc/default/useradd文件中 顯示或更改默認設置: useradd-D useradd–D -s SHELL
[root@centos7 ~]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
[root@centos7 ~]# man useradd -b, --base-dir BASE_DIR -e, --expiredate EXPIRE_DATE -f, --inactive INACTIVE -g, --gid GROUP -s, --shell SHELL
usermod[OPTION] login -u UID: 新UID -g GID: 新基本組 -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有, 則要同時使用- a選項,表示append; -s SHELL:新的默認SHELL; -c 'COMMENT':新的注釋信息; -d HOME: 新家目錄不會自動創建,原家目錄中的文件不會同時移動至新的家目錄; 若要創建新家目錄并移動原家數據,同時使用-m選項 -l login_name: 新的名字; -L: lock指定用戶,在/etc/shadow 密碼欄的增加! -U: unlock指定用戶,將/etc/shadow 密碼欄的! 拿掉 -e YYYY-MM-DD: 指明用戶賬號過期日期; -f INACTIVE: 設定非活動期限;
userdel[OPTION]... login -r: 刪除用戶家目錄;
passwd[OPTIONS] UserName: 修改指定用戶的密碼,僅root用戶權限 passwd: 修改自己的密碼; 常用選項: -l:鎖定指定用戶 -u:解鎖指定用戶 -e:強制用戶下次登錄修改密碼 -n mindays: 指定最短使用期限 -x maxdays:最大使用期限 -w warndays:提前多少天開始警告 -i inactivedays:非活動期限; --stdin:從標準輸入接收用戶密碼; echo "PASSWORD" | passwd--stdinUSERNAME
chage[OPTION]... LOGIN -d LAST_DAY -E, --expiredateEXPIRE_DATE -I, --inactive INACTIVE -m, --mindaysMIN_DAYS -M, --maxdaysMAX_DAYS -W, --warndaysWARN_DAYS –l,顯示密碼策略 下一次登錄強制重設密碼 chage -d 0 tom chage -m 0 –M 42 –W 14 –I 7 tom chage -E 2016-09-10 tom
groupadd[OPTION]... group_name -g GID: 指明GID號;[GID_MIN, GID_MAX] -r: 創建系統組; CentOS 6: ID<500 CentOS 7: ID<1000
組屬性修改:groupmod groupmod[OPTION]... group -n group_name: 新名字 -g GID: 新的GID; 組刪除:groupdel groupdelGROUP 組密碼:gpasswd gpasswd[OPTION] GROUP -a user: 將user添加至指定組中; -d user: 從指定組中移除用戶user -A user1,user2,...: 設置有管理權限的用戶列表 newgrp命令:臨時切換基本組; 如果用戶本不屬于此組,則需要組密碼 臨時切換指定的組為基本組
groupmems[options] [action] options: -g, --group groupname更改為指定組(只有root) Actions: -a, --add username 指定用戶加入組 -d, --delete username 從組中刪除用戶 -p, --purge 從組中清除所有成員 -l, --list 顯示組成員列表
groups [OPTION].[USERNAME]… 查看用戶所屬組列表
[root@centos7 ~]# groups user1 user1 : user1 root new_mygrp 主組 附加組
批量添加用戶及其密碼
user.txt user1:x:10001:10001::/testdir/user1:/bin/csh user2:x:10002:10002::/testdir/user2:/bin/tcsh user3:x:10003:10003::/testdir/user3:/bin/bash [root@centos7 ~]# newusers user.txt [root@centos7 ~]# tail -3 /etc/passwd user1:x:10001:10001::/testdir/user1:/bin/csh user2:x:10002:10002::/testdir/user2:/bin/tcsh user3:x:10003:10003::/testdir/user3:/bin/bash passwd.txt user1:123456 user2:redhat user3:centos [root@centos7 ~]# cat passwd.txt | chpasswd [root@centos7 ~]# tail -3 /etc/shadow user1:$6$bAKS54WgOC56WH$4vgt7VIkIqTzsZyDKt1s55oBGY04XRjuF8MHwsslt.9WuRzIJE/eLIPQhvwEKxPYQ84x6lF3gjE7HWQlpbm8i.:17017:0:99999:7::: user2:$6$N27Zc/GayA$jYZqMIo58RnwnIP5ytiwyHONn1VxEGRZZNEYzu7x392zgnZa2aTpH9c2oVcr/W0Uo7X8oJU/DRlaQI63SLYTq1:17017:0:99999:7::: user3:$6$UUFRnwBEJe$0yyxVFkxSxhRk40TDT/j6NfxwP7a/jPQnEhku/8Nqns42II6fNouiEi/GheQwTVJcDBWaYb4qePWy7qquhPVV.:17017:0:99999:7:::
注:新建用戶的相關文件 /etc/default/useradd /etc/skel/* /etc/login.defs
原創文章,作者:sixijie,如若轉載,請注明出處:http://www.www58058.com/28710