diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2021-11-04 23:48:45 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2021-11-04 23:54:06 +0300 |
commit | 0390cc85727b0165b5cdfcff7578cac94ae3371d (patch) | |
tree | c2c382816cf8db41620a94148303cc100270fbe5 | |
parent | bd4eaebb6fa065caa4b94967c4cae7588963070e (diff) |
Cygwin: fix permission problem when writing DAC info on Samba shares
Cygwin always requests FILE_WRITE_ATTRIBUTES permissions when trying to
change DAC information. This can lead to permission problems when
trying to chmod/chown files on Samba shares. Drop requesting
FILE_WRITE_ATTRIBUTES on Samba shares and go with WRITE_DAC/WRITE_OWNER
only.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r-- | winsup/cygwin/fhandler.cc | 6 | ||||
-rw-r--r-- | winsup/cygwin/release/3.3.2 | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 36862c712..2a07e6cf9 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -561,10 +561,12 @@ fhandler_base::open (int flags, mode_t mode) access = READ_CONTROL | FILE_READ_ATTRIBUTES; break; case query_write_control: - access = READ_CONTROL | WRITE_OWNER | WRITE_DAC | FILE_WRITE_ATTRIBUTES; + access = READ_CONTROL | WRITE_OWNER | WRITE_DAC + | (pc.fs_is_samba () ? 0 : FILE_WRITE_ATTRIBUTES); break; case query_write_dac: - access = READ_CONTROL | WRITE_DAC | FILE_WRITE_ATTRIBUTES; + access = READ_CONTROL | WRITE_DAC + | (pc.fs_is_samba () ? 0 : FILE_WRITE_ATTRIBUTES); break; case query_write_attributes: access = READ_CONTROL | FILE_WRITE_ATTRIBUTES; diff --git a/winsup/cygwin/release/3.3.2 b/winsup/cygwin/release/3.3.2 index 548c6a690..263c3efe6 100644 --- a/winsup/cygwin/release/3.3.2 +++ b/winsup/cygwin/release/3.3.2 @@ -6,3 +6,5 @@ Bug Fixes - Fix a float rounding issue in newlib. Addresses: https://sourceware.org/pipermail/newlib/2021/018626.html + +- Fix a permission problem when writing ACLs on Samba. |