# chown (GroupOwner) do not work with proftpd (with Linux OK)



## parcival (Apr 28, 2010)

Hi all,
i would like to switch our proftp server from Linux to FreeBSD.
However i have the following problem.
But for possibly a reason the command "GroupOwner" under FreeBSD does not work, chown is not started.
my kernel is FreeBSD 8.0-RELEASE-p2 and proftpd 1.3.3

proftpd.conf

```
<Directory /usr/local/daten/excella>
GroupOwner ftp-excella
# Umask 000 000
HideNoAccess on
		<Limit ALL>
			DenyGroup !ftp-excella
#			AllowAll
		</Limit>

		<Limit CDUP CWD XCWD XCUP>
			AllowGroup ftp-excella
			DenyAll
		</Limit>

		<Limit STOR STOU SITE_CHMOD>
			AllowGroup ftp-excella
			DenyAll
		</Limit>

		<Limit DELE RMD RNFR>
			AllowGroup ftp-excella
			DenyAll
		</Limit>
</Directory>
```

debug proftp linux:

```
- in dir_check(): setting umask to 0002 (was 0002)
- dispatching CMD command 'STOR download.cgi' to mod_xfer
- chown(/excella/download.cgi) to gid 524 successful
- passive data connection opened - local  : ::ffff:192.168.100.159:51212
- passive data connection opened - remote : ::ffff:192.168.1.69:61035
```

debug proftp FreeBSD:

```
- in dir_check(): setting umask to 0002 (was 0002)
- dispatching CMD command 'STOR download.cgi' to mod_xfer
- passive data connection opened - local  : ::ffff:192.168.100.130:58614
- passive data connection opened - remote : ::ffff:192.168.1.69:60874
```

Does someone have an idea?
Did i forget something with to install proftpd with FreeBSD?

Thanks for each assistance.

parcival


----------



## DutchDaemon (Apr 28, 2010)

Is the information in 'Description' at http://www.proftpd.org/docs/directives/linked/config_ref_GroupOwner.html applicable to you?


----------



## parcival (Apr 28, 2010)

DutchDaemon, thanks for your fast answer.
That is so far everything correct (Description proftpd).
Which surprises me, is in debug by proftpd (FreeBSD) no error is indicated (Description proftpd -> a warning message is also logged).
It looks in such a way that chown is not implemented /started by proftpd.


----------



## DutchDaemon (Apr 28, 2010)

ProFTPD can not chown anything in directories it does not have permissions on, or so I believe that's what that 'Description' says.


----------



## parcival (Apr 28, 2010)

Hmm, the directory has already 777
If something to go wrong run here, must have to be seen in debug.
I do not see warnings, nothing.
For me the question arises, why proftpd does not try at all chown to start.
One must see this in debug.


----------



## parcival (Apr 28, 2010)

The GID seems to be correct and also one recognizes (1022), however i miss chown (GroupOwner)


```
- in dir_check_full(): path = '/excella', fullpath = '/usr/local/daten/excella'.
- retrieved GID 1022 for group 'ftp-excella'
- dispatching POST_CMD command 'CWD /excella' to mod_readme
- dispatching LOG_CMD command 'CWD /excella' to mod_log
- dispatching PRE_CMD command 'SYST' to mod_tls
- dispatching PRE_CMD command 'SYST' to mod_rewrite
- dispatching PRE_CMD command 'SYST' to mod_core
- dispatching PRE_CMD command 'SYST' to mod_core
- dispatching CMD command 'SYST' to mod_core
- dispatching LOG_CMD command 'SYST' to mod_log
- dispatching PRE_CMD command 'STAT /excella' to mod_tls
- dispatching PRE_CMD command 'STAT /excella' to mod_rewrite
- dispatching PRE_CMD command 'STAT /excella' to mod_core
- dispatching PRE_CMD command 'STAT /excella' to mod_core
- dispatching CMD command 'STAT /excella' to mod_ls
- dispatching LOG_CMD command 'STAT /excella' to mod_log
- dispatching PRE_CMD command 'TYPE I' to mod_tls
- dispatching PRE_CMD command 'TYPE I' to mod_rewrite
- dispatching PRE_CMD command 'TYPE I' to mod_core
- dispatching PRE_CMD command 'TYPE I' to mod_core
- dispatching CMD command 'TYPE I' to mod_xfer
- dispatching LOG_CMD command 'TYPE I' to mod_log
- dispatching PRE_CMD command 'PASV' to mod_tls
- dispatching PRE_CMD command 'PASV' to mod_rewrite
- dispatching PRE_CMD command 'PASV' to mod_core
- dispatching PRE_CMD command 'PASV' to mod_core
- dispatching CMD command 'PASV' to mod_core
- ROOT PRIVS at inet.c:238
- RELINQUISH PRIVS at inet.c:256
- Entering Passive Mode (192,168,100,130,209,45).
- dispatching LOG_CMD command 'PASV' to mod_log
- dispatching PRE_CMD command 'STOR ceramicteeth.zip' to mod_tls
- dispatching PRE_CMD command 'STOR ceramicteeth.zip' to mod_rewrite
- dispatching PRE_CMD command 'STOR ceramicteeth.zip' to mod_core
- dispatching PRE_CMD command 'STOR ceramicteeth.zip' to mod_core
- dispatching PRE_CMD command 'STOR ceramicteeth.zip' to mod_ratio
- dispatching PRE_CMD command 'STOR ceramicteeth.zip' to mod_xfer
- in dir_check(): setting umask to 0000 (was 0002)
- dispatching CMD command 'STOR ceramicteeth.zip' to mod_xfer
- UseReverseDNS off, returning IP address instead of DNS name
```


----------



## parcival (May 7, 2010)

hi all,
i have found the solution with help of TJ Saunders (Maintainer, Core Developer at The ProFTPD -> big thank you).

With FreeBSD this parameter must be active.

```
[B]PersistentPasswd on[/B]

If set to "on", proftpd will attempt to open the system-wide /etc/passwd, /etc/group (and /etc/shadow, potentially)
files itself, holding them open even during a chroot()ed login.
```


----------

