That's what I get for digging up a man page. I misread the mode requirement as calling for open(3) vs using the status flags in open(2). It did seem unlikely that it would be working so universally if that were the case.

To Aaron's original question to get permissions other than 600: changing the flags in recording.c and recompiling guacd should give you whatever permissions you're looking for. Alternatively, Docker on Windows is much more generous with default permissions, at least in a shared volume mounted inside the container.


Sent from my Android phone using TouchDown (

-----Original Message-----
From: Mike Jumper []
Received: Tuesday, 16 Jan 2018, 12:02AM
To: []
Subject: Re: Permissions on screen capture recordings

On Mon, Jan 15, 2018 at 11:59 AM, Ryan Underwood <> wrote:

Aaron and Mike,

This may be an issue in the source for recording.c (line 83 and again for the naming retries):


    /* Attempt to open recording */

    int fd = open(basename, O_CREAT | O_EXCL | O_WRONLY, S_IRUSR | S_IWUSR);


man(2) for open states that if you use O_CREAT you must supply the mode parameter which will set the permissions. However, the fd that is returned may still work as a r/wso the program functions but the permissions may not be correct. For reference: Perhaps this should be changed to open(3) with the intended mode_t supplied. I hesitate to even suggest this because I would have expected it to be a problem for more people if its actually the case.

The mode is specified there, actually. Things probably blur together a bit, but there are indeed three parameters there. That last parameter, S_IRUSR | S_IWUSR, is the symbolic way to represent mode 0600.

Using docker on windows they get created as rwxr-xr-x but that is a docker/windows concern (I think) so Im unable to reproduce this behavior.

My suspicion is that Windows is ignoring the specified value, that the underlying filesystem doesn't support UNIX-style file permissions, or that something else at the system level is overriding things back to 0755.

- Mike