Permission Enforcement Details
Permission enforcement varies based on the platform and StorNext configuration parameters.
File Permission Enforcement on Linux, Unix, and Mac OS Environments
When using the unixpermbits or legacy Security Model, Linux and Unix systems use the standard Posix permission bit model. When ACLs are enabled for all systems by using the acl Security Model or on Mac OS systems using the encorceAcls
file system configuration variable, these systems will first check whether the given file or directory contains an Access Control Entry (ACE) that applies to the user and operation being performed. If so, the ACE will be used to determine access. Otherwise, the Unix permission bits are used.
Note: While Unix permissions have only 3 bits (READ/WRITE/EXECUTE), the ACEs contained in an ACL may contain up to 14 bits. Not all of the ACE permission flags have meaning outside of Windows, but many do, depending on the file operation being performed. Table 1 describes how these flags are used for common file system operations on Linux, Unix, and Mac OS platforms.
File Permission Enforcement on Native StorNext Windows Clients and Windows SMB Clients Attached to a Windows SMB Server
When using the unixpermbits Security Model, Windows systems map Unix permission bits to Windows rights as shown in Table 2.
The ability to update permissions (which for ACLs would correspond to the Change Permissions right) is granted to the owner of the file or to the Domain Administrator. The ability to change file ownership (which for ACLS would correspond to the Take Ownership) is granted only to the Domain Administrator.
When ACLs are enabled, Windows systems use the ACL on a file or folder for determining access and the Unix permission bits are ignored.
ACL enforcement on Windows systems works as follows:
The ACL on each file/folder contains zero or more ACEs that specify how a user or group can access or not access the file or folder. Each ACE specifies a principal (in other words, a user or group), the type (ALLOW or DENY), permission flags and inheritance flags. Table 3 provides the possible permission flags in each ACE.
All file and folder access is determined by matching the accessing user and associated groups to the ACL of the object being accessed. The ACEs in the ACL are compared in order with the accessing user and groups for the requesting access mode. If a “deny ACE” matches, access is denied. If an “allow ACE” matches all requested access bits, access is allowed.
If a file or folder does not have an ACL, because, for example, it was created on a system that didn’t support them, then on the Windows client, StorNext will automatically synthesize one based on the parent folder. If the parent does not have an ACL, StorNext searches backward all the way to the root for an ACL to use. If the Security Model is set to legacy and Windows Security is disabled, then Windows clients will not perform a security check.
File Permission Enforcement on SMB Clients Using a Samba Server Running StorNext NAS
When using the unixpermbits or legacy Security Model, SMB clients use the standard Posix permission bit model. When ACLs are enabled, these systems check to see whether given file or directory contains an ACE that applies to the user and operation being performed. If so, the ACE will be used to determine access. Otherwise, the Unix permission bits are used.
Note: While this sounds similar to how file permissions are enforced for Linux, Unix, and Mac OS environment, there is a subtle difference.