常忘记的linux
高级权限和umask和永久生效
suid
-
数字表示为4,设置在文件上,当用户执行此文件时,将在执行期间获取这个文件所有者的权限,而不是执行者本身的权限
-
passwd,普通用户也能使用,但是使用的时候是以root用户使用的,而不是普通用户,也就是自动提权
# 符号
chmod u+s
# 数字设置
chmod 4755
sgid
-
数字表示2,设置在文件上,临时获取文件所属组的权限
-
设置在目录上,任何用户在这个目录下创建新的文件或者目录,所属组会自动继承该目录的所属组,而不是创建者的主组
# 符号
chmod g+s
# 数字
chmod 2755
# 创建的目录和文件会自动的继承这个目录的拥有组
[zhangsan@master ggg]$ touch 2.txt
[zhangsan@master ggg]$ ll
total 0
-rw-r--r--. 1 root root 0 Sep 23 20:39 1.txt
-rw-r--r--. 1 zhangsan root 0 Sep 23 20:41 2.txt
[zhangsan@master ggg]$ ll -d
drwxrwsrwx. 2 root root 32 Sep 23 20:41 .
sticky
-
数字表示1,设置在目录上的,目录内的文件或者其他目录只有其所有者,目录的所有者或者root用户才能修改
-
即使其他用户对该目录有写的权限也不行
# 符号
chmod o+t
# 数字
chmod 1777
[root@master tmp]# ll -d
drwxrwxrwx. 2 root root 32 Sep 23 20:43 .
[root@master tmp]# ll
total 8
-rw-r--r--. 1 root root 2 Sep 23 20:43 1.txt
-rw-r--r--. 1 zhangsan zhangsan 2 Sep 23 20:43 2.txt
umask掩码
-
这个非常重要的,这个规定了创建的目录和文件的权限
-
默认是0022
-
目录的最大权限为777,因此默认创建的目录权限为0755
-
文件的最大权限为666,默认创建文件的权限为0644
-
如果计算不一致的话,目录和文件的话,以目录的权限为主
-
比如umask权限为033
-
777-033=744 文件权限 666-033=633 但是变成了644
-
文件权限,默认不能有x权限,因此的话,会自动的减1或者加1,就变成了644
-
但是计算目录的权限是完全正确的
永久生效
-
当前用户 ~/.bashrc 或者 ~/.bash_profile
-
所有用户 /etc/profile或者/etc/bash.bashrc
设置用户密码等等期限
字段介绍
- 这个配置文件在/etc/shadow这个配置文件
# 先看其中的一行
devops:$6$.m47I/6SR3HDad2h$xplZqBP9GBJNGTUu1KjiBlZ/x97SlQ9gFZzNQCkyzZm160x3aTOvPGAfz/b6/07vYczkBbLBXO9.XeywYrQ3u0:20349:0:99999:7:::
-
第一列 用户名
-
第二列 密码加密后的 哈希值,*表示无密码且不可登陆的账户,!表示账户被锁定了
-
第三列 最后密码修改的时间 记录上次修改密码的时间,从1970年1月1日起开始计算,19500对应就是2023年5月20日,0表示下次登录时必须修改密码,
-
第四列 密码最小使用期限 设置为4的话,至少4天内不能再次修改密码,0表示没有限制,用户可以随时修改密码
-
第五列 密码最大使用期限 ,设置7的话,超过7天后必须重新设置密码,否则密码失效,99999表示密码长期有效,大于0的值,7的话,表示到期前会触发警告时间
-
第六列 密码过期警告时间 在密码即将过期的时候,提醒用户修改密码,7的话,就是密码过期前7天提醒用户修改密码
-
第七列 密码过期宽限时间 密码过期后,有一个宽限期,用户仍然可以登录,宽限期结束后,账户会被锁定,0密码过期后账户立即被锁定,3的话,密码过期3天内可以登录,3天后账户被锁定
-
第八列 账户过期时间 直接设置整个账户失效时间,账户过期后,无论密码是否有效,用户都无法登录,从1970年1月1日开始计算,空值的话,表示永久有效,19800表示账户2024年3月10日后无法登录
-
第9列 保留字段
-
密码总的使用时间为最大使用期限+过期后还能使用的期限
chage命令修改密码相关信息
-d # 将最近一次修改密码的时间设置为日期 格式 2023-12-31
-E # 密码的过期日期,就是过了这个日期,无法登录 格式2024-12-31
-W # 密码过期前警告天数
-m # 至少过了多少天,才能修改密码,对应的就是密码最小使用期限
-M # 过了多少天后,必须要修改密码,否则密码过期,对应的就是密码最大使用期限
-I # 密码过期了多少天,密码失效,就是密码过期宽限时间
-l # 列出用户信息
[root@node1 ~]# chage pp
Changing the aging information for pp
Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 7 # 至少过了7天才能修改密码,
Maximum Password Age [99999]: 20 # 过了20天后,必须修改密码
Last Password Change (YYYY-MM-DD) [2025-09-28]: 2024-09-28 # 最后一次修改密码的时间
Password Expiration Warning [7]: 7 # 密码过期前7天提醒用户
Password Inactive [-1]: 7 # 密码过期后7天内能仍然能够登录
Account Expiration Date (YYYY-MM-DD) [-1]: 2026-09-28 # 过了这个日期,无法登录用户
linux提权
# /etc/sudoers文件
用户/用户组 主机名= (可以切换的用户) NOPASSWD:命令(ALL)
用户组使用%
# 也就说这个用户可以在哪些主机上进行提权,也可以切换用户
进程优先级设置
-
默认是 -20到19的
-
优先级最高的是-20,最低的是19
-
nice和renice命令修改,前面一个创建文件的时候设置,后面一个是对于已经创建的文件进行修改
# 查看优先级
[root@master ~]# ps -axo user,pid,ni,command |head -n 10
USER PID NI COMMAND
root 1 0 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
root 2 0 [kthreadd]
root 3 -20 [rcu_gp]
root 4 -20 [rcu_par_gp]
root 6 -20 [kworker/0:0H-events_highpri]
root 9 -20 [mm_percpu_wq]
root 10 0 [rcu_tasks_kthre]
root 11 0 [rcu_tasks_rude_]
root 12 0 [rcu_tasks_trace]
- 在启动进程之前进行修改
[root@master ~]# nice -n 10 vim a &
[1] 1875
[root@master ~]# ps -axo ni,command | grep vim
10 vim a
0 grep --color=auto vim
[1]+ Stopped nice -n 10 vim a
- 在启动进程之后修改
[root@master ~]# vim a.txt &
[1] 1894
[root@master ~]# ps -axo ni,command|grep vim
0 vim a.txt
0 grep --color=auto vim
[1]+ Stopped vim a.txt
# 修改优先级
[root@master ~]# renice 10 1894
1894 (process ID) old priority 0, new priority 10
[root@master ~]# ps -axo pid,ni,command|grep vim
1894 10 vim a.txt
1901 0 grep --color=auto vim
作业控制
- 就是前台和后台的配合
# 将一个进程放在后台
vim a &
# 将一个正在运行的进程暂停
vim a
ctrl+z
# 将暂停的进程放在后台运行
[root@master ~]# yum -y install vsftpd
ctrl+z暂停
# 查看后台任务
[root@master ~]# jobs
[1]- Stopped vim a
[2]+ Stopped yum -y install vsftpd
# bg 2 将暂停的程序放在后台运行
[root@master ~]# bg 2
[2]+ yum -y install vsftpd &
Verifying : vsftpd-3.0.5-6.el9.x86_64 1/1
Installed products updated.
Installed:
vsftpd-3.0.5-6.el9.x86_64
# fg 数字,将暂停的程序放在前台运行
[root@master ~]# vim a &
[1] 2056
[root@master ~]# fg 1
vim a
# 杀死后台进程
[root@master ~]# vim a &
[1] 2057
[root@master ~]# jobs
[1]+ Stopped vim a
[root@master ~]# kill -9 %1
[1]+ Stopped vim a
[root@master ~]# jobs
[1]+ Killed vim a

浙公网安备 33010602011771号