From: "Till Riedel [TM]" <till.riedel@kit.edu>
To: cygwin@cygwin.com
Subject: Re: Re: Are there any changes to the access control to /proc/<PID>/fd/1 in cygwin 3?
Date: Thu, 20 Jun 2019 19:49:00 -0000 [thread overview]
Message-ID: <b2eb4a82-c60e-de15-93d6-1840ce804afa@kit.edu> (raw)
In-Reply-To: <ce76246c-bf9e-9988-97f7-93e7e206d764@SystematicSw.ab.ca>
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
next prev parent reply other threads:[~2019-06-20 19:49 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] [this message]
2019-06-20 20:09 ` Till Riedel [TM]
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=b2eb4a82-c60e-de15-93d6-1840ce804afa@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).