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 authored and Linus Groh committed 2023-01-24 20:13:30 +00:00
1 parent 798154fbbc
commit 8cfd445c23
1 file changed
+2 -2
+2 -2
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;
}