sed -i '/auth sufficient pam_rootok.so/s/^#//' /etc/pam.d/su
时间: 2023-07-17 16:05:42 浏览: 77
这个命令是用来修改 `/etc/pam.d/su` 文件,将其中的一行开启注释。具体来说,它会查找包含字符串 `/auth sufficient pam_rootok.so` 的行,并将该行开头的 `#` 字符删除,从而取消该行的注释。这样做的目的是启用 `pam_rootok.so` 模块,允许 root 用户使用 `su` 命令切换到其他用户而无需密码。
相关问题
``` if grep -q "auth sufficient pam_rootok.so" /etc/pam.d/su then sed -i '/auth sufficient pam_rootok.so/s/^#//' /etc/pam.d/su else echo 'auth sufficient pam_rootok.so' >> /etc/pam.d/su fi if grep -q "auth required pam_wheel.so group=wheel" /etc/pam.d/su then sed -i '/auth required pam_wheel.so group=wheel/s/^#//' /etc/pam.d/su else echo 'auth required pam_wheel.so group=wheel' >> /etc/pam.d/su fi if grep -q "export TMOUT=300" /etc/profile then sed -i '/export TMOUT=300/s/^#//' /etc/profile else echo 'export TMOUT=300' >> /etc/profile fi source /etc/profile ```
这段脚本的作用是对一些文件进行修改或添加配置,并且立即应用这些修改。具体解释如下:
1. 首先,检查/etc/pam.d/su文件中是否存在"auth sufficient pam_rootok.so"这一行。如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释;如果不存在,则在文件末尾添加一行"auth sufficient pam_rootok.so"。
2. 接着,检查/etc/pam.d/su文件中是否存在"auth required pam_wheel.so group=wheel"这一行。如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释;如果不存在,则在文件末尾添加一行"auth required pam_wheel.so group=wheel"。
3. 然后,检查/etc/profile文件中是否存在"export TMOUT=300"这一行。如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释;如果不存在,则在文件末尾添加一行"export TMOUT=300"。
4. 最后,使用source命令重新加载/etc/profile文件,以使修改立即生效。
这段脚本的目的是修改或添加一些系统配置,例如su命令的授权和超时时间的设置,并且立即应用这些修改。
if grep -q "auth required pam_wheel.so group=wheel" /etc/pam.d/su then sed -i '/auth required pam_wheel.so group=wheel/s/^#//' /etc/pam.d/su else echo 'auth required pam_wheel.so group=wheel' >> /etc/pam.d/su fi if grep -q "export TMOUT=300" /etc/profile then sed -i '/export TMOUT=300/s/^#//' /etc/profile else echo 'export TMOUT=300' >> /etc/profile fi
以下是将这些命令转换为Python代码的示例:
```python
import subprocess
su_pam_file = '/etc/pam.d/su'
wheel_auth_line = 'auth required pam_wheel.so group=wheel\n'
with open(su_pam_file, 'r') as file:
content = file.read()
if 'auth required pam_wheel.so group=wheel' in content:
content = content.replace('#auth required pam_wheel.so group=wheel', 'auth required pam_wheel.so group=wheel')
else:
content += wheel_auth_line
with open(su_pam_file, 'w') as file:
file.write(content)
profile_file = '/etc/profile'
tmout_line = 'export TMOUT=300\n'
with open(profile_file, 'r') as file:
content = file.read()
if 'export TMOUT=300' in content:
content = content.replace('#export TMOUT=300', 'export TMOUT=300')
else:
content += tmout_line
with open(profile_file, 'w') as file:
file.write(content)
```
上述代码首先打开`/etc/pam.d/su`文件,并读取其内容。如果文件中存在`auth required pam_wheel.so group=wheel`行,则将其注释去除,否则将该行添加到文件末尾。
然后,打开`/etc/profile`文件,并读取其内容。如果文件中存在`export TMOUT=300`行,则将其注释去除,否则将该行添加到文件末尾。
请确保你具有足够的权限来执行这些操作,并将需要修改的PAM文件路径和需要修改的profile文件路径正确添加到`su_pam_file`和`profile_file`变量中。运行代码后,命令将被执行。
阅读全文