I realised I never got back to this. Thanks Marcelo for that - I'll look into it.
Best, Nicky On Sat, 31 Oct 2020 at 16:36, Marcelo Diop-Gonzalez <[email protected]> wrote: > Hey, I think this is because the process's umask is changing the mode. In > fs/namei.c in the function lookup_open() there's this bit: > > .... > if (!IS_POSIXACL(dir->d_inode)) > mode &= ~current_umask(); > .... > > the open(2) and umask(2) manpages will explain how to deal with it > > -Marcelo > > > > On Sat, Oct 31, 2020 at 11:06 AM Nicky Chorley <[email protected]> > wrote: > >> 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 >> [email protected] >> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >> >
_______________________________________________ Kernelnewbies mailing list [email protected] https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
