permissions
void SetPermissions(uint32 permissions);
BPackageEntry::SetPermissions(uint32 permissions)
fMode = (fMode & ~(uint32)ALLPERMS) | (permissions & ALLPERMS);
void SetPermissions(uint32 permissions);
BPackageEntry::SetPermissions(uint32 permissions)
fMode = (fMode & ~(uint32)ALLPERMS) | (permissions & ALLPERMS);
status_t GetPermissions(mode_t* permissions) const;
status_t SetPermissions(mode_t permissions);
int shm_open(const char* name, int openMode, mode_t permissions);
mode_t permissions = 0);
virtual status_t CreateFile(const char *name, mode_t permissions,
int permissions = 0;
permissions = userPermissions | groupPermissions | otherPermissions | S_IROTH | S_IWOTH;
permissions |= S_IXOTH;
permissions = userPermissions;
permissions = otherPermissions;
return (accessMode & ~permissions) == 0 ? B_OK : B_PERMISSION_DENIED;
fPermissions |= permissions.fPermissions;
Permissions::Implies(uint32 permissions) const
return ((fPermissions & permissions) == permissions);
inline Permissions(uint32 permissions);
inline Permissions& AddPermissions(uint32 permissions);
inline Permissions& AddPermissions(Permissions permissions);
inline bool Implies(uint32 permissions) const;
Permissions::Permissions(uint32 permissions)
: fPermissions(permissions)
Permissions::AddPermissions(uint32 permissions)
fPermissions |= permissions;
Permissions::AddPermissions(Permissions permissions)
*permissions |= kQueryPermission;
uint32 permissions = 0;
roster.GetUserPermissions(share, user, &permissions);
get_permissions_string(permissions, permissionsString);
set_user_permissions(const char* user, const char* share, uint32 permissions)
status_t error = roster.SetUserPermissions(share, user, permissions);
uint32 permissions = 0;
permissions |= perms;
set_user_permissions(user, share, permissions);
get_permissions_string(uint32 permissions, char* str)
str[0] = (permissions & kMountPermission ? 'm' : '-');
str[1] = (permissions & kReadPermission ? 'r' : '-');
str[2] = (permissions & kWritePermission ? 'w' : '-');
str[3] = (permissions & kQueryPermission ? 'q' : '-');
get_permissions(const char* str, uint32* permissions)
*permissions = 0;
*permissions |= kMountPermission;
*permissions |= kReadPermission;
*permissions |= kWritePermission;
uint32 permissions)
|| request.AddInt32("permissions", (int32)permissions)) {
uint32* permissions)
|| !permissions) {
if (reply.FindInt32("permissions", (int32*)permissions) != B_OK)
const char* user, uint32 permissions);
const char* user, uint32* permissions);
Permissions permissions)
bool unmountAll = (!permissions.ImpliesMountSharePermission());
Permissions permissions = volume->GetNodePermissions(node);
if (!permissions.ImpliesReadPermission())
else if (!permissions.ImpliesWritePermission())
if (!permissions.ImpliesReadPermission())
if (!permissions.ImpliesWritePermission())
User* user, Permissions permissions);
Permissions permissions = fSecurityContext
if (permissions.ImpliesMountSharePermission()) {
uint32 permissions;
|| message->FindInt32("permissions", (int32*)&permissions)
if (permissions == 0) {
user, permissions);
permissions);
Permissions permissions = fSecurityContext->GetNodePermissions(
(int32)permissions.GetPermissions());
Permissions permissions;
permissions.AddPermissions(MOUNT_SHARE_PERMISSION);
permissions.AddPermissions(QUERY_SHARE_PERMISSION);
permissions.AddPermissions(READ_PERMISSION
permissions.AddPermissions(WRITE_PERMISSION
permissions.AddPermissions(ALL_PERMISSIONS);
permissions);
uint32 permissions;
error = userArchive.FindInt32(path, (int32*)&permissions);
error = SetNodePermissions(path, user, permissions);
Permissions permissions)
return fPermissions->Put(UserPath(path.GetString(), user), permissions);
Permissions permissions)
return fPermissions->Put(UserPath(path, user), permissions);
User* user, Permissions permissions);
User* user, Permissions permissions);
Permissions permissions)
return fPermissions->Put(NodeRef(volumeID, nodeID), permissions);
Permissions permissions);
permissions(), permissions()));
permissions(), permissions()));
uint32 permissions() const { return B_LENDIAN_TO_HOST_INT32(_permissions); }
void set_permissions(uint32 permissions) { _permissions = B_HOST_TO_LENDIAN_INT32(permissions); }
uint32 permissions() const { return B_LENDIAN_TO_HOST_INT32(_permissions); }
void set_permissions(uint32 permissions) { _permissions = B_HOST_TO_LENDIAN_INT32(permissions); }
mode_t permissions = 0;
permissions = va_arg(args, int);
return _haiku_build_openat(AT_FDCWD, path, openMode, permissions);
mode_t permissions = 0;
permissions = va_arg(args, int);
permissions &= ~mask;
RETURN_AND_SET_ERRNO(_kern_open(fd, path, openMode, permissions));
mode_t permissions = 0;
permissions = va_arg(args, int);
return _haiku_build_open(path, openMode, permissions);
mode_t permissions = 0;
permissions = va_arg(args, int);
return _haiku_build_openat(fd, path, openMode, permissions);
mode_t permissions;
error = node.GetPermissions(&permissions);
if ((permissions & S_IXUSR) != 0 && node.IsFile()) {
mode_t permissions;
if (entry.GetPermissions(&permissions) == B_OK)
eplf << "up" << BString().SetToFormat("%03o", permissions) << ",";
BStatable::GetPermissions(mode_t* permissions) const
status_t result = (permissions ? B_OK : B_BAD_VALUE);
*permissions = (stat.st_mode & S_IUMSK);
BStatable::SetPermissions(mode_t permissions)
stat.st_mode = permissions;
mode_t permissions;
error = entry.GetPermissions(&permissions);
error = entry.SetPermissions(permissions
Directory::CreateFile(const char* name, mode_t permissions, Node** _node)
virtual status_t CreateFile(const char *name, mode_t permissions,
mode_t permissions = 0;
permissions = va_arg(args, int) /*& ~__gUmask*/;
RETURN_AND_SET_ERRNO(open_from(gRoot, name, mode, permissions));
open_from(Directory *directory, const char *name, int mode, mode_t permissions)
error = directory->CreateFile(name, permissions, &node);
Directory::CreateFile(const char *name, mode_t permissions, Node **_node)
init_directory_vnode(struct devfs_vnode* vnode, int permissions)
vnode->stream.type = S_IFDIR | permissions;
int permissions = 0;
permissions = userPermissions | groupPermissions | otherPermissions
permissions |= S_IXOTH;
permissions = userPermissions;
permissions = groupPermissions;
permissions = otherPermissions;
return (accessMode & ~permissions) == 0 ? B_OK : B_PERMISSION_DENIED;
shm_open(const char* name, int openMode, mode_t permissions)
return open(path, openMode | O_CLOEXEC, permissions);
int openMode, int permissions, void** _cookie, ino_t* _newVnodeID)
status_t error = create_file(volume, directory, name, openMode, permissions,
int permissions = 0;
permissions = userPermissions | groupPermissions | otherPermissions
permissions = userPermissions;
permissions = groupPermissions;
permissions = otherPermissions;
return (accessFlags & ~permissions) == 0 ? B_OK : B_NOT_ALLOWED;
int openMode, int permissions, Transaction& transaction,
error = volume->CreateFile(permissions, transaction, newFile);
fssh_mode_t permissions = 0;
permissions = (permissions << 3) | (c - '0');
_permissions = permissions;
std::string permissions;
permissions += ((mode & FSSH_S_IRUSR) ? 'r' : '-');
permissions += ((mode & FSSH_S_IWUSR) ? 'w' : '-');
permissions += 's';
permissions += ((mode & FSSH_S_IXUSR) ? 'x' : '-');
permissions += ((mode & FSSH_S_IRGRP) ? 'r' : '-');
permissions += ((mode & FSSH_S_IWGRP) ? 'w' : '-');
permissions += 's';
permissions += ((mode & FSSH_S_IXGRP) ? 'x' : '-');
permissions += ((mode & FSSH_S_IROTH) ? 'r' : '-');
permissions += ((mode & FSSH_S_IWOTH) ? 'w' : '-');
permissions += ((mode & FSSH_S_IXOTH) ? 'x' : '-');
fileType, permissions.c_str(), (int)st.fssh_st_uid, (int)st.fssh_st_gid,
fssh_mode_t permissions;
if (argi + 1 >= argc || !get_permissions(argv[argi++], permissions)) {
st.fssh_st_mode = permissions;
int permissions = 0;
permissions = userPermissions | groupPermissions | otherPermissions
permissions |= FSSH_S_IXOTH;
permissions = userPermissions;
permissions = groupPermissions;
permissions = otherPermissions;
return (accessMode & ~permissions) == 0 ? FSSH_B_OK : FSSH_B_NOT_ALLOWED;