Changeset 140 for branches/samba-3.0/source/smbd/posix_acls.c
- Timestamp:
- Jul 11, 2008, 1:13:42 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.0/source/smbd/posix_acls.c
r124 r140 2290 2290 2291 2291 /**************************************************************************** 2292 Should we override a deny ? Check deprecated 'acl group control' 2293 and 'dos filemode' 2294 ****************************************************************************/ 2295 2296 static BOOL acl_group_override(connection_struct *conn, gid_t prim_gid) 2297 { 2298 if ( (errno == EACCES || errno == EPERM) 2299 && (lp_acl_group_control(SNUM(conn)) || lp_dos_filemode(SNUM(conn))) 2300 && current_user_in_group(prim_gid)) 2301 { 2292 Should we override a deny ? Check 'acl group control' and 'dos filemode' 2293 ****************************************************************************/ 2294 2295 static BOOL acl_group_override(connection_struct *conn, gid_t prim_gid, const char *fname) 2296 { 2297 SMB_STRUCT_STAT sbuf; 2298 2299 if ((errno != EPERM) && (errno != EACCES)) { 2300 return False; 2301 } 2302 2303 /* file primary group == user primary or supplementary group */ 2304 if (lp_acl_group_control(SNUM(conn)) && current_user_in_group(prim_gid)) { 2302 2305 return True; 2303 } 2306 } 2307 2308 /* user has writeable permission */ 2309 if (lp_dos_filemode(SNUM(conn)) && can_write_to_file(conn, fname, &sbuf)) { 2310 return True; 2311 } 2304 2312 2305 2313 return False; … … 2489 2497 } 2490 2498 2491 if (acl_group_override(conn, prim_gid )) {2499 if (acl_group_override(conn, prim_gid, fsp->fsp_name)) { 2492 2500 int sret; 2493 2501 … … 2520 2528 } 2521 2529 2522 if (acl_group_override(conn, prim_gid )) {2530 if (acl_group_override(conn, prim_gid, fsp->fsp_name)) { 2523 2531 int sret; 2524 2532 … … 3478 3486 int sret = -1; 3479 3487 3480 if (acl_group_override(conn, sbuf.st_gid )) {3488 if (acl_group_override(conn, sbuf.st_gid, fsp->fsp_name)) { 3481 3489 DEBUG(5,("set_nt_acl: acl group control on and " 3482 3490 "current user in file %s primary group. Override delete_def_acl\n", … … 3525 3533 if(SMB_VFS_CHMOD(conn,fsp->fsp_name, posix_perms) == -1) { 3526 3534 int sret = -1; 3527 if (acl_group_override(conn, sbuf.st_gid )) {3535 if (acl_group_override(conn, sbuf.st_gid, fsp->fsp_name)) { 3528 3536 DEBUG(5,("set_nt_acl: acl group control on and " 3529 3537 "current user in file %s primary group. Override chmod\n",
Note:
See TracChangeset
for help on using the changeset viewer.