Root-Benutzeraktionsbeschränkungen mit Sticky Bit

Root-Benutzeraktionsbeschränkungen mit Sticky Bit

Ich habe eine Ubuntu 20.04.x-Instanz auf AWS, die ein sehr unerwartetes Verhalten zeigte.

Ich habe eine Datei in /tmp:

root@ip-10-0-1-145:/tmp# ls -l api_requests_2023-08-23.log
-rw-r--r-- 1 www-data www-data 47450 Aug 23 19:04 api_requests_2023-08-23.log

Ich habe versucht, es abzukürzen, als rootwelches FAILED!!!

root@ip-10-0-1-145:/tmp# truncate -s 0 api_requests_2023-08-23.log
truncate: cannot open 'api_requests_2023-08-23.log' for writing: Permission denied

Ich habe mit strace versucht, die Fehlerursache zu ermitteln und erhielt folgendes Ergebnis:

root@ip-10-0-1-145:/tmp# strace -e trace=file truncate -s 0 api_requests_2023-08-23.log
execve("/usr/bin/truncate", ["truncate", "-s", "0", "api_requests_2023-08-23.log"], 0x7ffcaa0ab958 /* 16 vars */) = 0
...
openat(AT_FDCWD, "api_requests_2023-08-23.log", O_WRONLY|O_CREAT|O_NONBLOCK, 0666) = -1 EACCES (Permission denied)
...
truncate: cannot open 'api_requests_2023-08-23.log' for writing: Permission denied
...
+++ exited with 1 +++

Vorausgesetzt, bei Temp ist das Sticky-Bit wie üblich gesetzt:

root@ip-10-0-1-145:/tmp# ls -ld
drwxrwxrwt 4 root root 12288 Sep 12 09:11 .

Ich habe versucht, die Datei anhand ihres Besitzers zu kürzen:

root@ip-10-0-1-145:/tmp# sudo -u www-data truncate -s 0 api_requests_2023-08-23.log
root@ip-10-0-1-145:/tmp# ls -lh api_requests_2023-08-23.log
-rw-r--r-- 1 www-data www-data 0 Sep 12 09:13 api_requests_2023-08-23.log

Der truncate„As Owner“-Aufruf hat funktioniert!!! (es liegt also nicht an Problemen mit dem Dateisystem; das Dateisystem ist lokal, auf der Festplatte, ext4 und mit Standardeinstellungen gemountet).

Dieses Verhalten für Sticky Bits in Verzeichnissen istdefiniertals **'only owner or root'** für alle Operationen.

Wie wurde rootdas Öffnen der Datei zum Schreiben eingeschränkt (das Trucieren über >api_requests_2023-08-23.logschlug ebenfalls fehl)?

verwandte Informationen