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);
+
}