On 2014-01-13 Mon 14:52 PM |, Craig R. Skinner wrote:
> On 2014-01-11 Sat 18:35 PM |, Craig R. Skinner wrote:
> > $HOME of /var/spool/ftp instead of /home/ftp
> >
> > $SHELL of /sbin/nologin instead of /usr/bin/false
> >
> > 'useradd' instead of 'adduser', which sets a /home prefix
> >
> > Change the 'Directory Setup' section as the existing article duplicates
> > what's in the default /var/spool/ftp/, and set up a local OpenBSD ftp
> > mirror.
> >
>
> Whoops, evidence it works:
>
Anyone else?
Plain text result from the earlier diff:
----------------------------------------
Adding the FTP account
To start off, you need to have an ftp user account on your system. This account
should not have a usable password. Here we will set the login directory to the
pre-existing /var/spool/ftp, as hier(7) says: 'Commonly ~ftp; the anonymous ftp
root directory' but you can put it wherever you want, such as another disk
partition:
$ fgrep ftp /etc/fstab
/dev/sd3a /var/spool/ftp ffs rw,nodev,nosuid,softdep,noatime
0 2
When using anonymous ftp, the ftp daemon will chroot itself to the home
directory of the ftp user. To read up more on that, read the ftpd(8) and
chroot(2) man pages. Here is an example of adding the ftp user. I will do this
using useradd(8).
$ sudo useradd -v -c 'anonymous ftp' -d /var/spool/ftp -u 212121 -g =uid -s
/sbin/nologin ftp
$ sudo userinfo ftp
login ftp
passwd *************
uid 212121
groups ftp
change NEVER
class
gecos anonymous ftp
dir /var/spool/ftp
shell /sbin/nologin
expire NEVER
$ grep ^ftp /etc/group
ftp:*:212121:
Directory Setup
>From a default OpenBSD install, ftp's home directory is already there, and
>mostly pre-populated for anonymous ftp duties:
$ sudo ls -lAR /var/spool/ftp
total 12
dr-x--x--x 2 root wheel 512 Jul 30 18:52 bin
dr-x--x--x 2 root wheel 512 Jul 30 18:52 etc
d--x--x--x 2 root wheel 512 Jul 30 18:52 hidden
/var/spool/ftp/bin:
/var/spool/ftp/etc:
/var/spool/ftp/hidden:
All we need to do is add the public directory. In this example, we'll also set
up the directory structure for a local OpenBSD ftp mirror, for both i386 &
sparc64 machines:
$ sudo mkdir -p /var/spool/ftp/pub/OpenBSD/5.4/{i386,sparc64,packages}
$ sudo mkdir -p /var/spool/ftp/pub/OpenBSD/5.4/packages/{i386,sparc64}
$ sudo find /var/spool/ftp
/var/spool/ftp
/var/spool/ftp/bin
/var/spool/ftp/etc
/var/spool/ftp/hidden
/var/spool/ftp/pub
/var/spool/ftp/pub/OpenBSD
/var/spool/ftp/pub/OpenBSD/5.4
/var/spool/ftp/pub/OpenBSD/5.4/i386
/var/spool/ftp/pub/OpenBSD/5.4/sparc64
/var/spool/ftp/pub/OpenBSD/5.4/packages
/var/spool/ftp/pub/OpenBSD/5.4/packages/i386
/var/spool/ftp/pub/OpenBSD/5.4/packages/sparc64
Now we'll set the directory permissions so the ftp user can read, and the wheel
group can write (ftp get base tarballs and packages):
$ sudo chown -R root:wheel /var/spool/ftp/pub
$ sudo chmod 555 /var/spool/ftp/pub
$ sudo chmod -R 575 /var/spool/ftp/pub/OpenBSD/