我有一个正在运行的 vsftp 服务器。这就是我想做的:
2 名开发人员可以通过 ftp 客户端访问 Web 目录。他们编写他们想要的文件。然后他们刷新页面 (F5),网络服务器为他们提供新页面。
这就是我所做的:
所有访问组)。
用户1属于该组并且
用户2也属于这个组
/var/www/新闻网站
chgrp allaccessgroup /var/www/newsite
chown apache /var/www/newsite
chmod 570 /var/www/newsite
这样:apache可以读取,并且只读取php文件,并且所有user1和user2都被授予执行他们想做的操作的权限。
问题是我希望 user1 和 user2 上传他们的文件。上传文件时,文件权限为 allaccessgroup / user1 或 allaccessgroup / user2,我想要权限 allaccessgroup / apache。
我正在寻找一种在文件上传后自动更改所有权的方法。我读过一些这样的东西:创建一个 php 文件,然后在上传完成后调用:
$complete = $complete.exec("ssh root@host -i /path/to/pulic/key chmod 0700 /Users/".$shortname."/Private/\n");
我不喜欢调用“exec”,这意味着授予“exec”对 php 的访问权限...欢迎任何其他想法!
顺便一提 :
我一直在寻找 vsftp 配置文件:
chown_uploads=YES chown_username=apache
但这适用于上传的匿名文件由不同用户拥有,而不是特定用户
任何其他想法欢迎!
谢谢 !
我已经在 Fedora 12 服务器上设置了 vsftpd,并且希望进行以下配置。每个用户都应该有权访问:
为了实现这一点,我首先将 vsftpd 配置为将每个用户 chroot 到他的主目录。然后,我使用/web/USER正确的权限创建并使用,mount --bind /web/USER /home/USER/Web以便用户可以/web/USER通过/home/USER/Web.
我还打开了 SELinux 布尔值ftp_home_dir,以便允许 vsftpd 在用户的主目录中写入。
这工作得很好,除了当用户尝试上传或重命名 中的文件时/home/USER/Web,SELinux 会禁止它,因为更改也必须对 进行/web/USER,并且 SELinux 不授予 vsftpd 向该目录写入任何内容的权限。
allow_ftpd_full_access我知道我可以通过打开 SELinux 布尔值或来解决问题ftpd_disable_trans。我还尝试使用audit2allow来生成策略,但它的作用是生成一个策略,为ftpd提供对类型目录的写访问权限public_content_t;如果我理解正确的话,这相当于打开allow_ftpd_full_access。
我想知道是否可以配置 SELinux 以允许对特定目录/web/USER及其内容进行 FTP 写访问,而不是完全禁用 SELinux 的 FTP 控制。
我已在 FileZilla 服务器中设置了自签名证书,并启用了基于 SSL/TPS 的 FTP。当我从客户端 FileZilla 连接时,我能够进行身份验证,但无法获取目录列表:
Status: Connecting to MY_SERVER_IP:21...
Status: Connection established, waiting for welcome message...
Response: 220-FileZilla Server version 0.9.39 beta
Response: 220-written by Tim Kosse (Tim.Kosse@gmx.de)
Response: 220 Please visit http://sourceforge.net/projects/filezilla/
Command: AUTH TLS
Response: 234 Using authentication type TLS
Status: Initializing TLS...
Status: Verifying certificate...
Command: USER MYUSER
Status: TLS/SSL connection established.
Response: 331 Password required for MYUSER
Command: PASS ********
Response: 230 Logged on
Command: PBSZ 0
Response: 200 PBSZ=0
Command: PROT P …Run Code Online (Sandbox Code Playgroud) 因此,为了稍微保护我的服务器,我创建了一个具有 su - root 访问权限的新用户并拒绝 root 登录。现在我无法使用该用户通过 Filezilla 对我的服务器上的任何文件进行 SFTP。这些是我采取的步骤:
/etc/ssh/sshd_config使用Filezilla SFTPPermitRootLogin yes进行编辑PermitRootLogin no。现在,不幸的是,当使用新用户/密码通过 Filezilla 进行 SFTP 时,我可以访问和查看服务器中的所有目录/文件,但无法打开/读取/编辑它们。
我是否需要以 root 用户身份更改权限设置,以便新用户能够执行此操作?我有没有搬起石头砸自己的脚?
编辑:好的,root 被 chmod 了文件 777,这允许我以新用户身份查看/编辑,但是有没有办法简单地向用户授予 SFTP 的所有这些权限,而不是公众/任何人别的?
我有一台机器,它是主机,并且安装了 HAProxy 并且可以工作。然后我有一个来宾 KVM 虚拟机在具有 IP 的主机内运行192.168.122.152。我使用 VSFTPD 在来宾计算机上安装了 FTP 服务器。
从主机上,如果我尝试该命令$ ftp -p 192.168.122.152,工作正常,并且我可以连接到来宾 FTP。我需要指出的是,此 FTP 配置为被动,但被动和主动连接都可以从主机进行工作。
/etc/vsftpd.conf这是来宾中的部分摘录:
# Passive mode
connect_from_port_20=NO
tcp_wrappers=YES
listen_address=192.168.122.152
pasv_enable=YES
pasv_promiscuous=NO
port_enable=YES
port_promiscuous=NO
pasv_max_port=10000
pasv_min_port=10250
Run Code Online (Sandbox Code Playgroud)
现在是时候让它可以从外部访问了,所以我/etc/haproxy/haproxy.cfg这样配置:
listen FTP_Default *:21
server ftp01 192.168.122.152 check port 21 inter 10s rise 1 fall 2
listen FTP_Range *:10000-10250
server ftp01 192.168.122.152 check port 21 inter 10s rise 1 fall 2
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试从互联网上的其他计算机进行连接$ ftp -p $PUBLICIP,它只会响应:Connected to <PUBLICIP>,但不会要求输入登录名和密码。
HAProxy …
我无法使用 filezilla 连接到服务器,但使用 winscp 可以连接。filezilla和winscp都使用端口22进行连接。为什么filezilla无法连接到服务器?
我有一个支持busybox 的嵌入式系统。我正在尝试运行 FTP 服务器,以便我可以编辑文件并将数据上传到我的嵌入式系统。但是当我跑
busybox ftpd -w /
Run Code Online (Sandbox Code Playgroud)
它告诉我我需要使用 inetd 并将其放入 conf。但出于多种原因,我不想这样做。当我尝试在 busybox 链接页面中给出的 tcpvd 时,我得到了未定义的命令。有什么建议?
我在另一个 Debian 防火墙后面的 Debian 服务器上使用 vsftpd。natting 是正确的,我可以从外部连接到 ftp 服务器。但是,当客户端发出PASV命令时,ftp 服务器会返回其内部 IP (192.168.0.19)。
我没有pasv_address在conf文件中设置指令,因此“地址是从传入的连接套接字中获取的”(从手册中复制)。在我看来,当外部客户端发出时PASV,应该返回防火墙的外部IP地址,而当内部客户端连接时,应该返回内部FTP服务器的IP。
当我将pasv_address指令设置为防火墙的外部 IP 时,一切都在外部正常工作,但随后在内部中断。当我将其设置为内部 IP 地址或注释掉 时pasv_address,内部客户端可以工作,但外部客户端则不能。
有人有任何见解吗?
编辑1:这是服务器端日志文件:
Thu Sep 7 10:36:15 2017 [pid 9093] FTP command: Client "x.x.x.x", "USER yyy"
Thu Sep 7 10:36:15 2017 [pid 9093] [yyy] FTP response: Client "x.x.x.x", "331 Please specify the password."
Thu Sep 7 10:36:15 2017 [pid 9093] [yyy] FTP command: Client "x.x.x.x", "PASS <password>"
Thu Sep …Run Code Online (Sandbox Code Playgroud) 我已使用此处找到的说明将 IIS 配置为具有多个 FTP 站点:https : //docs.microsoft.com/en-us/iis/publish/using-the-ftp-service/using-ftp-virtual-host -names-in-iis-7
请参阅我在下面结束的配置。
在 IIS 中,我已经配置了基本身份验证并使用用户 mysite_ftp 进行“连接为”,在测试设置时,我在身份验证和授权上都得到绿色复选标记。
当我使用 Filezilla 尝试连接时,我得到以下日志:
尝试使用 VPS 主机名:h2746286.stratoserver.net
Status: Resolving address of h2746286.stratoserver.net
Status: Connecting to 85.214.200.30:21...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Command: USER tv_ftp
Response: 331 Valid hostname is expected.
Command: PASS ***********
Response: 503 Login with USER first.
Error: Critical error: Could not connect to server
Run Code Online (Sandbox Code Playgroud)
尝试使用主机名:www.telefonievergelijken.nl
Status: Resolving address of …Run Code Online (Sandbox Code Playgroud) 我们有相当多的脚本用于使用提供的 Windows 在 Internet 上与供应商上传和下载文件ftp.exe。这是通过 SideWinder 代理的,并通过 FTP 发送给供应商,但他们支持 SFTP。
我们利用ftp -s:filenamewhich指定一个包含 FTP 命令的文本文件;命令将在 FTP 启动后自动运行。
ftp -n -s:dir\filename.ftp proxy.example.com
Run Code Online (Sandbox Code Playgroud)
我们想要做的是在提供的 Windows 上建立隧道,ssh.exe以便我们可以消除 SideWinder 代理并继续使用现有filename文件进行 FTP 命令。
这是否可以使用提供的 Windowsssh.exe以及ftp.exe配置是什么?
我知道有免费的 SFTP 程序。我们正在尝试通过对现有系统进行最少的更改来实现这一目标。希望它像 FTP 连接和操作之前脚本中的 SSH 连接一样简单。