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

Reply via email to