NetBSD Developer Documentation: Developer Restricted Shell Access

For security reasons, developer access on cvs.NetBSD.org has been restricted to the following commands:

Restricted Shell Commands


Restricted Shell Commands

cvs server

This allows you to use CVS (CVS in client/server mode invokes cvs server on the remote side to do its processing).

passwd

This allows you to change your password interactively. Remember that you have to use ssh -t so that your password does not get echoed on the screen. This feature currently serves no purpose.

pwstore

This allows you to set your initial Kerberos password. Remember that you have to use ssh -t so that your password does not get echoed on the screen.

update_my_keys

This command allows you to manage your .ssh/authorized_keys file using RCS. You can feed it a new authorized_keys on stdin, and it will store the old file using RCS, and then install the new set of keys. It should be invoked as ssh cvs.NetBSD.org update_my_keys, with the new authorized_keys file passed to it on stdin. It will not accept null input (deletion of all keys) unless it is invoked as update_my_keys -d.

Because there is a limit of line length on UNIX tty driver with line-editing enabled, it is safe to do stty -icanon to disable line-editing before invoking update_my_keys. Don't forget to re-enable line-editing by doing stty icanon in such a case.

If you make an error, you can ask the admin group to restore an older authorized_keys file for you. But because a restoration request needs to be signed by PGP, you must commit your PGP key to the repository before doing update_my_keys.

rsync --server --daemon

This command requires rsync 2.5.6 or newer. It allows you to run rsync in daemon mode over an SSH connection. Your login shell will adjust any rsync command line to force the use of an rsync daemon configuration file that will only allow you to read /cvsroot, using module name cvsroot. So, you invoke rsync like this (for example):

rsync -avS --delete -e ssh <login>@cvs.NetBSD.org::cvsroot/src .

This command will connect to cvs.NetBSD.org using ssh as user loginname, invoke the rsync daemon, and fetch the src subdirectory of the cvsroot module, which of course corresponds to /cvsroot/src.

If you want to rsync the entire repository, take care not to sync CVSROOT/history.*.xz and CVSROOT/commitlog.*.xz by specifying options --exclude 'history.*.xz' and --exclude 'commitlog.*.xz', unless you want to engage in historical studies. The sum of these files is >2.5GB.


Back to  NetBSD Developer Documentation