On Thu, Nov 29, 2007 at 09:54:33PM -0200, Jorge Marques Pelizzoni wrote: >First of all, please believe that I spent almost three hours going through >the mailing list archives before asking this. It's just that I (and many >others) have not been able to find a solution there. > >I'm not running a program that tests for rootness in some non-portable >way. I'm just calling an innocent ioctl directly into cygwin, which tells >me I need more permissions. Just for clarification, here is the problem >code: > >ioctl(fd,TIOCMGET,&status); >status &= ~TIOCM_RTS; >ioctl(fd, TIOCMSET, &status); // returns -EPERM > >Apart from having a privileged (administrator) windows account, should I >understand (from http://cygwin.com/cygwin-ug-net/ntsec.html) that all >cygwin asks for is that I should get things right in /etc/passwd and >/etc/group? > >Please take a look at what I've tried so far: > >in /etc/passwd: > > (original) >jorge:*:1008:513:Jorge,U-QUICKSILVER\jorge,S-1-5-21-1450639292-781126914-3756273746-1008:/home/jorge:/bin/bash > (1st try) >jorge:*:1008:544:Jorge,U-QUICKSILVER\jorge,S-1-5-21-1450639292-781126914-3756273746-1008:/home/jorge:/bin/bash > (2nd try) >jorge:*:100:0:Jorge,U-QUICKSILVER\jorge,S-1-5-21-1450639292-781126914-3756273746-1008:/home/jorge:/bin/bash > (3rd try) >jorge:*:0:0:Jorge,U-QUICKSILVER\jorge,S-1-5-21-1450639292-781126914-3756273746-1008:/home/jorge:/bin/bash > >in /etc/group (for the 2nd and 3rd tries above, I added the following line): > root:S-1-5-32-544:0: > >Finally, I even tried running the program from a "SYSTEM-owned shell", to >no avail. > >Thanks in advance for any pointers. Cheers,
There is never a case where Cygwin sets errno which implies that you need "root privileges". You may need more privileges in the Windows sense but you don't need to specify root in your /etc/passwd to get the job done. Cygwin maps to EPERM from two different Windows errors: ERROR_CANNOT_MAKE and ERROR_NOT_OWNER. I don't know which of these is causing your problems but maybe that will give you a clue about what is going wrong. And, as a last resort, there's always the option of looking at the Cygwin source code. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/