From mboxrd@z Thu Jan 1 00:00:00 1970 From: ron@ronnatalie.com (Ron Natalie) Date: Sat, 10 Sep 2016 21:24:37 -0400 Subject: [TUHS] Shell control through external commands In-Reply-To: References: <201607151647.u6FGlqvW037575@tahoe.cs.Dartmouth.EDU> <20160910174011.GF5970@dnied%tiscali.it> Message-ID: <006301d20bcb$43ae03b0$cb0a0b10$@ronnatalie.com> Traditionally, the shell recognized shell scripts and ran them in a new instance of the shell rather than calling exec on them. It was a Berkeley hack to add a new exec magic number that happened to correspond to the characters #!. The shells typically still recognized scripts (the #! was syntactically a comment) and invoked them, but if they were passed to exec (i.e., from something other than the shell that was to interpret the), the kernel recognized the magic number and invoked what followed as the name of an interpreter to handle the file. Not only did this allow arbitrary interpretters (other than /bin/sh or any shell), but it also allowed things like setuid bits to work, and scripts to be invoked by things that didn't just feed the file name to a shell to invoke. -----Original Message----- From: TUHS [mailto:tuhs-bounces@minnie.tuhs.org] On Behalf Of Dave Horsfall Sent: Saturday, September 10, 2016 6:44 PM To: The Eunuchs Hysterical Society Subject: Re: [TUHS] Shell control through external commands On Sat, 10 Sep 2016, Dario Niedermann wrote: > I never knew that a shell script could work without a shebang line. I believe it was used to specify an interpreter other than /bin/sh (the default). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."