sed -i '/auth sufficient pam_rootok.so/s/^#//' /etc/pam.d/su
时间: 2023-07-22 10:14:35 浏览: 54
这个命令使用了 `sed` 工具,用于修改 `/etc/pam.d/su` 文件中包含字符串 "auth sufficient pam_rootok.so" 的行。
具体而言,命令中的 `/auth sufficient pam_rootok.so/` 是一个模式,用于匹配包含 "auth sufficient pam_rootok.so" 的行。然后,命令使用了 `s/^#//` 来替换匹配行的开头的 `#` 字符为空字符串,即去掉了行的注释符号。
通过使用 `-i` 选项,命令会直接修改 `/etc/pam.d/su` 文件,而不是输出结果到终端。
简而言之,这个命令的作用是取消 `/etc/pam.d/su` 文件中包含 "auth sufficient pam_rootok.so" 的行的注释,并在原文件中进行修改。请注意,在执行此命令之前,确保你有足够的权限对 `/etc/pam.d/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 ```
这段脚本的作用是对指定的文件进行修改或添加配置,并且立即应用这些修改。下面是对每个部分逐条进行注释:
```shell
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
```
- 检查/etc/pam.d/su文件中是否存在"auth sufficient pam_rootok.so"这一行。
- 如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释。
- 如果不存在,则在文件末尾添加一行"auth sufficient pam_rootok.so"。
```shell
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
```
- 检查/etc/pam.d/su文件中是否存在"auth required pam_wheel.so group=wheel"这一行。
- 如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释。
- 如果不存在,则在文件末尾添加一行"auth required pam_wheel.so group=wheel"。
```shell
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
```
- 检查/etc/profile文件中是否存在"export TMOUT=300"这一行。
- 如果存在,则使用sed命令将该行的行首的注释符号#去掉,即取消注释。
- 如果不存在,则在文件末尾添加一行"export TMOUT=300"。
```shell
source /etc/profile
```
- 重新加载/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`变量中。运行代码后,命令将被执行。