常忘记的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


posted @ 2025-09-23 20:33  乔的港口  阅读(8)  评论(0)    收藏  举报