Hello, Here at work we have some special users that have a shell script as login shell so they can perform some tasks.
Now, if this script is named /usr/local/bin/youcandothis.sh it will work, same script but named /usr/local/bin/youarenotallowed.sh does not because ksh determines if it is called as a restricted shell very loose, if not silly. Alf --- bin/ksh/main.c.orig Mon Aug 1 11:51:00 2011 +++ bin/ksh/main.c Mon Aug 1 12:04:03 2011 @@ -748,7 +748,14 @@ char *p; if ((p = strrchr(name, '/'))) - name = p; - /* accepts rsh, rksh, rpdksh, pdrksh, etc. */ - return (p = strchr(name, 'r')) && strstr(p, "sh"); + name = p + 1; + /* accepts rsh, rksh, rpdksh, pdrksh */ + if (strcmp(name, "rsh") && \ + strcmp(name, "rksh") && \ + strcmp(name, "rpdksh") && \ + strcmp(name, "pdrksh")) + return(0); + else + return(1); + }