linux sftp和nginx公用一个目录。怎么设置权限?

在Linux系统上将SFTP和Nginx共用一个目录时,需要设置适当的文件权限和用户组权限,以确保安全性和可用性。以下是一种常见的方法,假设您已经安装了OpenSSH用于SFTP和Nginx用于Web服务器:

1. 创建一个共享目录:

首先,创建一个目录,以存储您希望Nginx和SFTP服务共享的文件。使用mkdir命令创建目录,例如:

sudo mkdir /var/www/shared_directory

2. 设置所属用户组:

将该目录所属的用户组设置为Nginx的用户组(通常是www-data)。假设您的Nginx服务器使用www-data用户组:

sudo chown :www-data /var/www/shared_directory

3. 设置目录权限:

为了确保SFTP用户可以写入该目录,您可以授予目录写权限,但请谨慎操作,确保不会破坏Nginx的安全性。使用以下命令赋予目录写权限:

sudo chmod 775 /var/www/shared_directory

这会将读、写和执行权限分配给所有者和用户组,但仅将读和执行权限分配给其他用户。这是一个基本示例,您可以根据您的需求调整权限。

4. 设置SFTP用户的根目录:

对于SFTP用户,您可以通过编辑/etc/ssh/sshd_config文件来指定其根目录。找到并编辑以下行:

#Subsystem sftp /usr/lib/openssh/sftp-server

将其更改为:

Subsystem sftp internal-sftp

然后,在文件末尾添加以下内容:

Match group sftpusers ChrootDirectory /var/www/shared_directory ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no PasswordAuthentication yes

这会将SFTP用户限制在/var/www/shared_directory目录中。

5. 创建SFTP用户组并添加用户:

您需要创建一个用户组,将SFTP用户添加到该组中。使用以下命令创建用户组:

sudo groupadd sftpusers

然后,将SFTP用户添加到该组中,例如:

sudo usermod -a -G sftpusers sftpuser1

6. 重启SSH服务:

完成上述设置后,重新启动SSH服务,以使更改生效:

sudo systemctl restart ssh

现在,SFTP用户将被限制在/var/www/shared_directory目录中,并可以与Nginx共享该目录。请确保将Nginx配置文件指向该目录以提供Web服务。维护良好的文件权限和用户组权限对确保系统安全性至关重要。

评论

  1. e
    1年前
    2023-11-02 9:22:42

    谢谢,使用你的方法成功了!

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇