Teilen Sie ein Verzeichnis mit einem (nicht allen) anderen Nicht-Root-Benutzern unter Linux (keine Root-Berechtigungen).

483
0range

Ist es möglich, ein Verzeichnis mit einem anderen Benutzer ohne Rootberechtigung zu teilen, jedoch nur mit diesem Benutzer ohne Rootberechtigung?

  • Das System ist Ubuntu mit Kernel 4.4.0.

  • Ich habe keine root-Rechte.

  • Das System hat eine große Anzahl von Benutzern. Die Administratoren würden sich wahrscheinlich nicht damit einverstanden erklären, eine neue Gruppe nur für mich zu erstellen.

  • Das System erlaubt mir nicht zu verwenden setfacl(wahrscheinlich kein acl-Paket installiert)

Ansatz 1: Verwenden der Benutzergruppe (funktioniert nicht)

Wenn ich über Root-Berechtigungen verfügte, könnte ich den anderen Benutzer meiner Benutzergruppe hinzufügen und dieser Gruppe die Rechte für das Verzeichnis erteilen (vorausgesetzt, die Benutzer sind user_a(ich) und user_b(der andere) und das Verzeichnis ist ~/shared_directory):

sudo usermod -a -G user_a user_b 

(dieses Add würde user_bzu einer Gruppe user_a, user_a‚s Benutzergruppe)

chgrp user_a ~/shared_directory 

(Dies setzt die Besitzergruppe von ~/shared_directoryauf user_a; in fast allen Fällen sollte dies bereits die Besitzergruppe sein und der Befehl sollte nicht erforderlich sein.)

chmod g=rwx ~/shared_directory 

(Dies gibt der Gruppe alle Rechte, um das Verzeichnis zu lesen, zu schreiben und auszuführen).

Ich habe jedoch keinen Root-Zugriff und darf weder usermod ausführen noch in die entsprechende Datei schreiben /etc/group(was schlecht wäre!).

Ansatz 2: Verwenden von Dateizugriffssteuerungslisten (ACL) (funktioniert nicht)

Ich kann setfacldiese ausführbare Datei auch weder ausführen noch finden. wahrscheinlich, weil das acl-paket nicht installiert ist. Ich kann daher nicht versuchen, den in dieser Antwort vorgeschlagenen Ansatz zu verwenden :

setfacl -m u:user_b:rwx ~/shared_directory 

(Dies würde den user_bZugriff auf das Verzeichnis nach Wunsch ermöglichen, sofern das ACL des Dateisystems und des Kernels unterstützt wird.)

Mein Gefühl ist immer noch, dass Ansatz 1 (Benutzergruppe und Berechtigungen) der Schlüssel zur Lösung dieses Problems sein sollte

Darf ich nicht kontrollieren, wer zu meiner Benutzergruppe gehört? Oder verstehe ich den Zweck der gleichnamigen Benutzergruppen der Benutzer falsch?

Einige Antworten auf diese Frage in Unix und Linux erörterten die Rolle, Rechte und den Zweck von Benutzergruppen.

Oder gibt es einen anderen Weg, um dies zu erreichen, ohne dass Root-Rechte erforderlich sind?

3
Ich vermute, Sie müssen mit Ihren Sysadmins zusammenarbeiten. Zoredache vor 6 Jahren 1
Wenn das Feature in den Kernel-Optionen implementiert ist (Ubuntu?), Ist es nicht deaktiviert ("noacl" wird nicht für / home oder ähnliches verwendet) und der Mount-Punkt erlaubt ebenfalls die Ausführung ("noexec" wird nicht für / verwendet.) home) Wenn Sie den Befehl nicht installiert haben, können Sie keine lokale Version des Befehls ausführen. Sie können die Pakete (einschließlich Abhängigkeiten) einfach herunterladen, irgendwo in Ihrem Benutzerverzeichnis entpacken und mit ein paar Tricks (LD_LIBRARY_PATH ...) den Befehl von dort aus ausführen. Wenn dies als verboten gilt, können die Systemadministratoren die beiden oben genannten Optionen hinzufügen, um dies trotzdem zu verhindern A.B vor 6 Jahren 1
natürlich erfordert setfacl keine root-rechte. Wenn Sie sowohl Ihr Konto als auch das andere Konto in einer allgemeinen * dedizierten * Gruppe haben, müssen Sie das Root-Privileg dazu haben. Andernfalls können Sie eine allgemeine generische Gruppe auswählen, falls diese existiert. zB: beide Benutzer in der CD-ROM-Gruppe? Das ist eine gemeinsame Gruppe. Ich hoffe, es gibt keine Interaktion mit apparmor / selinux A.B vor 6 Jahren 1
@AB Das ist eine coole Idee. Ich kann "getfacl" und "setfacl" herunterladen und ausführen, auch ohne mit Bibliotheksabhängigkeiten zu spielen. Sie haben jedoch Recht, dass dies nicht funktioniert, wenn es im Kernel deaktiviert ist. Ich bekomme "Operation nicht unterstützt". Das bedeutet, der Kernel erlaubt es nicht. 0range vor 6 Jahren 0

0 Antworten auf die Frage