Kernel: Allow to remove files from sticky directory if user owns it

It's what the Linux chmod(1) manpage says (in the 'Restricted Deletion
Flag or Sticky Bit' section), and it just makes sense to me. :^)
This commit is contained in:
Karol Kosek 2022-09-01 14:16:32 +02:00 committed by Linus Groh
parent 798154fbbc
commit 8cfd445c23

View file

@ -645,7 +645,7 @@ ErrorOr<void> VirtualFileSystem::rename(Credentials const& credentials, Custody&
return EACCES;
if (old_parent_inode.metadata().is_sticky()) {
if (!credentials.is_superuser() && old_inode.metadata().uid != credentials.euid())
if (!credentials.is_superuser() && old_parent_inode.metadata().uid != credentials.euid() && old_inode.metadata().uid != credentials.euid())
return EACCES;
}
@ -807,7 +807,7 @@ ErrorOr<void> VirtualFileSystem::unlink(Credentials const& credentials, StringVi
return EACCES;
if (parent_inode.metadata().is_sticky()) {
if (!credentials.is_superuser() && inode.metadata().uid != credentials.euid())
if (!credentials.is_superuser() && parent_inode.metadata().uid != credentials.euid() && inode.metadata().uid != credentials.euid())
return EACCES;
}