in your pureftpd.conf. This logs all actions.
Alternatively you can use the -d or --verboselog commandline options at the startup of pureftpd.
Where these logs go depends on your distribution. This is often /var/log/messages or a separate pureftpd.log.
It would be nice if you could use the immutable flag on directories, but you can cheat by making a file in that directory that is immutable. So touch virtu_user_X/.immutable then chattr +i virt_user_x/.immutable. For example:
[root@hellonurse ~]# cd /root
[root@hellonurse ~]# mkdir z
[root@hellonurse ~]# cd z
[root@hellonurse z]# touch .i
I ended up working this out myself and thought I'd share the steps below...
If you're using the pureftp.passwd file to manage your virtual-users then follow these steps:
Backup pureftp.passwd first before making any changes. Mine was in /etc/pure-ftpd/.
$ cd /etc/pure-ftpd/
$ cp pureftp.passwd pureftp_backup.passwd
Open the pureftp.passwd file with ...
Pure-ftpd does not natively support blocking specific file types. However, you can accomplish this by running a script after the upload to delete the undesired file types.
You would use the pure-uploadscript program to accomplish this.
An example can be found here: http://www.webhostingtalk.com/showpost.php?p=6277573&postcount=4
(You will probably ...
Add the following:
PassivePortRange 50000 55000
and i think that your problem will be solved. Keep in mind that this port range should also be allowed in your firewall.
Quoted from this wonderful source:
In passive mode FTP the client initiates both connections to the server, solving the problem of firewalls filtering ...
Hello for anyone still wondering about this.
Pure-FTPd supports implicit TLS, configurable at compile-time, with the --with-implicittls flag, since version 1.0.24. This turns off the explicit TLS feature, so it's an XOR.
--- BEGIN tl;dr ---
Assuming your Pure-FTPd is running on a Linux host with glibc 2.7+:
Use MySQLCrypt crypt – without parentheses
Run this Python 3 one-liner on the same system where Pure-FTPd runs:
python3 -c 'import sys, crypt, getpass; print(crypt.crypt(getpass.getpass("Password: "), crypt.METHOD_SHA512))'
Enter the desired password.
Copy and paste ...
I've just had a similar problem. I've added user using pure-pw useradd and get 530 Login authentication failed.
The solution was a symlink added to /etc/pure-ftpd/auth directory pointing to /etc/pure-ftpd/conf/PureDB (there is a path to file that keeps ftp users) that shows in alphabetical order before other files in auth, e.g.
cd cd /etc/pure-ftpd/auth/
Try set VIRTUALCHROOT=false and "/./" from user home dir.
When restart, exist -A option:
Restarting ftp server: Running: /usr/sbin/pure-ftpd -l pam -O clf:/var/log/pure->ftpd/transfer.log -u 1000 -E -A -8 UTF-8 -B
glibc 2.7 and higher do support sha512, but only in a salted way.
If you do have salted SHA512-hashes, using "crypt" should instantly work.
If you do have unsalted sha512-hashes: please do avoid them - seriously.
There are pre-calculated databases available, so looking up the hash from those databases will give you instantly either the cleartext-password or ...
A number of SELinux policies are flagged dontaudit so that they do not leave messages in the audit log. This is usually because they are policies that would just spam the log with useless entries, but sometimes developers dontaudit a denial rather than fixing the underlying problem. The policy you're hitting is almost certainly among these, since you aren't ...
echo "10000 11000" > /etc/pure-ftpd/conf/PassivePortRange
I found this by reading the manpage for pure-ftpd-wrapper:
pure-ftpd-wrapper reads the configuration for the Pure-FTPd daemon
from files in the directory /etc/pure-ftpd/conf. Each file in this
directory is related to a command line option.
pure-ftpd-mysql supports sha512 crypt with salt.
It's as easy as:
And do make sure that your Password column is long enough. For crypt $6$ it's 106 characters.
So the table structure working with your query might be like this:
CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Yes, NoTruncate does what you need.
Despite the wording in the configuration file, this option does not require a file with the same name to exist on the server.
To enable it:
in Pure-FTPD 1.0.29 (on Fedora) you would set in /etc/pure-ftpd/pureftpd.conf:
in Pure-FTPD 1.0.36 (on Ubuntu) you would create a file called ...
Does the PEM file declared as SSLCertificateFile need to be updated
in some way if I have generated a new private key?
Yes, since it is the certificate which means the public part of the key (and other data such as validity dates), so this public part must match the private part in the .key file. You can not generate them separately.
If what you give at ...
This is a definitely a known bug with the Debian pureftpd package Here's the full story:
In its early days, say, about 20 years ago, libmysqlclient did not version symbols and did not limit their visibility. Some functions were documented — they were client API, and we promised to keep them stable, working over years. Other functions were not documented, ...
Make the changes you want to your configuration file and then do a graceful restart. This will force the process to reread it's configuration, while still serving active and established connections. After the reload, all new sessions will be served with the updated configuration.
To do a graceful restart type: sudo killall -HUP xinetd (this will affect all ...
No, you would have to implement a temporary filename during uploads in the FTP client, followed by a rename command.
You could upload to temp file starting with a . dot and use the PureFTP switch --prohibitdotfilesread to prevent downloading during the upload, then rename to the final file name which should be atomic.
In active mode the server initiates a connection to a client defined ip address, so the server has no way of affecting the port number being used. In this case you don't need to open other incoming ports than 21 because the server initiates the data connection towards the client.
In passive mode the client opens a connection to a server defined port, and ...
In passive mode the server tells the client to connect back on a random port. You have configured the server to use a specific range so it should only use these. This range will need to be opened though your firewall to allow connections in. (Unless your firewall is clever enough to look in the FTP packets and add dynamic rules).
In active mode the client ...
On Debian squeeze, if you have installed pure-ftpd from the repos, the init.d script appears to be bugged:
Results in syslog containing;
pure-ftpd: (?@?) [ERROR] Unable to start a standalone server: [Address already in use]
And a peek with netstat -ltpn clearly shows that pure-ftpd continues to run, that is to say restart ...
You have to specify masquerade IP on the passive command..
right now your passive command returns 192,168,15,2 (which is a private IP and will not work over public internet connections)
'-P ': Force the specified IP address in reply to
a PASV/EPSV/SPSV command. If the server is behind a masquerading (NAT) box
that doesn't properly handle stateful FTP ...
If you want to add user home as root(/) directory, just change the below option in pure-ftpd.conf which is available in /etc/pure-ftpd dir.
# Cage in every user in his home directory
# YES - User dir as root(/) directory
# NO - No restriction
More details are explained in SUSE11 FTP general settings