Folks, With the code cleanup of entrance several months ago, a user can no longer login with entrance using /bin/tcsh. This problem was fixed about a year ago, but cropped up again and has never been fixed. If possible, I'd like the problem to be addressed. Here is the background info once again regarding the bug:
> There IS a reason for using /bin/sh and not the user's shell, and > that explains the mess at that part of the code. Check the following > commit. > > --------------------- > revision 1.80 > date: 2005/12/10 05:55:09; author: xcomputerman; state: Exp; lines: > +1 -1 > I thought I had committed this... > Force usage of /bin/sh to execute session to avoid problems with csh > users. > --------------------- > > The exact Reason can be seen from the tcsh man page > > ---------------- > -l The shell is a login shell. Applicable only if -l is the only > flag specified. > ---------------- > > So there you go, you can't do csh -l -c xxx, it won't work, and the > latest commit will give problems to users with their default shell set > to csh.
--- Begin Message ---Hi Greg, I seems to have problems committing to the entrance cvs, so I have attached a cvs diff here for you to try and commit it. Cheers, Phuah Yee Keat Gregory Kriehn wrote: > Phuah, > > It looks like your highlight of the problem has not been folded into the > most recent commits of entrance yet. Is it possible for you to bump > this back up? > > I have confirmed, once again, that it is indeed tcsh/csh causing the > problem. > > Thanks! > Greg > > On Fri, 2006-09-15 at 10:15 +0800, Phuah Yee Keat wrote: >> The latest entrance commit makes it incompatible with tcsh. >> >> I am reproducing the mail I sent to the list below: >> >> ------------------- >> Hi, >> >> Sorry that this came in late. The latest entrance patch have some problems >> >> --------------------- >> revision 1.86 >> date: 2006/08/31 14:37:37; author: essiene; state: Exp; lines: +73 -24 >> - Commit Entrance shell utilization patches from Eugen Minciu... they >> work like a charm :) >> - Update TODO >> --------------------- >> >> There IS a reason for using /bin/sh and not the user's shell, and that >> explains the mess at that part of the code. Check the following commit. >> >> --------------------- >> revision 1.80 >> date: 2005/12/10 05:55:09; author: xcomputerman; state: Exp; lines: +1 -1 >> I thought I had committed this... >> Force usage of /bin/sh to execute session to avoid problems with csh users. >> --------------------- >> >> The exact Reason can be seen from the tcsh man page >> >> ---------------- >> -l The shell is a login shell. Applicable only if -l is the only >> flag specified. >> ---------------- >> >> So there you go, you can't do csh -l -c xxx, it won't work, and the >> latest commit will give problems to users with their default shell set >> to csh. >> >> Cheers, >> Phuah Yee Keat >? entrance_session.cvsdiff Index: entrance_session.c =================================================================== RCS file: /var/cvs/e/e17/apps/entrance/src/client/entrance_session.c,v retrieving revision 1.89 diff -r1.89 entrance_session.c 843,844c843 < } else { < res = execl("/bin/sh", "/bin/sh", "-l", "-c", buf, NULL); --- > } 846,853c845,847 < /* Getting here means the previous didn't work < * If /bin/sh isn't a login shell run /bin/sh without loading the profile < * Also log a warning because this will probably not behave correctly */ < if (res == -1) { < /*TODO: should actually hit the user in the face with this message*/ < syslog(LOG_NOTICE, "Neither '%s' or '/bin/sh' are working login shells for user '%s'. Your session may not function properly. ",shell,user); < execl("/bin/sh", "/bin/sh", "-c", buf, NULL); < } --- > /* For csh, the above will fail, because csh does not like '-l -c cmd' > * fallback to using default shell */ > res = execl("/bin/sh", "/bin/sh", "-l", "-c", buf, NULL); 855,858c849,855 < /* Damn, that didn't work either. < * Bye! We call it quits and log an error < * TODO: Also hit the user in the face with this! (ouch!)*/ < syslog(LOG_CRIT, "Entrance could not find a working shell to start the session for user: \"%s\".",user); --- > /* Getting here means the previous didn't work > * If /bin/sh isn't a login shell run /bin/sh without loading the profile > * Also log a warning because this will probably not behave correctly */ > if (res == -1) { > /*TODO: should actually hit the user in the face with this message*/ > syslog(LOG_NOTICE, "Neither '%s' or '/bin/sh' are working login > shells for user '%s'. Your session may not function properly. ",shell,user); > execl("/bin/sh", "/bin/sh", "-c", buf, NULL); 859a857,861 > > /* Damn, that didn't work either. > * Bye! We call it quits and log an error > * TODO: Also hit the user in the face with this! (ouch!)*/ > syslog(LOG_CRIT, "Entrance could not find a working shell to start the > session for user: \"%s\".",user);
--- End Message ---
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
