parameters to shell script

parameters to shell script

Amos Shapira amos.shapira at gmail.com
Tue Dec 8 11:49:12 IST 2009


2009/12/8 Tom Goren <motnerog at gmail.com>

> does it work with *su* (as opposed to over ssh)?
>
> i.e.     *su - bybass -c "/Path/To/bypass.sh** param1 param2"
>
> *also, more information is definitely required, especially why you are
> trying to use this script as the default user shell, which does not sound
> like best practices...
>
> a shell is a shell, and a script is a script. if you want to run something
> by default whenever the user logs in, then just use /bin/bash as the default
> shell, and then set up whatever you need in the user's respective *.bashrc
> *
>
> please someone correct me if i am mistaken.
>

I beg to differ.

It's legitimate to assign a special script as a login shell when you want to
limit the user to just executing that command when logging in.
e.g. "/bin/nologin" or "/bin/halt".

The script should probably be pretty secure to prevent leaks (e.g. allow
injection of code via unquoted input).

I just created a user "testuser" on my desktop, assigned it a password, made
sure it has a home directory and a file named .hushlogin under it and set
its shell to the following script:

#!/bin/bash
echo Arguments: "$*"

And when I ssh to it I get:

# ssh testuser at localhost arg1
testuser at localhost's password:
Arguments: -c arg1

Seems to work fine. The OP will have to give more info to get help.

--Amos


> tom.
>
>
>
> 2009/12/6 Shay Ohayon <shay at shayohayon.net>
>
> Try running the command its parameters inside quotes (")
>>
>> for example: ssh user at host "command param1 paramN"
>>
>> I must say that it is quite difficult to provide you with a solution
>> because I don't really know what the script does and how does it handles
>> each parameter, it would be better if you can provide it to me.
>>
>> good luck
>>
>> shay
>>
>>
>> On Sun, Dec 6, 2009 at 5:31 PM, eliyahu cohen <eliyahu.cohen1 at yahoo.com>wrote:
>>
>>> I have a user called bypass whose defined shell in /etc/passwd is
>>> /Path/To/bypass.sh
>>>
>>> that script takes three parameters. When I run the script from the
>>> command line the script identifies the parameters. However, when the script
>>> is run via an ssh command (i.e. ssh bypass at 10.1.1.1 Parm1 Parm2 Parm2)
>>> the script does not see all three parameters. I've also tried calling the
>>> script via ssh bypass at 10.1.1.1 /Path/To/bypass.sh Parm1 Parm2 Parm3, but
>>> no joy. How can I have a script run as the users shell and execute multiple
>>> receieved parameters?
>>>
>>> Thanks,
>>>
>>> Eliyahu
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Linux-il mailing list
>>> Linux-il at cs.huji.ac.il
>>> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
>>>
>>
>>
>> _______________________________________________
>> Linux-il mailing list
>> Linux-il at cs.huji.ac.il
>> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
>>
>>
>
> _______________________________________________
> Linux-il mailing list
> Linux-il at cs.huji.ac.il
> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cs.huji.ac.il/pipermail/linux-il/attachments/20091208/e0077e99/attachment.html>


More information about the Linux-il mailing list