GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich eine Datei ohne sudo in eine Subuid chownen?

Subuids sollen nicht so funktionieren, wie Sie es erwarten. Sie wurden entwickelt, um UIDs in einem Benutzernamensraum verschiedenen UIDs außerhalb dieses Namensraums zuzuordnen, was für Container praktisch ist (und tatsächlich entworfen wurde).

Ein Prozess kann jedoch immer noch nur einen UID-Satz (Benutzernamensraum) haben, und Benutzern ist es aus offensichtlichen Sicherheitsgründen nicht gestattet, den Besitz von Dateien zu ändern. Für den Prozess selbst spielt es keine Rolle, ob der Benutzer tatsächlich jemand anderes außerhalb des Namensraums ist.

Deshalb der chown Befehl schlägt fehl:Es spielt keine Rolle, ob Sie könnten eine andere UID haben, sollte der Namensraum anders sein , zu diesem Zeitpunkt haben Sie diese UID nicht und können daher den Eigentümer von Dateien nicht ändern (da Sie nicht root sind).

Warum können Sie die Datei entfernen:Es hat eigentlich nichts mit Subuids zu tun, sondern es hängt alles davon ab, dass Sie Eigentümer des Verzeichnisses sind, in dem sich die Datei befindet. Da das Löschen von Dateien das Verzeichnis und nicht die Datei selbst ändert, if Sie können das Verzeichnis schreiben, Sie können alle Dateien daraus entfernen (außer "Sticky"-Verzeichnissen).


Es gibt ein Programm lxc-usernsexec das kommt zusammen mit lxc . Dadurch können Sie Benutzer-IDs mithilfe der Zuordnungen /etc/subuid neu zuordnen und /etc/subgid .

Insbesondere können Sie Folgendes tun.

  1. lxc-usernsexec -- touch /tmp/test
  2. ls -l /tmp/test wird zeigen, dass die Datei Eigentümer:Gruppe ist, das gleiche wie das erste subuid:subgid-Paar in Ihrer Karte.
  3. rm /tmp/test sollte einen Fehler ausgeben, da Sie derzeit nicht die richtige uid/gid haben.
  4. lxc-usernsexec -- rm /tmp/test sollte die Datei entfernen.

Hoffe das hilft! Das obige erfordert wahrscheinlich verschiedene Dinge, die für die Verwendung von nicht privilegierten LXC-Containern eingerichtet wurden. Insbesondere denke ich an /proc/sys/kernel/unprivileged_userns_clone sollte 1 sein.


Dein Problem hat nichts mit subuid zu tun.

Gemäß https://superuser.com/questions/697608/chown-operation-not-permitted

Nicht-privilegierte Benutzer (nicht root) können keine Dateien auf andere Benutzernamen übertragen. Um chown zu verwenden, muss ein Benutzer die Privilegien des Zielbenutzers haben. Mit anderen Worten, nur root kann eine Datei an einen anderen Benutzer weitergeben.


Linux
  1. Linux chmod und chown – So ändern Sie Dateiberechtigungen und Eigentumsrechte in Linux

  2. So wissen Sie, ob ein Benutzer Sudo-Rechte hat

  3. Wie kann ich eine Datei unter Linux symbolisch verknüpfen?

  4. Wie kann ich als sudo an eine Datei anhängen?

  5. Wie kann ein Dateimanager ein Laufwerk ohne Root mounten?

So fügen Sie Benutzer zu Sudoers in Debian hinzu

So ändern Sie den Datei-/Gruppenbesitzer mit dem Befehl chown in Linux

So führen Sie den Sudo-Befehl ohne Passwort aus

Wie stellt der Dateimanager ein externes Laufwerk ohne Sudo bereit?

So führen Sie Sudo-Befehle ohne Passwort aus

So führen Sie sudo-Befehle ohne Passwort aus