Opening /dev/stdout in Docker

Alan DeKok aland at deployingradius.com
Thu Aug 4 13:34:04 UTC 2022


On Aug 4, 2022, at 4:14 AM, Benjamin Thompson <b.thompson at hydra-billing.com> wrote:
> I am running v3.2.0 in a Docker container and I wanted to do some logging
> with linelog so I set the filename parameter to "/dev/stdout".
> 
> This gave me the error:
> 
> Error: rlm_linelog: Failed to open /dev/stdout: Permission denied

  Yeah, that's a little weird.

> However this did not help so I looked at the source code and noticed that
> FreeRADIUS is opening the file with read/write permissions whereas only
> write is available:
> 
> https://github.com/FreeRADIUS/freeradius-server/blob/v3.2.x/src/main/exfile.c#L161
> 
> if (strncmp(filename, "/dev/", 5) == 0) {
>         fd = open(filename, O_RDWR, permissions);

  It's possible to add some checks there for permissions, and modify O_RDWR for that.  I've pushed a fix.

  See commit 1abf810524 on GitHub.  You should be able to add that to 3.2.0 without any issues.

> So then I ran:
> 
> chmod g+r /dev/pts/0
> 
> After this linelog was able to log to stdout.
> 
> However with "tty: true" I am now getting some extra control characters in
> my logs such as "'#033#015". This is inconvenient but non critical.

  Weird.

> I would be grateful if anyone could advise or assist with a better solution.

  See above.

  Alan DeKok.



More information about the Freeradius-Users mailing list