kernelnewbies.kernelnewbies.org archive mirror
 help / color / mirror / Atom feed
From: Nicky Chorley <ndchorley@gmail.com>
To: kernelnewbies@kernelnewbies.org
Subject: Setting group/other write flags not honoured in open
Date: Sat, 31 Oct 2020 15:05:07 +0000	[thread overview]
Message-ID: <87y2jmwi58.fsf@gmail.com> (raw)

Hi folks,

I hope it's OK to ask this question here. I'm reading The Linux
Programming Interface and am beginning to get to grips with the file
oriented system calls.

I have a program that calls open to create a file, specifying the mode
flags for owner, group, other read and write. The file is created
sucessfully, but when I look at its permissions, I only see the read
perms set for group and others:

> ./create_file foo
> ls -l foo
-rw-r--r-- 1 nick users 0 Oct 31 14:52 foo

Why would that be? The entirety of my program is

#include <fcntl.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
  int open_flags = O_CREAT | O_WRONLY | O_TRUNC;
  mode_t file_perms =
    S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;

  int output_fd = open(argv[1], open_flags, file_perms);

  close(output_fd);
}

I also ran the program with strace and the perms in the openat call are
as I would expect:

openat(AT_FDCWD, "foo", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3

I don't understand why the group and other write flags aren't being
set. Could someone help shed some light on this please?

I'm not sure what factors influence this, but I'm running openSUSE Leap
15.2, with kernel 5.3.18-lp152.47-default, gcc 7.5.0 and glibc 2.26.

Thanks,

Nicky

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

             reply	other threads:[~2020-10-31 15:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-31 15:05 Nicky Chorley [this message]
2020-10-31 16:36 ` Setting group/other write flags not honoured in open Marcelo Diop-Gonzalez
2021-01-08 15:09   ` Nicky Chorley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y2jmwi58.fsf@gmail.com \
    --to=ndchorley@gmail.com \
    --cc=kernelnewbies@kernelnewbies.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).