我有一个正在运行的 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
但这适用于上传的匿名文件由不同用户拥有,而不是特定用户
任何其他想法欢迎!
谢谢 !
我尝试为 vsftpd 配置用户磁盘配额。
我在 debian 上使用“quota”包为 ftp 虚拟用户配置了配额(你知道,通过编辑 /etc/fstab 和所有这些东西)。互联网告诉我,这是使用 vsftpd 的唯一解决方案。
问题是:当文件上传到 ftp 服务器时,它的所有者是 ftp:nogroup,所以配额不适用于我的用户,例如 bob:bob。
我也尝试 chown ftp:bob 目标文件夹,并在 bob 组上使用组配额,但我没有工作
所以我直接去了 FAQ 并没有找到这个 :) 你有关于这个配额问题的任何解决方案吗?
干杯,迈赫迪
我已经在 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 控制。
我正在尝试连接到我在 EC2 上托管的 CentOS Linux 机器,我认为我已经正确配置了所有内容,但是当我尝试连接时,我收到了这一系列消息
Status: Connection established, waiting for welcome message...
Response: 220 (vsFTPd 2.0.5)
Command: USER tyndall
Response: 331 Please specify the password.
Command: PASS *********
Response: 230 Login successful.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/home/tyndall"
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Error: Connection timed out
Error: Failed to retrieve directory listing
不确定从哪里开始解决此问题。有任何想法吗?我需要更改任何权限吗?我认为这个 ID 有能力看到我自己的主目录。
我能够从在 Windows 上运行的 FTP 客户端的命令行版本推送/拉取文件。
每当我将文件上传到运行 VSFTP 的 FTP 服务器时,其文件权限默认为 600 ( rw-------)。如何将其更改为 775 ( rwxr-xr-x)?
我需要更新 ftp 用户的主目录。我可以运行userdel命令然后重新添加用户而不丢失用户附加的目录吗?或者是否有另一种方法来更改用户的目录?
我也没有使用 chroot_list ......
谢谢。
我正在尝试配置 VsFTPd 服务器以再次验证 LDAP 服务器。这可能很容易,但是由于这是我第一次同时使用 LDAP 和 PAM,所以我遇到了一些困难。VsFTPd 在 Ubuntu Server 11.04 上运行,LDAP 是 10.10 Ubuntu Server 上的 OpenLDAP。我在第一个上禁用了 AppArmor。VsFTPd 无法连接到 LDAP 服务器,在我的系统日志中我有:
vsftpd: pam_ldap: ldap_simple_bind Can't contact LDAP server
LDAP 服务器没问题,因为我可以执行ldapsearch.
这是我的/etc/pam.d/vsftpd文件:
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
@include common-account
@include common-session
@include common-auth
auth required pam_ldap.so
account required pam_ldap.so
session required pam_ldap.so
password required pam_ldap.so
Run Code Online (Sandbox Code Playgroud)
这是我的/etc/ldap.conf文件:
base dc=example,dc=com
uri ldapi:///ldap.example.com
ldap_version 3
rootbinddn cn=admin,dc=example,dc=com
pam_password md5
nss_initgroups_ignoreusers a_bunch_of_system_users
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?谢谢你。
编辑:/etc/pam.d/vsftpd …
设置:
VSFTPD FTP 服务器
只有 FTP 用户可以访问 FTP
用户主页修改为 /var/www
用户现在只能写访问 /var/www
用户仍然可以浏览文件夹结构 -这是我想要防止的。
换句话说,如何防止 FTP 用户浏览 /var/www 上的任何文件夹?
我的 vsftpd.conf
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please …Run Code Online (Sandbox Code Playgroud) 我遵循了所有指南,但就是无法通过 ftp 登录。
...
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Switching to Binary mode.
local: 21 remote: 21
229 Entering Extended Passive Mode (|||12028|)
550 Failed to open file.
221 Goodbye.
Run Code Online (Sandbox Code Playgroud)
甚至在 iptables 中也有它:
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpts:12000:12100
Run Code Online (Sandbox Code Playgroud)
我已将min和max端口设置vsftpd.conf为12000-12100并通过 AWS 控制台启用了相同的端口。
我在另一个 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)