我有一个正在运行的 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 控制。
有没有一种工具可以扫描 FTP 目录并构建磁盘使用情况的可视化表示?我在 Windows 上运行,因此我更喜欢该工具,但 *NIX 工具也很有用。我正在沿着 WinDirStat、KDirStat 和 TreeSize 的思路思考。起初我以为 WinDirStat 可能能够扫描 FTP 目录,但事实并非如此。自由和开源软件是一个优点,但不是一个要求(我不反对为好的软件付费)。
我还想获得一份关于存在多少种类型的文件、最大的文件等的简单报告。与 *DirStat 中的简单文件类型报告非常相似。
我有一个名为“ftp3”的用户,属于“ftpusers-temp”组。
该用户的主页是 home/FTP-shared/temp
在 proftpd.conf 中我有以下 2 个指令:
DefaultRoot /home/FTP-shared
DefaultRoot ~ ftpusers-temp
Run Code Online (Sandbox Code Playgroud)
我期望用户 ftp3 只能看到“temp”目录;但发生的情况是,登录时默认选择“temp”目录,但用户可以返回并访问 ftp 服务器的根目录。
用户“ftp3”不应该被囚禁在“/home/FTP-shared/temp”中,并且无法访问“/home/FTP-shared”吗?
我使用lftp 将服务器上的文件镜像到PC。对我来说,问题是当我将一批与服务器上的文件完全相同的文件放在PC上时,所有文件的镜像都会开始。可能是由于时间戳不同?这是一个问题,因为镜像仅旨在更改我可能更改的一些文件,而不是全部(大量文件)。
我想要的是 lftp: 1. 使用服务器上的新文件更新 PC 2. 删除 PC 上不再位于服务器上的任何文件 3. (问题就在这里)存在于服务器上的文件PC 和服务器,仅当文件大小存在差异时才应在 PC 上更新(忽略任何潜在的时间戳差异)命令现在如下所示:
LCD="/home/administrator/files"
RCD=""
lftp -c "ser ftp:list-options -a;
open ftp://$username:$pw@$host;
lcd $LCD;
cd $RCD;
mirror --delete"
Run Code Online (Sandbox Code Playgroud)
我应该添加/更改什么?提前致谢。/托比
我已在 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无法连接到服务器?
我在另一个 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)