diff options
author | Shirish Pargaonkar <shirishpargaonkar@gmail.com> | 2011-09-26 10:56:44 -0400 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2011-10-13 00:42:17 -0400 |
commit | 3d3ea8e64efbeb3e4289675dbbfab82333395642 (patch) | |
tree | 3f7c52039dceefeae2abf010a1a3ec8abef0c459 /fs/cifs/cifsglob.h | |
parent | 8bc4392a1e50f346e97f8777aaefd9cfc3d45c9f (diff) |
cifs: Add mount options for backup intent (try #6)
Add mount options backupuid and backugid.
It allows an authenticated user to access files with the intent to back them
up including their ACLs, who may not have access permission but has
"Backup files and directories user right" on them (by virtue of being part
of the built-in group Backup Operators.
When mount options backupuid is specified, cifs client restricts the
use of backup intents to the user whose effective user id is specified
along with the mount option.
When mount options backupgid is specified, cifs client restricts the
use of backup intents to the users whose effective user id belongs to the
group id specified along with the mount option.
If an authenticated user is not part of the built-in group Backup Operators
at the server, access to such files is denied, even if allowed by the client.
Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs/cifsglob.h')
-rw-r--r-- | fs/cifs/cifsglob.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index d734dee9d495..9551437a2498 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h | |||
@@ -167,6 +167,8 @@ struct smb_vol { | |||
167 | uid_t cred_uid; | 167 | uid_t cred_uid; |
168 | uid_t linux_uid; | 168 | uid_t linux_uid; |
169 | gid_t linux_gid; | 169 | gid_t linux_gid; |
170 | uid_t backupuid; | ||
171 | gid_t backupgid; | ||
170 | mode_t file_mode; | 172 | mode_t file_mode; |
171 | mode_t dir_mode; | 173 | mode_t dir_mode; |
172 | unsigned secFlg; | 174 | unsigned secFlg; |
@@ -179,6 +181,8 @@ struct smb_vol { | |||
179 | bool noperm:1; | 181 | bool noperm:1; |
180 | bool no_psx_acl:1; /* set if posix acl support should be disabled */ | 182 | bool no_psx_acl:1; /* set if posix acl support should be disabled */ |
181 | bool cifs_acl:1; | 183 | bool cifs_acl:1; |
184 | bool backupuid_specified; /* mount option backupuid is specified */ | ||
185 | bool backupgid_specified; /* mount option backupgid is specified */ | ||
182 | bool no_xattr:1; /* set if xattr (EA) support should be disabled*/ | 186 | bool no_xattr:1; /* set if xattr (EA) support should be disabled*/ |
183 | bool server_ino:1; /* use inode numbers from server ie UniqueId */ | 187 | bool server_ino:1; /* use inode numbers from server ie UniqueId */ |
184 | bool direct_io:1; | 188 | bool direct_io:1; |
@@ -219,7 +223,8 @@ struct smb_vol { | |||
219 | CIFS_MOUNT_OVERR_GID | CIFS_MOUNT_DYNPERM | \ | 223 | CIFS_MOUNT_OVERR_GID | CIFS_MOUNT_DYNPERM | \ |
220 | CIFS_MOUNT_NOPOSIXBRL | CIFS_MOUNT_NOSSYNC | \ | 224 | CIFS_MOUNT_NOPOSIXBRL | CIFS_MOUNT_NOSSYNC | \ |
221 | CIFS_MOUNT_FSCACHE | CIFS_MOUNT_MF_SYMLINKS | \ | 225 | CIFS_MOUNT_FSCACHE | CIFS_MOUNT_MF_SYMLINKS | \ |
222 | CIFS_MOUNT_MULTIUSER | CIFS_MOUNT_STRICT_IO) | 226 | CIFS_MOUNT_MULTIUSER | CIFS_MOUNT_STRICT_IO | \ |
227 | CIFS_MOUNT_CIFS_BACKUPUID | CIFS_MOUNT_CIFS_BACKUPGID) | ||
223 | 228 | ||
224 | #define CIFS_MS_MASK (MS_RDONLY | MS_MANDLOCK | MS_NOEXEC | MS_NOSUID | \ | 229 | #define CIFS_MS_MASK (MS_RDONLY | MS_MANDLOCK | MS_NOEXEC | MS_NOSUID | \ |
225 | MS_NODEV | MS_SYNCHRONOUS) | 230 | MS_NODEV | MS_SYNCHRONOUS) |