使用sed命令注释Subsystem sftp /usr/libexec/openssh/sftp-server行并在其下一行添加内容Subsystem sftp internal-sftp
时间: 2024-08-13 09:10:26 浏览: 53
你可以使用`sed`命令来注释掉`Subsystem sftp /usr/libexec/openssh/sftp-server`这一行,并在其下一行添加新的`Subsystem`。这里是一个简单的步骤:
首先,你需要打开你想要编辑的SSH配置文件,通常是`/etc/ssh/sshd_config`。然后,你可以使用以下`sed`命令来达到目的:
```bash
sudo sed -i '/Subsystem sftp /usr/libexec/openssh/sftp-server/c\' \
'#Subsystem sftp /usr/libexec/openssh/sftp-server' \
'/^$/a subsystem sftp internal-sftp' /etc/ssh/sshd_config
```
解释一下这个命令:
- `sed -i`: 这是在原地(in place)修改文件,`-i`选项会直接对`sshd_config`文件进行操作而无需先备份。
- `/Subsystem sftp /usr/libexec/openssh/sftp-server/`: 此处为正则表达式,匹配到包含指定路径的`sftp`子系统行。
- `c\`: 表示将找到的行替换为(comment out with a hash mark "#")。
- `#Subsystem sftp /usr/libexec/openssh/sftp-server`: 新的行,前面加上井号`#`表示注释该行。
- `/^$/a subsystem sftp internal-sftp`: 如果当前行为空(即没有其他内容),就在其后追加`subsystem sftp internal-sftp`。
执行完上述命令后,`Subsystem sftp /usr/libexec/openssh/sftp-server`行会被注释掉,并在其下方添加了新的`Subsystem sftp internal-sftp`。
阅读全文