Support acl(2) method for reading pty ACLs, fix pty chown
* fhandler.h (fhandler_pty_slave::facl): Add prototype. * fhandler_tty.cc (fhandler_pty_slave::facl): New method. (fhandler_pty_slave::fchown): Fix uid/gid handling. * sec_acl.cc (set_posix_access): Drop superfluous class_idx variable. Simplify and move around code in a few places. To improve ACL readability, add r/w permissions to Admins ACE appended to pty ACL. Add comment to explain Windows ACE Mask filtering being in the way of creating a real CLASS_OBJ. (get_posix_access): Fake CLASS_OBJ for ptys. Explain why. * security.cc (get_object_attribute): Add S_IFCHR flag to attributes when calling get_posix_access. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
@ -401,11 +401,16 @@ get_object_attribute (HANDLE handle, uid_t *uidret, gid_t *gidret,
|
||||
mode_t *attribute)
|
||||
{
|
||||
security_descriptor sd;
|
||||
mode_t attr = S_IFCHR;
|
||||
|
||||
if (get_object_sd (handle, sd))
|
||||
return -1;
|
||||
return get_posix_access (sd, attribute, uidret, gidret, NULL, 0) >= 0
|
||||
? 0 : -1;
|
||||
if (attribute)
|
||||
*attribute |= S_IFCHR;
|
||||
else
|
||||
attribute = &attr;
|
||||
return get_posix_access (sd, attribute, uidret, gidret, NULL, 0)
|
||||
>= 0 ? 0 : -1;
|
||||
}
|
||||
|
||||
int
|
||||
|
Reference in New Issue
Block a user