调整sftp创建目录权限
时间: 2023-08-29 13:05:07 浏览: 177
您可以通过修改SFTP服务器的配置文件来调整SFTP创建目录的权限。
1. 打开SFTP服务器的配置文件,通常为/etc/ssh/sshd_config。
2. 找到Subsystem sftp的行并将其修改为如下所示:
Subsystem sftp internal-sftp -d /path/to/home
其中,/path/to/home是SFTP用户的主目录。
3. 在该行下添加如下内容:
ForceCommand internal-sftp -u 0022
这将强制SFTP会话使用内部SFTP服务器,并将创建的目录权限设置为0022。
4. 保存并关闭配置文件,然后重新启动SSH服务。
注意:这种方法将会影响所有使用SFTP的用户。如果您只想针对特定的用户调整权限,可以使用chroot或ACL等其他方法来实现。
相关问题
linux修改sftp 根目录
要修改Linux中SFTP的根目录,需要执行以下操作:
1. 打开sshd配置文件:通常位于/etc/ssh/sshd_config。
2. 使用文本编辑器打开sshd配置文件:可以使用命令行工具如vi或nano,也可以使用图形界面上的文本编辑器。
3. 查找并修改以下行:找到"Subsystem sftp"开头的行,将行末的路径修改为想要设置的SFTP根目录的路径。例如,修改为"Subsystem sftp /var/sftp"。
4. 保存并关闭文件:在命令行编辑器中,按下Esc键,然后输入":wq"保存并退出vi编辑器,或者Ctrl+X然后按下Y键并按下Enter键保存并退出nano编辑器。
5. 重新加载SSH服务:可以通过运行以下命令重新加载SSH服务以使更改生效:sudo service ssh restart。
6. 创建SFTP根目录:使用mkdir命令创建SFTP根目录。例:sudo mkdir /var/sftp。
7. 设置所需的权限:使用chmod命令设置SFTP根目录的所需权限。例:sudo chmod 755 /var/sftp。
8. 将SFTP用户的根目录指向SFTP根目录:编辑所需的用户帐户的/etc/passwd文件,并将用户的根目录路径更改为SFTP根目录。例:sudo vi /etc/passwd,找到相应用户行并修改用户根目录的路径为"/var/sftp"。
通过执行上述步骤,您就可以成功地将SFTP用户的根目录修改为所需的路径。请记住,根据您的 Linux 发行版和配置,上述步骤可能会略有不同,请按照您的实际情况进行适当的调整。
centos sftp配置
### CentOS 中 SFTP 服务器的配置
#### 创建并启用 SSH 服务
为了确保能够正常访问远程文件传输功能,需先确认 OpenSSH 已经被正确安装:
```bash
sudo yum update
sudo yum install -y openssh-server
```
启动 SSHD 并将其设为随系统自动启动[^1]:
```bash
sudo systemctl start sshd
sudo systemctl enable sshd
```
#### 用户创建与权限设定
接着要建立专门用于 SFTP 访问的新用户账户 `sftpuser` 及其密码验证机制:
```bash
sudo adduser sftpuser
sudo passwd sftpuser
```
#### 修改 SSH 配置文件
编辑 `/etc/ssh/sshd_config` 文件来调整默认行为。对于安全性和隔离性的考虑,建议采取以下措施[^3][^4]:
- 注释原有子系统的声明,并替换为内部实现方式:
```plaintext
# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
```
- 添加针对特定用户组的安全约束条件,比如限定根目录位置、禁用端口转发等功能:
```plaintext
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
```
上述更改使得属于 `sftp` 组的所有成员都将受限于指定路径内操作。
完成这些改动之后记得重启 SSH 服务使新参数生效:
```bash
sudo systemctl restart sshd
```
阅读全文