Hi, If a filesystem is mounted with noacl, calling chmod to add write permissions after umasking this permission doesn't work. Demonstrated with command-line and C++.
Did I miss something or is this a real bug? According to umask man, it should only affect newly created files and directories, but I didn't find anything that relates to chmod. Command-line: touch foo ls -l foo # -rw-r--r-- ... foo umask 200 chmod 0 foo ls -l foo # -r--r--r-- ... foo chmod 200 foo ls -l foo # -r--r--r-- ... foo # Expected to have rw C++: #include <unistd.h> #include <sys/stat.h> #include <stdlib.h> #include <fcntl.h> #include <iostream> const char fileName[] = "foo"; const int mask = S_IWRITE; void get() { struct stat st; stat(fileName, &st); std::cout << (st.st_mode) << std::endl; } void set(int mode) { chmod(fileName, mode); } int main() { std::cout << std::oct; std::cout << "mask: " << mask << std::endl; close(open(fileName, O_WRONLY | O_CREAT)); get(); umask(mask); set(0); get(); set(mask); get(); } Output without noacl: mask: 200 100644 100444 100644 Output with noacl: mask: 200 100644 100444 100444 Thanks, - Orgad -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple