Linux系統之高級用戶組和權限管理
- 一、用戶的密碼策略設定
- 1.用戶的密碼檔案
- 2.用戶的密碼期限配置
- ①查看用戶密碼期限
- ②修改密碼期限
- ③強制用戶下一次修改密碼
- ④用戶到期時間設定
- 3.查看當前用戶存在
- 二、監控系統用戶登錄
- 1.查看當前登錄用戶
- 2.用戶登錄和重啟記錄
- 3.用戶登錄失敗記錄
- 4.登錄日志
- 三、用戶的提權
- 四、ACL權限配置
- 1.查看檔案的ACL權限
- 2.給指定用戶設定ACL權限
- 3.給檔案擁有人設定ACL權限
- 4.給指定用戶組設定權限
- ①新建用戶組及添加組內用戶
- ②設定檔案的用戶組權限
- 5.給檔案擁有組設定權限
- 6.給檔案其他人設定權限
- 7.洗掉檔案高級權限
- ①洗掉指定用戶權限
- ②洗掉指定組的ACL權限
- ③遞回修改ACL權限
- ④清除所有ACL權限
- 五、檔案與目錄的特殊權限
- 1.行程與檔案的屬主與屬組
- 2.suid高級權限
- 3.sgid高級權限
- 4.sticky高級權限
- 六、默認權限與反掩碼
- 1.root用戶檔案的默認權限
- 2.普通用戶檔案的默認權限
- 3.umask組態檔
- 4.修改umask
- 5.umask和mask的權限計算
一、用戶的密碼策略設定
1.用戶的密碼檔案
[root@tianyi ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
unbound:x:997:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
libstoragemgmt:x:996:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
setroubleshoot:x:995:992::/var/lib/setroubleshoot:/sbin/nologin
clevis:x:994:990:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
cockpit-ws:x:993:989:User for cockpit-ws:/:/sbin/nologin
sssd:x:992:988:User for sssd:/:/sbin/nologin
insights:x:991:987:Red Hat Insights:/var/lib/insights:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
pesign:x:990:986:Group for the pesign signing daemon:/var/run/pesign:/sbin/nologin
chrony:x:989:985::/var/lib/chrony:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
admin:x:1000:1000::/home/admin:/bin/bash
nginx:x:988:984:Nginx web server:/var/lib/nginx:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/sbin/nologin
zabbix:x:987:983:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
~
2.用戶的密碼期限配置
①查看用戶密碼期限
[root@tianyi ~]#
[root@tianyi ~]# chage -l user1
Last password change : Nov 25, 2025 #最后一次密碼變更時間
Password expires : never # 密碼到期
Password inactive : never # 密碼禁止
Account expires : never # 賬戶到期
Minimum number of days between password change : 0 #更改密碼的最短天數
Maximum number of days between password change : 99999 # 更改密碼的最長天數
Number of days of warning before password expires : 7 # 密碼到期之前警告天數
[root@tianyi ~]#
②修改密碼期限
[root@tianyi ~]# chage -m 0 -M 90 -W7 -I 14 user1
[root@tianyi ~]# chage -l user1
Last password change : Nov 25, 2025
Password expires : Feb 23, 2026
Password inactive : Mar 09, 2026
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
③強制用戶下一次修改密碼
[root@tianyi ~]# chage -d 0 user1
④用戶到期時間設定
[root@tianyi ~]# chage -E 2021-10-01 user1
[root@tianyi ~]# chage -l user1
Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : Oct 01, 2021
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
3.查看當前用戶存在
[root@tianyi ~]# id user1
uid=1001(user1) gid=1001(user1) groups=1001(user1)
[root@tianyi ~]#
二、監控系統用戶登錄
1.查看當前登錄用戶
[root@tianyi ~]# w
11:54:10 up 89 days, 20:42, 1 user, load average: 0.04, 0.05, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 183.92.102.127 11:14 0.00s 0.06s 0.00s w
2.用戶登錄和重啟記錄
[root@node1 ~]# last |head
root pts/0 192.168.200.1 Fri Sep 17 22:32 still logged in
reboot system boot 4.18.0-80.el8.x8 Fri Sep 17 22:29 still running
root pts/0 192.168.200.1 Mon Sep 13 20:28 - crash (4+02:00)
reboot system boot 4.18.0-80.el8.x8 Mon Sep 13 20:22 still running
root pts/2 192.168.200.1 Wed Sep 1 20:19 - 01:04 (04:45)
root pts/1 192.168.200.1 Mon Aug 30 23:11 - 22:59 (1+23:47)
root pts/0 192.168.200.1 Mon Aug 30 20:04 - 22:59 (2+02:54)
reboot system boot 4.18.0-80.el8.x8 Mon Aug 30 20:03 still running
root pts/0 192.168.200.1 Mon Aug 30 19:59 - 20:00 (00:00)
root pts/1 192.168.200.1 Mon Aug 30 16:36 - 19:59 (03:23)
[root@node1 ~]#
3.用戶登錄失敗記錄
[root@node1 ~]# lastb
btmp begins Mon Sep 13 20:23:03 2021
[root@node1 ~]#
4.登錄日志
[root@node1 ~]# lastlog
Username Port From Latest
root pts/0 192.168.200.1 Fri Sep 17 22:32:06 +0800 2021
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
shutdown **Never logged in**
halt **Never logged in**
mail **Never logged in**
operator **Never logged in**
games **Never logged in**
ftp **Never logged in**
nobody **Never logged in**
dbus **Never logged in**
systemd-coredump **Never logged in**
systemd-resolve **Never logged in**
tss **Never logged in**
polkitd **Never logged in**
geoclue **Never logged in**
rtkit **Never logged in**
pulse **Never logged in**
三、用戶的提權
[root@node1 ~]# vim /etc/sudoers.d/user1
user1 ALL= (ALL) NOPASSWD: /usr/bin/passwd, /usr/bin/mkdir
[user1@node1 ~]$ sudo mkdir file01
[user1@node1 ~]$ ls -l file01
total 0
[user1@node1 ~]$ ls -ld file01
drwxr-xr-x 2 root root 6 Sep 17 22:49 file01
[user1@node1 ~]$ mkdir file02
[user1@node1 ~]$ ls -ld file02
drwxrwxr-x 2 user1 user1 6 Sep 17 22:49 file02
[user1@node1 ~]$
四、ACL權限配置
1.查看檔案的ACL權限
訪問控制串列,可以實作更細致的訪問控制
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rw-
group::r--
other::r--
2.給指定用戶設定ACL權限
[root@node1 ~]# setfacl -m u:user1:rx- file
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rw-
user:user1:r-x
group::r--
mask::r-x
other::r--
3.給檔案擁有人設定ACL權限
[root@node1 ~]# setfacl -m u::rwx file
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
user:user1:r-x
group::r--
mask::r-x
other::r--
4.給指定用戶組設定權限
①新建用戶組及添加組內用戶
[root@node1 ~]# groupadd HR
[root@node1 ~]# groupmems -g HR -a user1
[root@node1 ~]# groupmems -g HR -l
user1
②設定檔案的用戶組權限
[root@node1 ~]# setfacl -m g:HR:rwx file
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
user:user1:r-x
group::r--
group:HR:rwx
mask::rwx
other::r--
[root@node1 ~]#
5.給檔案擁有組設定權限
[root@node1 ~]# setfacl -m g::rx- file
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
user:user1:r-x
group::r-x
group:HR:rwx
mask::rwx
other::r--
[root@node1 ~]#
6.給檔案其他人設定權限
[root@node1 ~]# setfacl -m o::rw- file
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
user:user1:r-x
group::r-x
group:HR:rwx
mask::rwx
other::rw-
7.洗掉檔案高級權限
①洗掉指定用戶權限
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
user:user1:r-x
group::r-x
group:HR:rwx
mask::rwx
other::rw-
[root@node1 ~]# setfacl -x u:user1 file
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
group::r-x
group:HR:rwx
mask::rwx
other::rw-
[root@node1 ~]#
②洗掉指定組的ACL權限
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
group::r-x
group:HR:rwx
mask::rwx
other::rw-
[root@node1 ~]# setfacl -x g:HR file
[root@node1 ~]# getfacl file
# file: file
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::rw-
[root@node1 ~]#
③遞回修改ACL權限
[root@node1 ~]# getfacl ./dir01/
# file: dir01/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
[root@node1 ~]# getfacl ./dir01/test.txt
# file: dir01/test.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@node1 ~]# setfacl -R -m u:user1:rw- ./dir01/
[root@node1 ~]# getfacl ./dir01/
# file: dir01/
# owner: root
# group: root
user::rwx
user:user1:rw-
group::r-x
mask::rwx
other::r-x
[root@node1 ~]# getfacl ./dir01/test.txt
# file: dir01/test.txt
# owner: root
# group: root
user::rw-
user:user1:rw-
group::r--
mask::rw-
other::r--
[root@node1 ~]#
④清除所有ACL權限
setfacl -b
五、檔案與目錄的特殊權限
1.行程與檔案的屬主與屬組
前提:行程有屬主和屬組;檔案有屬主和屬組;
(1) 任何一個可執行程式檔案能不能啟動為行程:取決于發起者對程式檔案是否擁有執行權限;
(2) 啟動為行程之后,其行程的屬主為發起者;行程的屬組為發起者所屬的組;
(3) 行程訪問檔案時的權限,取決于行程的發起者:
(4) 行程的發起者,同檔案的屬主:則應用檔案屬主權限;
(5) 行程的發起者,屬于檔案的屬組;則應用檔案屬組權限;
(6) 應用檔案“其它”權限;
2.suid高級權限
ps:/usr/bin/passwd root
1.當一個檔案有suid的權限時,那么其他用戶來執行該檔案時,臨時獲得檔案擁有人的權限
2.suid的權限只能用在二進制的檔案上,一般是針對命令
3.只能設定在檔案上,設定目錄上無意義
chmod u+s file
[root@node1 ~]# getfacl /usr/bin/passwd
getfacl: Removing leading '/' from absolute path names
# file: usr/bin/passwd
# owner: root
# group: root
# flags: s--
user::rwx
group::r-x
other::r-x
3.sgid高級權限
1.當一個檔案有sgid的權限時,那么其他用戶來執行該檔案時,臨時獲得檔案擁有組的權限,
2.當一個目錄有sgid的權限時,那么任何人在該目錄下創建檔案(包括目錄)時,該檔案的擁有組繼承目錄的組,
chmod g+s directory
[root@node1 ~]# chmod g+s dir01/
[root@node1 ~]# getfacl dir01/
# file: dir01/
# owner: root
# group: root
# flags: -s-
user::rwx
user:user1:rw-
group::r-x
mask::rwx
other::r-x
[root@node1 ~]# touch dir01/list.txt
[root@node1 ~]# getfacl dir01/list.txt
# file: dir01/list.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
4.sticky高級權限
1.用在目錄上,當一個目錄有stciky的權限時,那么其他用戶只能洗掉擁有人是自己的檔案,
chmod o+t directory
六、默認權限與反掩碼
1.root用戶檔案的默認權限
默認權限 umask 022
root
檔案 644
目錄 755
2.普通用戶檔案的默認權限
普通用戶 002
檔案 664
目錄 775
3.umask組態檔
[root@node1 ~]# cat /etc/bashrc |grep umask
# By default, we want umask to get set. This sets it for non-login shell.
umask 002
umask 022
[root@node1 ~]#
4.修改umask
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
~
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
~
5.umask和mask的權限計算
[root@node1 ~]# mkdir dir02/
[root@node1 ~]# ls -ld dir02/
drwxr-xr-x 2 root root 6 Sep 18 12:30 dir02/
[root@node1 ~]# touch file02
[root@node1 ~]# ll file02
-rw-r--r-- 1 root root 0 Sep 18 12:30 file02
[root@node1 ~]#
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/301445.html
標籤:其他
上一篇:PHP加密演算法
