rcsh

February 9, 2004 @ 11:26 pm

The rcsh term stand for ‘restricted command shell’. The purpose of it is to severly limit the access shell accounts have on a server. If rcsh is specified as shell command in ‘/etc/passwd’, only command available in a specific directory can be executed.

The idea for this program came from building a chroot cvs server that used ssh as transport. The documents I found for that configuration used a modified sendmail smrsh. Some enhancement came to mind which would make the whole concept more flexible and configurable. That’s how rcsh was born. It incorporates what I learned from studying the smrsh sources.

Some usage instructions are in order. For an account where restricted access is required, specify the rcsh command as login shell in ‘/etc/passwd’. Then create the ‘/etc/rcsh/rcsh’ directory and populate it with symlinks to binaries which may be executed by the account. For a different purpose it is possible to create a symlink to rcsh and specify the symlink in ‘/etc/passwd’. In that case, create a subdirectory under ‘/etc/rcsh’, named identical to the symlink and populate it with allowed commands. There is also a special case of noshell. If rcsh is run as noshell it disallows every attempted login. I guess ‘/bin/false’ does the same but I thought I’d throw it in anyways.

The latest archive can be found at

No Comments

No comments yet.

RSS 2.0 feed for comments on this post.

Sorry, the comment form is closed at this time.