[ Usenet FAQs | Search | Web FAQs | Documents | RFC Index ]
You must create a file named /etc/shells (this is the real /etc not a
subdirectory of your false root), that contains all the shells that
are defined on your system. Get the list from
/etc/security/login.cfg. Also, if having proper group authentication
is important to you, apply the following patch:
--- ftpd.c.dist Wed Apr 13 15:17:18 1994
+++ ftpd.c Tue Jan 17 13:29:58 1995
@@ -1153,7 +1153,13 @@
setgroups(NULL, NULL);
if (setpriv(PRIV_SET|PRIV_INHERITED|PRIV_EFFECTIVE|PRIV_BEQUEATH,
&priv, sizeof(priv_t)) < 0 ||
- setuidx(ID_REAL|ID_EFFECTIVE, (uid_t)pw->pw_uid) < 0 ||
+ initgroups(pw->pw_name, (gid_t)pw->pw_gid) < 0 ||
+ setgidx(ID_REAL|ID_EFFECTIVE, (gid_t)pw->pw_gid) < 0 ||
+ setegid((gid_t)pw->pw_gid) < 0) {
+ reply(550, "Can't set gid (AIX3).");
+ goto bad;
+ }
+ if (setuidx(ID_REAL|ID_EFFECTIVE, (uid_t)pw->pw_uid) < 0 ||
seteuid((uid_t)pw->pw_uid) < 0) {
reply(550, "Can't set uid (AIX3).");
goto bad;
Send corrections/additions to the FAQ Maintainer:
Last Update May 13 2007 @ 00:21 AM