Ist es möglich, den Besitz einer Datei ohne Root-Zugriff zu ändern?

21

Wenn ein Benutzer A die Datei file.txt besitzt, kann Benutzer A den Besitz der Datei in Benutzer B ohne Root-Zugriff ändern? Wenn ich als Benutzer A eine Datei chown B file.txt ausführe, erhalte ich den Fehler Operation not allowed. Mir scheint, da Benutzer A die Datei besitzt, sollte er in der Lage sein, den Eigentümer zu ändern, aber ich sehe keine Möglichkeit, dies zu tun. Danke für die Hilfe!

Daniel
quelle
4
Sie könnten belastende Daten in eine Datei einfügen und deren Eigentümer ändern, um jemanden einzurahmen :) Ich denke, das ist ein Argument gegen das Zulassen dessen, was Sie vorschlagen.
Roadmr
1
Kleine Ergänzung: AFAIU Sie können die Eigentümergruppe einer Datei ändern , dass Sie besitzen, vorausgesetzt , dass Sie ein Mitglied der Gruppe Sie ändern zu .
Matthijs Kooijman

Antworten:

7

Wenn der Benutzer A Eigentümer ist file.txt, kann er den Eigentümer von nicht file.txtohne root-Zugriff / sudo-Berechtigung ändern . Dies ist eine Funktion und kein Fehler. Und einer der vielen Gründe, warum sich die Ältesten für diese Funktion entschieden haben, wurde in einem Kommentar zu Ihrer Frage von roadmr erläutert

Fazit: Sie können die Berechtigungen der Datei mit ändern, chmodwenn Sie der Eigentümer dieser Datei ohne Root- / Sudo-Berechtigungen sind. Sie können jedoch weder den Besitz eines Benutzers noch einer Gruppe (mit chownoder chgrp) einer Datei ändern, obwohl Sie es sind der Besitzer der Datei ohne root / sudo Berechtigungen. Dies ist eine Funktion und kein Fehler.

Nitin Venkatesh
quelle
2
Ein Teil davon ist falsch. Nicht-Root-Benutzer können die Gruppe ändern, in der sie Mitglied sind. Try touch t; ls -l t; chgrp lpadmin t; ls -l t(Angenommen, Sie gehören zur lpadmin-Gruppe). Siehe auch meine Antwort und verknüpfte Frage.
Mark Stosberg
1
Älteste haben es falsch verstanden. Wenn ich Benutzer A und ich auch Benutzer B bin, sollte ich in der Lage sein, den Besitz von A nach B zu ändern, wenn ich als A angemeldet bin und ich auch das Passwort von B habe oder umgekehrt.
Aishu
@aishu Sie können dies im Prinzip tun, indem Sie die Datei als B kopieren und dann als A löschen. Nicht sehr praktisch für große Dateien.
Holger Böhnke
4

Nein, Sie können den Eigentümer einer Datei nicht ohne Zugriff ändern. Wenn Sie jedoch Eigentümer der Datei sind, können Sie die Berechtigungen der Datei mit chmodund die Gruppe mit chgrpeiner anderen Gruppe ändern, der Sie angehören.

Verwandte Frage: Chown ist nicht Root-Benutzer erlaubt?

Mark Stosberg
quelle
2

Wenn Sie Zugriff auf Benutzer B haben, können Sie die Datei einfach kopieren, während Sie als B angemeldet sind. Wenn Sie auch Zugriff auf Benutzer A haben, können Sie sich anmelden und die Originaldatei löschen. Und schließlich benennen Sie die kopierte Datei in den ursprünglichen Namen um (wieder als B), sodass Sie im Wesentlichen dieselbe Datei haben, die einem anderen Benutzer gehört.

Es ist offensichtlich nicht die gleiche Datei, aber wenn Sie sich nur um den Inhalt der Datei gekümmert haben, ist dies der Trick

kuvic
quelle
1

Sie können den Eigentümer einer Datei oder eines Ordners ohne sudo ändern, sofern Sie über Lese- / Schreibberechtigungen für das Objekt verfügen, und Sie können den Eigentümer nur auf SIE und nicht auf einen beliebigen Benutzer ändern. Der Trick besteht darin, einfach zu kopieren, das Original zu löschen und die Kopie an ihren Platz zu verschieben. Dies beinhaltet leider das Anfertigen einer vollständigen Kopie von allem, aber was machen Sie?

zB chuser.sh:

#!/bin/bash

TMP="some_temporary_filename_this_is_dumb"

RECURSIVE=""
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"

case $key in
    -r|--recursive)
    RECURSIVE="-r"
    shift # past argument
    ;;
    *)    # unknown option
    POSITIONAL+=("$1") # save it in an array for later
    shift # past argument
    ;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters

cp -d --preserve=all $RECURSIVE $1 $TMP || exit 1
rm $RECURSIVE $1
mv $TMP $1
Scott
quelle