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

Reply via email to