bugzilla-daemon at bugzilla.mindrot.org
2015-Sep-23  13:04 UTC
[Bug 2471] New: "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471
            Bug ID: 2471
           Summary: "match exec" prepends "exec" to its
command
           Product: Portable OpenSSH
           Version: 7.1p1
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P5
         Component: ssh
          Assignee: unassigned-bugs at mindrot.org
          Reporter: res at qoxp.net
The "match exec" feature in ssh_config does this:
  static int
  execute_in_shell(const char *cmd)
  {
  ...
        /*                                                              
         * Use "exec" to avoid "sh -c" processes on some
platforms
         * (e.g. Solaris)                                               
         */
        xasprintf(&command_string, "exec %s", cmd);
This is a problem, because it assumes the user's shell supports a
particular command syntax, beyond just requiring that it support the
"$SHELL -c <command>" convention. For example, if your shell is
fish
and you have e.g.:
  match exec "getent passwd %u | grep -q NOT_THERE"
This doesn't work, because:
  $ fish -c "getent passwd res | grep -q NOT_THERE" && echo
match
  $ fish -c "exec getent passwd res | grep -q NOT_THERE" &&
echo match
  res:x:11500:11500::/home/res:/bin/bash
  match
... and of course, the shell might not have an "exec" command at all.
I
think you should just remove this optimization. At least, it should be
documented if you leave it in; ssh_config(1) only says:
  The exec keyword executes the specified command under the user?s
shell.
Thanks,
Richard E. Silverman
-- 
You are receiving this mail because:
You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2015-Oct-22  03:54 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471
Darren Tucker <dtucker at zip.com.au> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dtucker at zip.com.au
--- Comment #1 from Darren Tucker <dtucker at zip.com.au> ---
Well it assumes the user's shell supports a particular command syntax
that's specified by SuSv2:
http://pubs.opengroup.org/onlinepubs/007908799/xcu/chap2.html#tag_001_014_006
which fish does seem to actually have:
http://fishshell.com/docs/current/commands.html#exec
Is the fish behaviour version specific?
-- 
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2015-Oct-22  04:11 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471 --- Comment #2 from Richard E. Silverman <res at qoxp.net> ---> Well it assumes the user's shell supports a particular command syntax that's specified by SuSv2: > http://pubs.opengroup.org/onlinepubs/007908799/xcu/chap2.html#tag_001_014_006 > > which fish does seem to actually have: > http://fishshell.com/docs/current/commands.html#execI did show in my initial report with an example, actually, that fish does *have* an "exec" command -- it just doesn't have quite the required behavior. Though I think it's questionable to require the shell to support any specific command set, SuSv2 notwithstanding.> Is the fish behaviour version specific?I'm afraid I don't know; it happens with the RHEL6 fish 2.1.2, in any event. -- Richard -- You are receiving this mail because: You are watching someone on the CC list of the bug. You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2015-Oct-22  04:36 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471 --- Comment #3 from Darren Tucker <dtucker at zip.com.au> --- (In reply to Richard E. Silverman from comment #2)> I think it's questionable to require the > shell to support any specific command set, SuSv2 notwithstanding.Hm. that's a fair point, and there's no particular requirement that a user's shell conforms to SuSv2 either. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2015-Oct-22  04:37 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471
Darren Tucker <dtucker at zip.com.au> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |2451
Referenced Bugs:
https://bugzilla.mindrot.org/show_bug.cgi?id=2451
[Bug 2451] Bugs intended to be fixed in 7.2
-- 
You are receiving this mail because:
You are watching someone on the CC list of the bug.
You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2015-Oct-23  02:22 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471
Darren Tucker <dtucker at zip.com.au> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned-bugs at mindrot.org |dtucker at zip.com.au
                 CC|                            |djm at mindrot.org
   Attachment #2734|                            |ok?(djm at mindrot.org)
              Flags|                            |
--- Comment #4 from Darren Tucker <dtucker at zip.com.au> ---
Created attachment 2734
  --> https://bugzilla.mindrot.org/attachment.cgi?id=2734&action=edit
remove "exec" from match exec handling
-- 
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2015-Oct-23  02:26 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471 --- Comment #5 from Darren Tucker <dtucker at zip.com.au> --- Damien points out that the ProxyCommand codes does the same thing (although that's likely to be less problematic because | is unidirectional and the ProxyCommand needs to be bidirectional). -- You are receiving this mail because: You are watching someone on the CC list of the bug. You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2015-Oct-23  02:46 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471 --- Comment #6 from Darren Tucker <dtucker at zip.com.au> --- The commit that added it to ProxyCommand was https://anongit.mindrot.org/openssh.git/commit/sshconnect.c?id=8c4e18a6ec22a09b9082ff74b668685c30a028e7 , referencing bug #223. Looking at the bug we can probably get rid of the exec now too: ssh -W is neater than netcat, and in the case where it still matters exec can be prepended to the ProxyCommand in the config. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2015-Oct-23  03:28 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471
Damien Miller <djm at mindrot.org> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Attachment #2734|ok?(djm at mindrot.org)        |ok+
              Flags|                            |
-- 
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2015-Oct-25  23:14 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471
Darren Tucker <dtucker at zip.com.au> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
--- Comment #7 from Darren Tucker <dtucker at zip.com.au> ---
Patch has been applied and will be in 7.2.  Thanks.
-- 
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2016-Aug-02  00:42 UTC
[Bug 2471] "match exec" prepends "exec" to its command
https://bugzilla.mindrot.org/show_bug.cgi?id=2471
Damien Miller <djm at mindrot.org> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |CLOSED
--- Comment #8 from Damien Miller <djm at mindrot.org> ---
Close all resolved bugs after 7.3p1 release
-- 
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.