Are there any changes to the access control to /proc/<PID>/fd/1 in cygwin 3?
Till Riedel [TM]
Thu Jun 20 20:09:00 GMT 2019
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`
Am I missing sth about symlinks?
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...)
> 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
>>> 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
>>> Thanks a lot in advance for any help/thoughts!
>> $ bash -c 'ls -dglo /dev/std* /proc/self /proc/$$ /proc/self/fd/'
>> 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
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin