Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
November 19, 2010 Why no setuid in linux.d? | ||||
---|---|---|---|---|
| ||||
Hi, I've written a programme that serves port 80, which usually requires root access. Therefore, after acquiring the socket I want to relinquish root by setting the uid to nonzero. I needed to add "int setuid(uid_t uid);" to linux.d and recompile Phobos in order to do so. I there a specific reason that setuid (and the related commands setgid, getuid, geteuid, getgid and getegid) is/are missing in the standard version of linux.d? Regards, Frank |
November 19, 2010 Re: Why no setuid in linux.d? | ||||
---|---|---|---|---|
| ||||
Posted in reply to 0ffh | On Fri, 19 Nov 2010 12:33:02 +0100, 0ffh wrote:
> Hi,
>
> I've written a programme that serves port 80, which usually requires
> root access. Therefore, after acquiring the socket I want to relinquish
> root by setting the uid to nonzero. I needed to add "int setuid(uid_t
> uid);" to linux.d and recompile Phobos in order to do so.
> I there a specific reason that setuid (and the related commands setgid,
> getuid, geteuid, getgid and getegid) is/are missing in the standard
> version of linux.d?
All the POSIX headers are in the core.sys.posix package. In your case, what you need is to import core.sys.posix.unistd.
-Lars
|
November 19, 2010 Re: Why no setuid in linux.d? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lars T. Kyllingstad | Lars T. Kyllingstad wrote:
> On Fri, 19 Nov 2010 12:33:02 +0100, 0ffh wrote:
>
>> Hi,
>> [...]
>> I there a specific reason that setuid (and the related commands setgid,
>> getuid, geteuid, getgid and getegid) is/are missing in the standard
>> version of linux.d?
>
> All the POSIX headers are in the core.sys.posix package. In your case, what you need is to import core.sys.posix.unistd.
>
> -Lars
Thanks Lars, but "import core.sys.posix.unistd;" gives me
"Error: module posix cannot read file 'core/sys/posix.d'".
I'm on D1 btw with no intention at all to switch to D2.
Regards, Frank
|
November 19, 2010 Re: Why no setuid in linux.d? | ||||
---|---|---|---|---|
| ||||
Posted in reply to 0ffh | On Fri, 19 Nov 2010 13:02:42 +0100, 0ffh wrote:
> Lars T. Kyllingstad wrote:
>> On Fri, 19 Nov 2010 12:33:02 +0100, 0ffh wrote:
>>
>>> Hi,
>>> [...]
>>> I there a specific reason that setuid (and the related commands
>>> setgid, getuid, geteuid, getgid and getegid) is/are missing in the
>>> standard version of linux.d?
>>
>> All the POSIX headers are in the core.sys.posix package. In your case, what you need is to import core.sys.posix.unistd.
>>
>> -Lars
>
> Thanks Lars, but "import core.sys.posix.unistd;" gives me "Error: module posix cannot read file 'core/sys/posix.d'".
>
> I'm on D1 btw with no intention at all to switch to D2.
Ah, then you can't use core.*. Sorry for the confusion.
-Lars
|
November 19, 2010 Re: Why no setuid in linux.d? | ||||
---|---|---|---|---|
| ||||
Posted in reply to 0ffh | On Fri, 19 Nov 2010 06:33:02 -0500, 0ffh <frank@youknow.what.todo.internetz> wrote: > > Hi, > > I've written a programme that serves port 80, which usually > requires root access. Therefore, after acquiring the socket > I want to relinquish root by setting the uid to nonzero. > I needed to add "int setuid(uid_t uid);" to linux.d and > recompile Phobos in order to do so. > I there a specific reason that setuid (and the related > commands setgid, getuid, geteuid, getgid and getegid) > is/are missing in the standard version of linux.d? > > Regards, Frank You are not required to modify phobos to prototype a C function, just do this: extern(C) int setuid(uid_t uid); to your file that calls the function, and you are good to go. As to why it was omitted, I'm unsure. -Steve |
November 19, 2010 Re: Why no setuid in linux.d? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | Steven Schveighoffer wrote: > [...] > You are not required to modify phobos to prototype a C function, just do this: > extern(C) int setuid(uid_t uid); > [...] Yeah I know, and you're right! It's just I felt that it belonged there... > As to why it was omitted, I'm unsure. So am I! =) -Frank |
Copyright © 1999-2021 by the D Language Foundation