mirror of
https://git.proxmox.com/git/pve-common
synced 2025-08-06 15:29:54 +00:00
tools: add fchownat syscall
and constant AT_EMPTY_PATH for chowning a directory/file opened via openat(2), for example when walking/creating a directory tree without following symlinks. Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
parent
6bd0783c11
commit
6cf6b40469
@ -14,6 +14,7 @@ BEGIN {
|
||||
mkdirat => &SYS_mkdirat,
|
||||
faccessat => &SYS_faccessat,
|
||||
setresuid => &SYS_setresuid,
|
||||
fchownat => &SYS_fchownat,
|
||||
);
|
||||
};
|
||||
|
||||
|
@ -85,6 +85,8 @@ use constant {CLONE_NEWNS => 0x00020000,
|
||||
use constant {O_PATH => 0x00200000,
|
||||
O_TMPFILE => 0x00410000}; # This includes O_DIRECTORY
|
||||
|
||||
use constant {AT_EMPTY_PATH => 0x1000};
|
||||
|
||||
sub run_with_timeout {
|
||||
my ($timeout, $code, @param) = @_;
|
||||
|
||||
@ -1556,6 +1558,11 @@ sub mkdirat($$$) {
|
||||
return syscall(PVE::Syscall::mkdirat, $dirfd, $name, $mode) == 0;
|
||||
}
|
||||
|
||||
sub fchownat($$$$$) {
|
||||
my ($dirfd, $pathname, $owner, $group, $flags) = @_;
|
||||
return syscall(PVE::Syscall::fchownat, $dirfd, $pathname, $owner, $group, $flags) == 0;
|
||||
}
|
||||
|
||||
my $salt_starter = time();
|
||||
|
||||
sub encrypt_pw {
|
||||
|
Loading…
Reference in New Issue
Block a user