Linux 密码复杂度设置
在 Linux 系统中,密码的安全性至关重要。如果设置了过于简单的密码,就如同敞开大门,邀请黑客入侵。
现实中,像 123456、123abc 或者 1qaz@WSX 这样缺乏复杂性的密码,极容易被猜测或通过暴力破解方法攻破。即使系统其它安全措施做得再好,也难以抵挡这样的攻击。
我们必须意识到密码的复杂性的重要性,并在修改密码时按照严格的规则设置。这不仅仅是一个简单的要求,更是一种责任和义务。
在设置密码时,我们希望达到这样的效果,如果密码不符合规定的复杂度要求,系统拒绝接受并提示我们重新设置密码。
同时,密码的定期更换也是保障系统安全的重要措施。建议每月或每季度更换一次密码,以确保密码的新鲜度和安全性。
密码的复杂性和定期更换是 Linux 系统安全不可或缺的一部分。以下是在 Linux 系统中配置密码复杂度规则的方法。
密码复杂度的配置文件 /etc/pam.d/system-auth
在修改 Linux 系统的配置文件之前,我们最好养成备份原文件的习惯。这样,如果修改过程中出现了错误,可以快速地将配置还原到原始状态。
你可以根据自己的需要,选择备份文件的目录,这里我们选择将备份文件,保存在与原文件相同的目录下。
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
打开配置文件,在 password 开头的行,找到 pam_pwquality.so 这一行,把它注释,改成以下新的配置
vim /etc/pam.d/system-auth
ini
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=10 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
以上配置的主要参数如下
minlen=10 #密码最小长度为 10 个字符,可以设置成自己想要的密码长度
lcredit=-1 #密码至少包含一个小写字母,可以设置包含多个小写字母,修改后面的数字即可
ucredit=-1 #密码至少包含一个大写字母,可以设置包含多个大写字母,修改后面的数字即可
dcredit=-1 #密码至少包含一个数字,可以设置包含多个数字,修改后面的数字即可
ocredit=-1 #密码至少包含一个特殊字符,例如 @,#,$等等,可以设置包含多个特殊字符,修改后面的数字即可
enforce_for_root #即使是 root 用户设置密码,也要按照这个复杂性策略
在等级保护中,设置 Linux 密码复杂度是确保系统安全的重要一环。根据等保要求,操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换。
通过合理设置密码策略并强制执行,Linux 系统可以大大提高密码的安全性,降低被攻击的风险,从而满足等保的要求。
Linux 修改主机名
主机名可用于识别 Linux 主机,特别是有多台 Linux 服务器的时候,可以快速认出对应的机器。
Linux 在没有修改主机名之前,终端提示符都差不多,一般包含用户名、主机名和当前工作目录的信息。
像下面这样的显示,如果多台服务器放在一起,就难以辨别各个主机,特别在做集群配置的时候。
为了更好的辨别,有必要修改服务器主机名,通过主机名称区分,以下是修改主机名的方法。
在修改主机名之前,我们先用命令查看服务器主机名
hostname
或者这样查看
hostnamectl
临时修改主机名,退出终端,我们重新连接终端立刻生效,服务器重启后失效,会显示修改之前的主机名
bash
hostname test
Linux 主机名永久生效的 2 种方法
1、修改主机配置文件
在配置文件中添加主机名后,并不能立刻生效,需要重启服务器才生效。想要立刻生效,可临时修改一下主机名,退出终端重新连接生效
这里使用 echo 命令和覆盖重定向的方式,以达到修改主机名的目的。
bash
echo "myhost" >/etc/hostname
还可以使用 vim 命令,打开主机名配置文件,在该配置文件中,写入主机名,保存后退出。
值得一提的是,在配置文件中,无论写入多少个主机名,重启服务器后,系统通常只会识别第一个主机名,因为该文件的设计初衷是只包含一个主机名。/etc/hostname 文件应该只包含一个以换行符结束的主机名。
2、使用 hostnamectl 命令修改主机名
重新连接终端生效,重启服务器后,主机名永久生效
arduino
hostnamectl set-hostname testhost
Linux 的历史命令记录
Linux 可以使用 history 命令查看用户操作历史记录,默认记录在用户家目录 .bash_history 文件中,也可以在系统级别配置文件/etc/profile
中修改来影响所有用户的命令历史记录。
history 命令在 Linux 系统中默认保存最近执行的 1000 条命令。这个数量是由环境变量 HISTSIZE
控制的。
我们可以自行设置历史记录总数,修改配置 /etc/profile
文件做修改。打开 /etc/profile
文件,修改下面两个参数的值,这里保留 50 条记录
ini
HISTFILESIZE=50 #保存命令总数
HISTSIZE=50 #history 命令输出总数
修改完后保存文件,重新加载配置文件
bash
source /etc/profile
默认历史记录仅仅记录命令,不会记录时间,如果想知道某个命令,什么时候操作的,那就得加上时间了,在配置文件 /etc/profile 中追加两行,别忘了重新加载配置文件,使立刻生效
bash
echo "HISTTIMEFORMAT='%F %T '" >>/etc/profile
echo "export HISTTIMEFORMAT" >>/etc/profile
source /etc/profile
查看历史命令记录
bash
history
下面的内容是由 Linux 的历史命令记录及其衍生的一些简单操作,它们是基于 Linux 的命令历史记录功能,我们可以借助它们更加高效地在命令行界面中工作。
如果想要再次输入之前执行过的命令,那简直是小菜一碟,使用 history 命令查出来后,!编号,重新执行编号后面对应的命令。对于之前的命令行太长,重新手打太费时间,可以考虑使用这个方法。
也可以这样,!string 执行最近的以 string 开头的命令
bash
!cat
!-n 执行倒数第 n 条命令,这里是倒数第 2 条命令
diff
!-2
!! 执行上一条命令
diff
!!
Alt+. 插入上一条命令的最后一个参数,执行命令行 ls /etc/hosts 时 ,我们只需键入 ls 命令后,使用组合键 Alt+. 插入上一条命令的最后一个参数 /etc/hosts ,对于很长的参数,这一招真的太好用了。
Ctrl+R 反向搜索命令历史,我们可以开始输入命令的一部分,然后按 Ctrl+R 来搜索历史记录中匹配该输入的最近命令。重复按 Ctrl+R 可以找到更早的匹配项。
除了上面的操作,还可以使用上下方向键,上下翻看之前执行过的命令,当我们找到想要重新执行的命令时,只需按回车键 Enter 即可执行该命令。对于重复执行之前的命令,结合快捷键和操作的方式,我们可以更加高效地在命令行中工作。
关闭命令历史记录后,上面的操作就会失效。下面是关闭命令历史记录的方法
设置 HISTSIZE 和 HISTFILESIZE 为 0
修改系统级别配置文件 /etc/profile ,将下面两个参数的值改成 0
ini
export HISTSIZE=0
export HISTFILESIZE=0
修改完后保存文件,重新加载配置文件生效
bash
source /etc/profile