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
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel