public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: "Till Riedel [TM]" <till.riedel@kit.edu>
To: cygwin@cygwin.com
Subject: Re: Are there any changes to the access control to /proc/<PID>/fd/1 in cygwin 3?
Date: Thu, 20 Jun 2019 20:09:00 -0000	[thread overview]
Message-ID: <53dbd37b-1725-b3a2-3976-c595a694be91@kit.edu> (raw)
In-Reply-To: <b2eb4a82-c60e-de15-93d6-1840ce804afa@kit.edu>

Hi Brian,

you actually hinted me at sth. : powershell.exe Start-Process bash  
\"-c\",\"\'echo hello world  \>`readlink /proc/$$/fd/1`\;sleep 10\'\" 
works as well.

I verified this:

 >echo hello >/proc/3235/fd/0
-bash: echo: write error: Bad file descriptor

 >echo hello >`readlink /proc/3235/fd/0`
works!?

Am I missing sth about symlinks?

BR

Till

Till Riedel [TM] @ 20.06.2019 (21:49) :
> Hi Brian,
>
> thanks for the reply.
>
> But proc/$$/fd/1 references the callers  stdout and not the callees as 
> /dev/stdout or /proc/self/fd/2 if called from eg. from bash, because 
> it is expanded before the call.
>
> What I was able to do is to inject messages into the callers stdout 
> and read from the callers stdin, which is when executing under 
> elevated priviledges (the behaviour you would want for a sudo).
>
> As said echo >/proc/$$/fd/1 hello world is not the problem and works 
> fine as you said as well. (I probably should not have said strangely 
> in the first place, because it is a whole different deal...)
>
> BR
>
> Till
>
>
>
> Brian Inglis @ 16.06.2019 (17:42) :
>> On 2019-06-15 12:27, Till Riedel wrote:
>>> I have been using a very handy sudo hack, that broke lately (I 
>>> think) when
>>> updating cygwin: https://github.com/imachug/win-sudo
>>> The trick is to spawn an elevated process using powershell and hook 
>>> up the
>>> calling file descripters. I now get "write error: Bad file descriptor"
>>> To reproduce call:
>>> powershell.exe Start-Process bash  \"-c\",\"\'echo \>\>/proc/$$/fd/1 
>>> hello
>>> world\;sleep 10\'\"
>>> IMHO this used to work in former versions (print out hello world on 
>>> the calling
>>> shell). Strangely
>>> bash -c "echo >/proc/$$/fd/1 hello world"
>>> works. So my initial guess is that is has to do with the decoupling 
>>> of Cygwin
>>> PIDs from Windows PIDs, but there were also changes in the proc file 
>>> system...
>>> Thanks a lot in advance for any help/thoughts!
>> Given:
>> $ bash -c 'ls -dglo /dev/std* /proc/self /proc/$$ /proc/self/fd/[012]'
>> lrwxrwxrwx 1 15 May 14  2013 /dev/stderr -> /proc/self/fd/2
>> lrwxrwxrwx 1 15 May 14  2013 /dev/stdin -> /proc/self/fd/0
>> lrwxrwxrwx 1 15 May 14  2013 /dev/stdout -> /proc/self/fd/1
>> dr-xr-xr-x 3  0 Jun 16 01:37 /proc/23846
>> lrwxrwxrwx 1  0 Jun 16 01:37 /proc/self -> 23846
>> lrwxrwxrwx 1  0 Jun 16 01:37 /proc/self/fd/0 -> /dev/pty0
>> lrwxrwxrwx 1  0 Jun 16 01:37 /proc/self/fd/1 -> /dev/pty0
>> lrwxrwxrwx 1  0 Jun 16 01:37 /proc/self/fd/2 -> /dev/pty0
>>
>> the following seems to work as expected:
>> $ powershell Start-Process bash  \"-c\",\"\'echo \>\>/dev/stdout hello
>> world\;sleep 10\'\"
>>
-- 
KIT- Research University in the Helmholtz Association

Dr.-Ing. Till Riedel
Lab Leader TECO, SDSC-BW/SDIL (AR)

Karlsruhe Institute of Technology (KIT)
Institute of Telematics (TM)
Pervasive Computing Systems - Prof. Beigl


Bldg. 07.07., Room 211
Vincenz Prießnitz Str. 1, 76131 Karlsruhe

+49 (0)721 608 41706
www.teco.kit.edu/~riedel


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

      reply	other threads:[~2019-06-20 20:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-15 18:28 Till Riedel
2019-06-16 15:42 ` Brian Inglis
2019-06-20 19:49   ` Till Riedel [TM]
2019-06-20 20:09     ` Till Riedel [TM] [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53dbd37b-1725-b3a2-3976-c595a694be91@kit.edu \
    --to=till.riedel@kit.edu \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).