Linux用戶和組管理
useradd、passwd、chage、usermod、userdel、id 、finger、chfn、chsh
groupadd、groupdel
/etc/passwd文件結構:
[root@study ~]# head -n 4 /etc/passwd
root:x:0:0:root:/root:/bin/bash
賬號名稱
密碼
UID
GID
賬號說明
家目錄
Shell
/etc/shadow文件結構:
[root@study ~]# head -n 4 /etc/shadow
root:$6$wtbCCce/PxMeE5wm$KE2IfSJr.YLP7Rcai6oa/T7KFhO:16559:0:99999:7:::
賬號名稱
加密密碼:
authconfig --test | grep hashing //查看密碼加密機制
最近一次修改時間:
echo $(($(date --date="2015/05/04" +%s)/86400+1))
最短密碼修改時間
最長密碼修改時間
警告期限
寬限時間
賬號失效日期
保留
/etc/group文件結構:
[root@study ~]# head -n 4 /etc/group
root:x:0:
組名
組密碼
GID
支持的賬號名稱
有效羣組(effective group)與初始羣組(initial group):
groups: 查看有效羣組
nwegrp: 切換有效羣組(必須是事先已支持的組)
/etc/gshadow文件結構:
組名
組密碼
組管理員
該組中的賬號
useradd
-u UID:指定UID
-g GID:指定GID,即用戶的基本組,但GID要事先存在
-G GID:指定用戶的額外組,但GID要事先存在
-d 目錄: 指定家目錄
-c 備註:備註
-s:shell:指定默認shell,應該指定使用/etc/shells文件中出現的shell
-m:創建用戶時,強制給用戶創建家目錄
-M:創建用戶時,但不創建家目錄
-D: 改變其默認shell
-r: 創建系統用戶 特點:id 1-499 不會爲用戶創建家目錄 默認shell爲/sbin/nologin
-e:指定失效日期,格式爲YYYY-MM--DD
-f:指定密碼是否失效。0立刻,-1永不失效
[root@study ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
/etc/default/useradd
/etc/login.defs
passwd
--stdin 賬號名稱:將管道前的資料,作爲密碼輸入
echo “abc123c” | passwd --stdin study
-l:是Lock的意思,使密碼失效
-u:與-l相對,Unlock的意思
-S:顯示密碼相關參數
-n:接天數,多久不可修改密碼
-x:接天數,多久內必須更改密碼
-w:接天數,密碼過期前的警告天數
-i:接日期,密碼失效日期
chage
-l:顯示該賬號的詳細密碼參數
-d:後面接日期,修改 shadow 第三位(最近一次更改密碼的日期),格式 YYYY-MM-DD
-E:後面接日期,修改 shadow 第八位(賬號失效日),格式 YYYY-MM-DD
-I:後面接天數,修改 shadow 第七位(密碼失效日期)
-m:後面接天數,修改 shadow 第四位(密碼最短保留天數)
-M:後面接天數,修改 shadow 第五位(密碼多久需要進行變更)
-W:後面接天數,修改 shadow 第六位(密碼過期前警告日期)
usermod
-c:修改賬號的說明
-d:修改家目錄
-e:修改賬號失效日期,格式YYYY-MM--DD
-f:天數,修改密碼失效日期
-g:修改初始羣組
-G:修改次要羣組
-a:與-G合用,加入次要羣組
-l:修改賬號名稱
-s:修改shell,/bin/bash、/bin/csh
-u:修改UID
-L:鎖賬號密碼,使其無法登錄
-U:解鎖賬號密碼
userdel
-r:連同用戶家目錄一起刪除
id
finger
chfn
chsh
-l:列出目前系統上可用的shell
-s:設定修改自己的shell
groupadd
-g:後面接某個特定的GID,用來直接給與某個GID
-r:建立系統羣組
groupmod
-g:修改GID數字
-n:修改羣組名稱
groupdel
gpasswd:
關於系統管理員的動作:
:若沒有任何參數時,表格給與groupname一個密碼(gshadow)
-A:將groupname的主控權交由後面的使用者管理
-M:將某些賬號加入這個羣組中
-r:將groupname的密碼移除
-R:讓groupname的密碼失效
關於羣組管理員的動作:
-a:將某位使用者加入到groupname這個羣組中
-d:將某位使用者移除groupname這個羣組中
ACL(Access Control List):getfacl 、setfacl
[root@study ~]# dmesg | grep -i acl
[ 1.747875] systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[ 3.664462] SGI XFS with ACLs, security attributes, no debug enabled
setfacl:
-m:設定後續的acl參數給文件使用,不可與-x合用
-x:刪除後續的acl參數,不可與-m合用
-b:移除所有的ACL設定參數
-k:移除默認的ACL參數
-R:遞歸
-d:設定默認acl參數,只對目錄有效
[root@study tmp]# ll
-rw-r--r--. 1 root root 0 Aug 15 11:02 acl-test
[root@study tmp]# setfacl -m u:study:rwx acl-test setfacl -m g:mygroup1:rx acl-test setfacl -m m:r acl_test1(設定mask有效權限) setfacl -m d:u:myuser1:rx /srv/projecta(設定目錄默認ACL繼承)
[root@study tmp]# ll acl-test
-rw-rwxr--+ 1 root root 0 Aug 15 11:02 acl-test // 權限部分多了一個+
[root@study tmp]# setfacl -m u::rwx acl-test //u後面無使用者,代表這定該文件擁有者
[root@study tmp]# ll
-rwxrwxr--+ 1 root root 0 Aug 15 11:02 acl-test
-rwx------. 1 root root 827 Aug 12 10:32 ks-script-fPGBst
getfacl:
選項和參數與setfacl基本相同
[root@study tmp]# getfacl acl-test
# file: acl-test
# owner: root
# group: root
user::rwx
user:study:rwx
group::r--
mask::rwx
other::r--