Re: [Pharo-users] Booting into Pharo!
On Sat, Sep 20, 2014 at 02:46:04PM +0200, stepharo wrote:
On 20/9/14 08:48, Mayuresh Kathe wrote:
Hello Stepharo,
Thanks for writing in the detailed email.
Last night I got Pharo to work on my Ubuntu Server system with minimal X and running in full-screen mode without any extra baggage like a window manager, worked like a charm.
super! I would be good to be able to publish the script and result somewhere.
Not much of a script as such. Put your Pharo image, changes and sources files in your home directory. create/edit a file called .xinitrc containing only "exec pharo-vm-x" (without quotes) within your home directory. Start the X session by issuing "startx" at the command line, and the GUI should be up with Pharo as the only application, no need for even a window manager. Next, just set the Pharo session to use full-screen mode by bringing up the "World" menu inside Pharo, go to the "Windows" sub-menu, and choose "Toggle Full Screen mode", and voila, you have a Pharo full-screen session, as if it's your GUI, remember to save the changes when you quit the Pharo session (which will drop you back to your *nix shell). The next time you issue "startx" within your home directory, the GUI presented would be Pharo. :) Still working on making Pharo the only shell running directly atop the Linux kernel with X as the windowing system, yeah, tried Linux FB, failed. Best, ~Mayuresh
On Sat, Sep 20, 2014 at 06:56:31PM +0530, Mayuresh Kathe wrote:
On Sat, Sep 20, 2014 at 02:46:04PM +0200, stepharo wrote:
On 20/9/14 08:48, Mayuresh Kathe wrote:
Hello Stepharo,
Thanks for writing in the detailed email.
Last night I got Pharo to work on my Ubuntu Server system with minimal X and running in full-screen mode without any extra baggage like a window manager, worked like a charm.
super! I would be good to be able to publish the script and result somewhere.
Not much of a script as such.
Put your Pharo image, changes and sources files in your home directory. create/edit a file called .xinitrc containing only "exec pharo-vm-x" (without quotes) within your home directory.
Start the X session by issuing "startx" at the command line, and the GUI should be up with Pharo as the only application, no need for even a window manager.
Next, just set the Pharo session to use full-screen mode by bringing up the "World" menu inside Pharo, go to the "Windows" sub-menu, and choose "Toggle Full Screen mode", and voila, you have a Pharo full-screen session, as if it's your GUI, remember to save the changes when you quit the Pharo session (which will drop you back to your *nix shell).
The next time you issue "startx" within your home directory, the GUI presented would be Pharo. :)
Still working on making Pharo the only shell running directly atop the Linux kernel with X as the windowing system, yeah, tried Linux FB, failed.
Best,
~Mayuresh
If you are booting directly into the image, you may find it useful to also load CommandShell/OSProcess into your image. This will let you open a Smalltalk shell window directly within your Squeak/Pharo boot image, so that you have access to the operating system with actually opening any windows or terminal sessions outside of your image. http://www.squeaksource.com/CommandShell http://www.squeaksource.com/OSProcess Dave
On Sun, Sep 21, 2014 at 06:56:27PM -0400, David T. Lewis wrote:
If you are booting directly into the image, you may find it useful to also load CommandShell/OSProcess into your image. This will let you open a Smalltalk shell window directly within your Squeak/Pharo boot image, so that you have access to the operating system with actually opening any windows or terminal sessions outside of your image.
http://www.squeaksource.com/CommandShell http://www.squeaksource.com/OSProcess
In view of ShellShock, from a PipeableOSProcess example: | env | env := OSProcess thisOSProcess environment copy. env at: #SHOCKED put: '() { :;}; echo ShellShocked;'. (PipeableOSProcess command: 'echo Nah environment: env) output This gives the following. (Yes, this is done on an unpatched bash for demo purposes. Everyone should patch as soon as you can.) ShellShocked Nah I have a webapp that shells out to some OS command line tool. I think I have written it such that untrustworthy web input does not taint the command line tool's environment and input. I think. Everyone doing similar may wish to relook at it. David, perhaps the code is already there, but can we run OS commands without invoking the shell? Pierce
On Sun, Sep 21, 2014 at 06:56:27PM -0400, David T. Lewis wrote:
If you are booting directly into the image, you may find it useful to also load CommandShell/OSProcess into your image. This will let you open a Smalltalk shell window directly within your Squeak/Pharo boot image, so that you have access to the operating system with actually opening any windows or terminal sessions outside of your image.
http://www.squeaksource.com/CommandShell http://www.squeaksource.com/OSProcess
In view of ShellShock, from a PipeableOSProcess example:
| env | env := OSProcess thisOSProcess environment copy. env at: #SHOCKED put: '() { :;}; echo ShellShocked;'. (PipeableOSProcess command: 'echo Nah environment: env) output
This gives the following. (Yes, this is done on an unpatched bash for demo purposes. Everyone should patch as soon as you can.)
ShellShocked Nah
I have a webapp that shells out to some OS command line tool. I think I have written it such that untrustworthy web input does not taint the command line tool's environment and input. I think. Everyone doing similar may wish to relook at it.
David, perhaps the code is already there, but can we run OS commands without invoking the shell?
Pierce
Yes, you can run any executable command as an external OS process. It is usually easier to run /bin/sh as the command and let the shell do the parsing, but you can run any program you like. And you can also do the "shell" in native Smalltalk with CommandShell, although this is not a complete simulation of a unix shell, so sometimes it is better to use the real /bin/sh program. Dave
On 25 Sep 2014, at 18:27, Pierce Ng <pierce@samadhiweb.com> wrote:
On Sun, Sep 21, 2014 at 06:56:27PM -0400, David T. Lewis wrote:
If you are booting directly into the image, you may find it useful to also load CommandShell/OSProcess into your image. This will let you open a Smalltalk shell window directly within your Squeak/Pharo boot image, so that you have access to the operating system with actually opening any windows or terminal sessions outside of your image.
http://www.squeaksource.com/CommandShell http://www.squeaksource.com/OSProcess
In view of ShellShock, from a PipeableOSProcess example:
| env | env := OSProcess thisOSProcess environment copy. env at: #SHOCKED put: '() { :;}; echo ShellShocked;'. (PipeableOSProcess command: 'echo Nah environment: env) output
This gives the following. (Yes, this is done on an unpatched bash for demo purposes. Everyone should patch as soon as you can.)
ShellShocked Nah
I have a webapp that shells out to some OS command line tool. I think I have written it such that untrustworthy web input does not taint the command line tool's environment and input. I think. Everyone doing similar may wish to relook at it.
It is my understanding that the attack vector is cgi-bin which turns HTTP headers into environment variables, which are then interpreted as functions and executable shell code. [ which is pretty heavy/scary stuff ] If you serve HTTP directly (Zinc/Seaside), or through a proxy (apache2 or nginx), no HTTP headers are turned into environment variables, so invoking a sub shell is safe (unless you make some other error of course). [ anyway, that is what I think ] I disables all cgi[d] modules, we weren't using them anyway. [ but who knows what will turn up ]
David, perhaps the code is already there, but can we run OS commands without invoking the shell?
Pierce
participants (4)
-
David T. Lewis -
Mayuresh Kathe -
Pierce Ng -
Sven Van Caekenberghe