/etc/login.defs时显示权限错误
时间: 2023-06-15 21:07:36 浏览: 109
这个问题可能是因为你没有足够的权限来编辑 `/etc/login.defs` 文件。你需要使用 `sudo` 命令来获取管理员权限,然后再编辑该文件。可以按照以下步骤操作:
1. 打开终端(Terminal)应用程序。
2. 输入以下命令,然后按 Enter 键:
```
sudo nano /etc/login.defs
```
这将使用 `sudo` 命令打开 `/etc/login.defs` 文件,并使用 `nano` 编辑器。
3. 输入你的管理员密码,然后按 Enter 键。
4. 现在可以编辑 `/etc/login.defs` 文件了。完成后,按 Ctrl + X 键,然后输入 Y,最后按 Enter 键保存修改。
注意:在编辑 `/etc/login.defs` 文件时要小心,因为该文件包含有关系统安全性和用户帐户设置的重要信息。如果不确定如何编辑该文件,请不要随意更改其内容。
相关问题
``` cp /etc/pam.d/su /etc/pam.d/su.bak cp /etc/pam.d/password-auth-ac /etc/pam.d/password-auth-ac.bak cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak cp /etc/login.defs /etc/login.defs.bak cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak cp /etc/profile /etc/profile.bak cp /etc/motd /etc/motd.bak ```
这些命令是用来备份一些文件和配置的,具体解释如下:
1. `cp /etc/pam.d/su /etc/pam.d/su.bak`:备份/etc/pam.d/su文件为/etc/pam.d/su.bak。
2. `cp /etc/pam.d/password-auth-ac /etc/pam.d/password-auth-ac.bak`:备份/etc/pam.d/password-auth-ac文件为/etc/pam.d/password-auth-ac.bak。
3. `cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak`:备份/etc/pam.d/system-auth文件为/etc/pam.d/system-auth.bak。
4. `cp /etc/login.defs /etc/login.defs.bak`:备份/etc/login.defs文件为/etc/login.defs.bak。
5. `cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak`:备份/etc/ssh/sshd_config文件为/etc/ssh/sshd_config.bak。
6. `cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak`:备份/etc/vsftpd/vsftpd.conf文件为/etc/vsftpd/vsftpd.conf.bak。
7. `cp /etc/profile /etc/profile.bak`:备份/etc/profile文件为/etc/profile.bak。
8. `cp /etc/motd /etc/motd.bak`:备份/etc/motd文件为/etc/motd.bak。
这些命令将原始文件复制为后缀名为.bak的备份文件,以便在进行配置或修改之前可以恢复原始文件。
逐条注释 ``` if grep -q "PASS_MIN_DAYS" /etc/login.defs then sed -i '/PASS_MIN_DAYS/s/^#//' /etc/login.defs sed -i "s/PASS_MIN_DAYS.*/PASS_MIN_DAYS 6/g" /etc/login.defs fi if grep -q "PASS_MIN_LEN" /etc/login.defs then sed -i '/PASS_MIN_LEN/s/^#//' /etc/login.defs sed -i "s/PASS_MIN_LEN.*/PASS_MIN_LEN 8/g" /etc/login.defs fi if grep -q "PASS_MAX_DAYS" /etc/login.defs then sed -i '/PASS_MAX_DAYS/s/^#//' /etc/login.defs sed -i "s/PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/g" /etc/login.defs fi if grep -q "PASS_WARN_AGE" /etc/login.defs then sed -i '/PASS_WARN_AGE/s/^#//' /etc/login.defs sed -i "s/PASS_WARN_AGE.*/PASS_WARN_AGE 7/g" /etc/login.defs fi ```
这段脚本的作用是修改/etc/login.defs文件中的密码策略配置。具体解释如下:
```shell
if grep -q "PASS_MIN_DAYS" /etc/login.defs
then
sed -i '/PASS_MIN_DAYS/s/^#//' /etc/login.defs
sed -i "s/PASS_MIN_DAYS.*/PASS_MIN_DAYS 6/g" /etc/login.defs
fi
```
- 检查/etc/login.defs文件中是否存在"PASS_MIN_DAYS"这一行。
- 如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释。
- 然后使用sed命令将该行的值修改为"PASS_MIN_DAYS 6",即设置最小密码更改天数为6。
```shell
if grep -q "PASS_MIN_LEN" /etc/login.defs
then
sed -i '/PASS_MIN_LEN/s/^#//' /etc/login.defs
sed -i "s/PASS_MIN_LEN.*/PASS_MIN_LEN 8/g" /etc/login.defs
fi
```
- 检查/etc/login.defs文件中是否存在"PASS_MIN_LEN"这一行。
- 如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释。
- 然后使用sed命令将该行的值修改为"PASS_MIN_LEN 8",即设置最小密码长度为8。
```shell
if grep -q "PASS_MAX_DAYS" /etc/login.defs
then
sed -i '/PASS_MAX_DAYS/s/^#//' /etc/login.defs
sed -i "s/PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/g" /etc/login.defs
fi
```
- 检查/etc/login.defs文件中是否存在"PASS_MAX_DAYS"这一行。
- 如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释。
- 然后使用sed命令将该行的值修改为"PASS_MAX_DAYS 90",即设置最大密码有效天数为90。
```shell
if grep -q "PASS_WARN_AGE" /etc/login.defs
then
sed -i '/PASS_WARN_AGE/s/^#//' /etc/login.defs
sed -i "s/PASS_WARN_AGE.*/PASS_WARN_AGE 7/g" /etc/login.defs
fi
```
- 检查/etc/login.defs文件中是否存在"PASS_WARN_AGE"这一行。
- 如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释。
- 然后使用sed命令将该行的值修改为"PASS_WARN_AGE 7",即设置密码过期提醒天数为7。
这段脚本的目的是修改/etc/login.defs文件中的密码策略配置,包括设置最小密码更改天数、最小密码长度、最大密码有效天数和密码过期提醒天数等。