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/

Reply via email to