diff options
-rw-r--r-- | source3/include/smb.h | 1 | ||||
-rw-r--r-- | source3/param/loadparm.c | 3 | ||||
-rw-r--r-- | source3/smbd/dosmode.c | 13 |
3 files changed, 3 insertions, 14 deletions
diff --git a/source3/include/smb.h b/source3/include/smb.h index 0a49b72a27..00c5464251 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -865,6 +865,7 @@ struct bitmap { #define FLAG_HIDE 2 /* options that should be hidden in SWAT */ #define FLAG_PRINT 4 /* printing options */ #define FLAG_GLOBAL 8 /* local options that should be globally settable in SWAT */ +#define FLAG_DEPRECATED 16 /* options that should no longer be used */ #ifndef LOCKING_VERSION #define LOCKING_VERSION 4 diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index c2f7837aa8..6056187066 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -496,7 +496,7 @@ static struct parm_struct parm_table[] = {"password level", P_INTEGER, P_GLOBAL, &Globals.pwordlevel, NULL, NULL, 0}, {"username level", P_INTEGER, P_GLOBAL, &Globals.unamelevel, NULL, NULL, 0}, {"unix password sync", P_BOOL, P_GLOBAL, &Globals.bUnixPasswdSync, NULL, NULL, 0}, - {"alternate permissions",P_BOOL,P_LOCAL, &sDefault.bAlternatePerm, NULL, NULL, FLAG_GLOBAL}, + {"alternate permissions",P_BOOL,P_LOCAL, &sDefault.bAlternatePerm, NULL, NULL, FLAG_GLOBAL|FLAG_DEPRECATED}, {"revalidate", P_BOOL, P_LOCAL, &sDefault.bRevalidate, NULL, NULL, FLAG_GLOBAL}, {"username", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, FLAG_GLOBAL}, {"user", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, 0}, @@ -1205,7 +1205,6 @@ FN_LOCAL_STRING(lp_hide_files,szHideFiles) FN_LOCAL_STRING(lp_veto_oplocks,szVetoOplockFiles) FN_LOCAL_STRING(lp_driverlocation,szPrinterDriverLocation) -FN_LOCAL_BOOL(lp_alternate_permissions,bAlternatePerm) FN_LOCAL_BOOL(lp_revalidate,bRevalidate) FN_LOCAL_BOOL(lp_casesensitive,bCaseSensitive) FN_LOCAL_BOOL(lp_preservecase,bCasePreserve) diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c index 9db3e208b5..da7fdfb973 100644 --- a/source3/smbd/dosmode.c +++ b/source3/smbd/dosmode.c @@ -78,22 +78,11 @@ mode_t unix_mode(connection_struct *conn,int dosmode) int dos_mode(connection_struct *conn,char *path,struct stat *sbuf) { int result = 0; - extern struct current_user current_user; DEBUG(8,("dos_mode: %s\n", path)); - if (CAN_WRITE(conn) && !lp_alternate_permissions(SNUM(conn))) { - if (!((sbuf->st_mode & S_IWOTH) || - conn->admin_user || - ((sbuf->st_mode & S_IWUSR) && current_user.uid==sbuf->st_uid) || - ((sbuf->st_mode & S_IWGRP) && - in_group(sbuf->st_gid,current_user.gid, - current_user.ngroups,current_user.groups)))) - result |= aRONLY; - } else { - if ((sbuf->st_mode & S_IWUSR) == 0) + if ((sbuf->st_mode & S_IWUSR) == 0) result |= aRONLY; - } if (MAP_ARCHIVE(conn) && ((sbuf->st_mode & S_IXUSR) != 0)) result |= aARCH; |