ladybird/Kernel/FileSystem
Liav A b40b1c8d93 Kernel+Userland: Ensure proper unveil permissions before using rm/rmdir
When deleting a directory, the rmdir syscall should fail if the path was
unveiled without the 'c' permission. This matches the same behavior that
OpenBSD enforces when doing this kind of operation.

When deleting a file, the unlink syscall should fail if the path was
unveiled without the 'w' permission, to ensure that userspace is aware
of the possibility of removing a file only when the path was unveiled as
writable.

When using the userdel utility, we now unveil that directory path with
the unveil 'c' permission so removal of an account home directory is
done properly.
2023-06-02 17:53:55 +02:00
..
DevPtsFS Kernel: Use UnixDateTime wherever applicable 2023-05-24 23:18:07 +02:00
Ext2FS Kernel: Make Ext2FSInode::traverse_as_directory to take m_inode_lock 2023-05-27 10:58:58 +02:00
FATFS Kernel: Stop using *LockRefPtr for FileSystem pointers 2023-04-04 10:33:42 +02:00
ISO9660FS AK+Everywhere: Don't crash on invalid months 2023-05-27 12:17:50 +02:00
Plan9FS Kernel: Stop using *LockRefPtr for Thread 2023-04-04 10:33:42 +02:00
ProcFS Kernel: Don't lock ProcFS mutex when calling traverse_as_directory 2023-05-27 10:58:58 +02:00
RAMFS Kernel: Use UnixDateTime wherever applicable 2023-05-24 23:18:07 +02:00
SysFS Kernel: Move the Storage directory to be a new directory under Devices 2023-06-02 11:04:37 +02:00
AnonymousFile.cpp Kernel: Simplify the File memory-mapping API 2022-08-24 14:57:51 +02:00
AnonymousFile.h Kernel: Use RefPtr instead of LockRefPtr for File and subclasses 2023-03-10 13:15:44 +01:00
BlockBasedFileSystem.cpp Kernel: Promote the entry to the front during a cache hit 2023-05-06 08:00:55 +02:00
BlockBasedFileSystem.h Kernel: Remove declarations for non-existent methods 2023-01-27 20:33:18 +00:00
Custody.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Custody.h Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
DeviceFileTypes.h Everywhere: Prefix 'TYPEDEF_DISTINCT_ORDERED_ID' with 'AK_' 2022-07-22 23:09:43 +01:00
FIFO.cpp Kernel: Remove FIFO::{attach,detach}(Direction) 2023-05-15 07:00:29 +02:00
FIFO.h Kernel: Remove FIFO::{attach,detach}(Direction) 2023-05-15 07:00:29 +02:00
File.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
File.h Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
FileBackedFileSystem.cpp Kernel: Introduce support for using FileSystem object in multiple mounts 2022-10-22 16:57:52 -04:00
FileBackedFileSystem.h Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
FileSystem.cpp Kernel/FileSystem: Discard safely filesystems when unmounted last time 2022-10-22 16:57:52 -04:00
FileSystem.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Inode.cpp Kernel: Use UnixDateTime wherever applicable 2023-05-24 23:18:07 +02:00
Inode.h Kernel: Use UnixDateTime wherever applicable 2023-05-24 23:18:07 +02:00
InodeFile.cpp Kernel: Switch LockRefPtr<Inode> to RefPtr<Inode> 2023-03-09 21:54:59 +01:00
InodeFile.h Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
InodeIdentifier.h Kernel: Remove declarations for non-existent methods 2023-01-27 20:33:18 +00:00
InodeMetadata.cpp Kernel: Use real UID/GID when checking for file access 2022-12-11 19:55:37 -07:00
InodeMetadata.h Kernel: Use UnixDateTime wherever applicable 2023-05-24 23:18:07 +02:00
InodeWatcher.cpp Kernel: Protect internal structures in InodeWatcher with spinlocks 2023-04-22 07:16:41 +02:00
InodeWatcher.h Kernel: Protect internal structures in InodeWatcher with spinlocks 2023-04-22 07:16:41 +02:00
Mount.cpp Kernel: Simplify Mount internals 2023-04-04 10:33:42 +02:00
Mount.h Kernel: Simplify Mount internals 2023-04-04 10:33:42 +02:00
OpenFileDescription.cpp Kernel: Remove FIFO::{attach,detach}(Direction) 2023-05-15 07:00:29 +02:00
OpenFileDescription.h Kernel: Remove unused functions related to reading full inodes 2023-04-17 01:20:23 +02:00
UnveilNode.h AK+Kernel: Specialize Trie for NNOP<KString> and use it in UnveilNode 2022-02-16 22:21:37 +01:00
VirtualFileSystem.cpp Kernel+Userland: Ensure proper unveil permissions before using rm/rmdir 2023-06-02 17:53:55 +02:00
VirtualFileSystem.h Kernel: Add the futimens syscall 2023-04-10 10:21:28 +02:00