1、useradd 更改默认设置
useradd -D 显示默认设置 #/etc/default/useradd
[root@rocky8-1 ~]#useradd -D
GROUP=1001
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
useradd -D -s shell类型 # 修改默认shell类型
[root@rocky8-1 ~]#useradd -D -s /sbin/nologin
[root@rocky8-1 ~]#useradd -D
GROUP=1001
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/sbin/nologin
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
useradd -D -b 家目录 #修改默认家目录
[root@rocky8-1 ~]#useradd -D -b /tmp
[root@rocky8-1 ~]#useradd -D
GROUP=1001
HOME=/tmp
INACTIVE=-1
EXPIRE=
SHELL=/sbin/nologin
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
新建用户的相关文件
/etc/default/useradd
/etc/skel/*
/etc/login.defs
2、用户密码策略
chage 可以修改和显示用户密码策略
格式:
chage 选项 用户
选项:
-d 更改密码时间,0 就是下次登录必须修改密码
-m 密码最小生存时间
-M 密码有效期
-W 密码到期前几天提醒
-I 密码过期后的宽限期
-E 用户账户有效期
-l 显示用户密码策略
例:
[root@rocky8-1 ~]#chage -d 0 u1
[root@rocky8-1 ~]#getent shadow u1
u1:$6$dx3tukk85vHhIVhB$cA6x7w/EjtYooRUlqZxN23pJujA/5R9HvN8VE12HDBfL0ffKaphszbbDZqqS6Be6W85bzDEqls8tscWcg9URO.:19178:0:99999:7:::
[root@rocky8-1 ~]#chage -m 1 u1
[root@rocky8-1 ~]#getent shadow u1
u1:$6$dx3tukk85vHhIVhB$cA6x7w/EjtYooRUlqZxN23pJujA/5R9HvN8VE12HDBfL0ffKaphszbbDZqqS6Be6W85bzDEqls8tscWcg9URO.:19178:1:99999:7:::
[root@rocky8-1 ~]#chage -M 10 u1
[root@rocky8-1 ~]#getent shadow u1
u1:$6$dx3tukk85vHhIVhB$cA6x7w/EjtYooRUlqZxN23pJujA/5R9HvN8VE12HDBfL0ffKaphszbbDZqqS6Be6W85bzDEqls8tscWcg9URO.:19178:1:10:7:::
[root@rocky8-1 ~]#chage -W 3 u1
[root@rocky8-1 ~]#getent shadow u1
u1:$6$dx3tukk85vHhIVhB$cA6x7w/EjtYooRUlqZxN23pJujA/5R9HvN8VE12HDBfL0ffKaphszbbDZqqS6Be6W85bzDEqls8tscWcg9URO.:19178:1:10:3:::
[root@rocky8-1 ~]#chage -I 5 u1
[root@rocky8-1 ~]#getent shadow u1
u1:$6$dx3tukk85vHhIVhB$cA6x7w/EjtYooRUlqZxN23pJujA/5R9HvN8VE12HDBfL0ffKaphszbbDZqqS6Be6W85bzDEqls8tscWcg9URO.:19178:1:10:3:5::
[root@rocky8-1 ~]#chage -E 19199 u1
[root@rocky8-1 ~]#getent shadow u1
u1:$6$dx3tukk85vHhIVhB$cA6x7w/EjtYooRUlqZxN23pJujA/5R9HvN8VE12HDBfL0ffKaphszbbDZqqS6Be6W85bzDEqls8tscWcg9URO.:19178:1:10:3:5:19199:
[root@rocky8-1 ~]#chage -l u1
Last password change : Jul 05, 2022
Password expires : Jul 15, 2022
Password inactive : Jul 20, 2022
Account expires : Jul 26, 2022
Minimum number of days between password change : 1
Maximum number of days between password change : 10
Number of days of warning before password expires : 3
3、文件的权限
owner 属主(所有者)u
group 属组(所属组)g
other 其他(其他人)o
注:用户权限匹配,是从左往右顺序匹配,即,先匹配所有者,再匹配所属组,最后匹配其他人,一旦匹配到权限立即生效,不在向右查看其它权限。
r和w权限对root无效
只要所有者、所属组、其他人种任意一个有x权限 ,root就可以执行
[root@rocky8-1 ~]#ll
total 12
-rw-------. 1 root root 1438 Jul 2 10:43 anaconda-ks.cfg
-rw-r--r--. 1 root magedu 2955 Jul 5 15:58 f2.txt
-rw-r--r--. 1 root root 1728 Jul 2 10:52 initial-setup-ks.cfg
对文件的权限:
r 可使用文件查看类工具,比如: cat,可以获取其内容
w 可修改其内容,文件的是否被删除和文件的权限无关(和目录权限有关)
x 可以把此文件启动为一个进程,即可以执行(运行〉, (此文件的内容必须是可执行)
文件常见权限组合
- - - 0
r - - 4
r - x 5
r w - 6
r w x 7
对目录的权限:
r 可以使用 ls 命令查看此目录中文件名列表,但无法看到文件的属性meta信息,包括inode号,不能查看文件的内容
w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
x 可以使用 cd 命令进入此目录,可以使用 ls -l file 或stat file查看此目录中指定文件的元数据,当预先知道文件名称时,也可以查看文件的内容,属于目录的可访问的最小权限
X 分配给目录或有部分x权限的文件的x权限,对无任意x权限的文件则不会分配x权限
目录权限常见组合
---不能访问目录
r-x只读目录
rwx可读也可写目录
4、特殊权限
特殊权限:SUID, SGID, Sticky
SUID 作用于二进制可执行文件上,用户将继承此程序所有者的权限
SGID 作用于二进制可执行文件上,用户将继承此程序所有组的权限
作于于目录上, 此目录中新建的文件的所属组将自动从此目录继承
STICKY 作用于目录上,此目录中的文件只能由所有者自已来删除
SUID
- 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
- 启动为进程之后,其进程的属主为原程序文件的属主
- SUID只对二进制可执行程序有效
- SUID设置在目录上无意义
SUID权限设定:
chmod u+s 二进制文件
chmod 4xxx 二进制文件
chmod u-s 二进制文件
例:
[root@rocky8-1 ~]#chmod u+s /usr/bin/cat #给cat命令加SUID权限
[root@rocky8-1 ~]#ll /usr/bin/cat
-rwsr-xr-x. 1 root root 38528 Oct 21 2021 /usr/bin/cat
[magedu@rocky8-1 ~]$ cat /etc/shadow #普通用户也可以通过cat命令查看shadow文件🤢🤢🤔🤢
root:$6$yHvOcFDvTFVaHdBH$9k3E8SBeDp86LBct5ml3Ih85q4VMKjutuNPUxQgdmPIwohH.wbjXPdrl4j4dGMQJB9TgyAJyWciI96W4D8GMp/:19176:0:99999:7:::
SGID
- 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
- 启动为进程之后,其进程的属组为原程序文件的属组
SGID权限设定:
chmod g+s 二进制文件|目录
chmod 2xxx 二进制文件|目录
chmod g-s 二进制文件|目录
例:
[root@rocky8-1 tmp]#chmod g+s dir
[root@rocky8-1 tmp]#ll
total 0
drwxr-sr-x. 2 magedu magedu 6 Jul 5 15:04 dir
[root@rocky8-1 tmp]#cd dir
[root@rocky8-1 dir]#mkdir dir333
[root@rocky8-1 dir]#mkdir dir444
[root@rocky8-1 dir]#touch f1
[root@rocky8-1 dir]#ll
total 0
drwxr-sr-x. 2 root magedu 6 Jul 5 20:31 dir333
drwxr-sr-x. 2 root magedu 6 Jul 5 20:31 dir444
-rw-r--r--. 1 root magedu 0 Jul 5 20:31 f1
STICKY
- 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
- 在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
- sticky 设置在文件上无意义
Sticky权限设定:
chmod o+t 目录
chmod 1xxx 目录
chmod o-t 目录
例:
[root@rocky8-1 tmp]#chmod o+t dir
[root@rocky8-1 tmp]#ll
total 0
drwxr-xrwt. 2 root root 6 Jul 5 20:33 dir
[root@rocky8-1 dir]#ll
total 0
-rw-rw-r--. 1 magedu magedu 0 Jul 5 20:38 magedu.txt
-rw-rw-r--. 1 u1 u1 0 Jul 5 20:39 u1.txt
-rw-rw-r--. 1 u2 u2 0 Jul 5 20:40 u2.txt
-rw-rw-r--. 1 u3 u3 0 Jul 5 20:40 u3.txt
[magedu@rocky8-1 dir]$ rm -f u1.txt
rm: cannot remove 'u1.txt': Operation not permitted
[magedu@rocky8-1 dir]$ rm -f u2.txt
rm: cannot remove 'u2.txt': Operation not permitted
权限位映射 SUID: user,占据属主的执行权限位
s:属主拥有x权限
S:属主没有x权限
SGID: group,占据属组的执行权限位
s: group拥有x权限
S:group没有x权限
Sticky: other,占据other的执行权限位
t:other拥有x权限
T:other没有x权限
5、文件特殊属性
- 设置文件的特殊属性,可以防止root 用户误操作删除或修改文件
a、不能删除,改名,更改 +i
chattr +i 文件
显示特殊属性 lsattr
例:
[root@rocky8-1 tmp]#chattr +i dir
[root@rocky8-1 tmp]#ll
total 0
drwxr-xr-x. 2 root root 66 Jul 5 20:40 dir
[root@rocky8-1 tmp]#rm -rf dir
rm: cannot remove 'dir/magedu.txt': Operation not permitted
rm: cannot remove 'dir/u1.txt': Operation not permitted
rm: cannot remove 'dir/u2.txt': Operation not permitted
rm: cannot remove 'dir/u3.txt': Operation not permitted
[root@rocky8-1 tmp]#lsattr dir
-------------------- dir/magedu.txt
-------------------- dir/u1.txt
-------------------- dir/u2.txt
-------------------- dir/u3.txt
[root@rocky8-1 tmp]#lsattr /tmp/dir -d
----i--------------- /tmp/dir
[root@rocky8-1 tmp]#chattr -i dir
[root@rocky8-1 tmp]#lsattr -d dir
-------------------- dir
b、只能追加内容,不能删除,改名 +a
chattr +a 文件
显示特殊属性 lsattr
例:
[root@rocky8-1 tmp]#chattr +a dir
[root@rocky8-1 tmp]#lsattr -d dir
-----a-------------- dir
[root@rocky8-1 tmp]#cd dir
[root@rocky8-1 dir]#ls
magedu.txt u1.txt u2.txt u3.txt
[root@rocky8-1 dir]#vim u1.txt
[root@rocky8-1 dir]#echo 123 >> u1.txt
[root@rocky8-1 dir]#rm -f u1.txt
rm: cannot remove 'u1.txt': Operation not permitted
[root@rocky8-1 dir]#mv u1.txt hhh.txt
mv: cannot move 'u1.txt' to 'hhh.txt': Operation not permitted
6、ACL访问控制列表
ACL权限功能:
ACL:Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
ACL生效顺序:
所有者,自定义用户,所属组 | 自定义组,其他人
setfacl 可设置ACL权限
getfacl 可查看设置的ACL权限
例:
[root@rocky8-1 dir]#setfacl -m u:magedu:- magedu.txt
[root@rocky8-1 dir]#ll
total 0
-rw-rw-r--+ 1 root root 0 Jul 5 20:38 magedu.txt
[root@rocky8-1 dir]#getfacl magedu.txt
# file: magedu.txt
# owner: root
# group: root
user::rw-
user:magedu:---
group::rw-
mask::rw-
other::r--
[root@rocky8-1 dir]#su magedu
[magedu@rocky8-1 dir]$ cat magedu.txt
cat: magedu.txt: Permission denied
[magedu@rocky8-1 dir]$ echo 123 >> magedu.txt
bash: magedu.txt: Permission denied
[root@rocky8-1 dir]#setfacl -m g:m50:w magedu.txt
[root@rocky8-1 dir]#getfacl magedu.txt
# file: magedu.txt
# owner: root
# group: root
user::rw-
user:magedu:---
group::rw-
group:m50:-w-
mask::rw-
other::r--
[root@rocky8-1 dir]#id magedu
uid=1000(magedu) gid=1000(magedu) groups=1000(magedu)
[root@rocky8-1 dir]#id u1
uid=1002(u1) gid=1002(u1) groups=1002(u1)
[root@rocky8-1 dir]#su u1
[u1@rocky8-1 dir]$ cat magedu.txt
111
222
333
[root@rocky8-1 dir]#gpasswd -a u1 m50
Adding user u1 to group m50
[root@rocky8-1 dir]#getent group u1
u1:x:1002:
[root@rocky8-1 dir]#su u1
[u1@rocky8-1 dir]$ echo u1 >> magedu.txt
[u1@rocky8-1 dir]$ cat magedu.txt
cat: magedu.txt: Permission denied
[root@rocky8-1 dir]#groupmems -a magedu -g m50
[root@rocky8-1 dir]#su magedu
[magedu@rocky8-1 dir]$ cat magedu.txt
cat: magedu.txt: Permission denied
[magedu@rocky8-1 dir]$ echo mage >> magedu.txt
bash: magedu.txt: Permission denied
注:在getfacl里已经自定义magedu用户的权限为空,按照acl执行顺序判断,先匹配所有者,再匹配自定义用户,
再匹配所属组或自定义组,最后匹配其他人;所以此时先匹配所有者root是否有acl,
在匹配自定义用户magedu,magedu已经定了acl权限为无任何权限,所以不往后匹配。