Ich möchte einem Freund Zugriff auf ein Verzeichnis geben. Er hat Zugriff auf das Dateisystem, in dem sich das Verzeichnis befindet. Ich möchte die Berechtigungen nicht für alle Benutzer festlegen. Wie kann ich nur einer Person erlauben, das Verzeichnis zu sehen? Keiner von uns ist ein Superuser.
[BOUNTY CHALLENGE] Keine der Antworten funktioniert mit Ubuntu:
1. Jamuraas Ansatz funktioniert nicht
$ setfacl -m user:friend:rwx classroom.xml
setfacl: classroom.xml: Operation not supported
2. niks Ansatz funktioniert nicht: Zugriff auf nicht vorhandene Datei nicht möglich
3. Ba's Ansatz funktioniert nicht: Ich kann keine Gruppen erstellen, keine Wurzel.
4. Der ToK-Ansatz funktioniert nicht. Benutzer werden in zwei Gruppen eingeteilt: "Benutzer" und "Feld".
chown -R myFriend:users ~/TEST
chown: changing ownership of `/u/myFriend/TEST/you_see_it': Operation not permitted
chown: changing ownership of `/u/myFriend/TEST': Operation not permitted
Antworten:
Mit nur normalen UNIX-Berechtigungen (Benutzer, Gruppe, alle) können Sie dies nicht einfach tun. Wenn Sie keinen Zugriff mehr auf das Verzeichnis benötigen, können Sie möglicherweise den Eigentümer des Verzeichnisses in Ihren Freund ändern, was auf einigen Unices gültig ist, die meisten jedoch nicht.
Wenn Sie jedoch ACLs unter Linux aktiviert haben, können Sie dies tun, wenn Sie der Eigentümer der Datei sind. Führen Sie einfach den Befehl aus,
setfacl -m user:friend:rwx filename
bei dem Freund der Kontoname Ihres Freundes und Dateiname die Datei ist. Sie können überprüfen, ob es in Kraft getreten ist, indem Sie es ausführengetfacl filename
. Sie sollten die Triadeuser:friend:rwx
in der Liste sehen. Ich habe jedoch nicht zu viele Linux-Systeme gesehen, auf denen die ACLs aktiviert sind.quelle
Das hatten wir schon in der Schule besprochen.
Geht ungefähr so,
data
, als Referenz hier)chmod 711 data
" ändernx
- Zugriff, um das Verzeichnis zu betretendifficult-name-here
(dies könnte eine Hash-Zeichenfolge sein).chmod a+rx difficult-name-here
" änderncd path/to/data/difficult-name-here
"root
kann aber immer auf alles zugreifen (was hier kein Problem ist)difficult-name-here
mit den Personen, denen Sie diese Daten geben möchtenZiemlich grob, aber wenn dies ohne den Bruch der Unix-Zugriffskontrolle kaputt gehen kann, würde ich gerne wissen.
Update auf Kommentar von
dmckee
,Dies ist genau die Schlussfolgerung, zu der wir gekommen sind!
"Sicherheit durch Dunkelheit" hat begrenzte Sicherheit .
Bei der Gestaltung des Schutzes von Daten ist
es jedoch wichtig, deren Wert zu ermitteln.
Sie sollten zielen auf,
In diesem Fall ist Ihr Geheimnis
root
gelüftet , wenn der beschließt, den Verzeichnisbaum irgendwo im öffentlichen Zugriffaufzulisten! Aber schützen Sie sich vor der Wurzel oder ihrer möglichen Verantwortungslosigkeit?
Wenn dies der Fall ist, müssen Sie sich um viel mehr Sorgen machen als um freigegebene Dateien.
Update über nicht funktionierende Notiz in der Frage .
Ich habe dies in den frühen Tagen von Linux verwendet, um zu wissen, dass es funktioniert.
Wenn Sie
cannot access non-existant file
"statt'permissions denied
" erhalten, haben Sie höchstwahrscheinlich einen Fehler in der Sequenz gemacht. Was Sie wollen, sollte so aussehen,CoverDir
' Zugriff als'rwx--x--x
' festlegen , könnengroup und andere nur das Verzeichnis betreten, dessen Inhalt jedoch nicht lesen.
'
Obscure
' verwenden und mit 'rwxr-xr-x
' vollständigen Lesezugriff gewähren ,kann jeder, der diesen Namen kennt, seinen Inhalt auflisten.
ls BasePath/CoverDir/Obscure
" erfolgen,da Personen in Ihrer Gruppe und andere nicht in der Lage sind, "
ls BasePath/CoverDir
".quelle
ssh
privater Schlüssel).Ryan hatte tatsächlich 100% Recht, nur rückwärts. Da Ihrem Freund (wahrscheinlich) eine eindeutige Gruppe mit seinem Benutzernamen zugeordnet ist, ändern Sie den Gruppeneigentum des betreffenden Verzeichnisses in diese Gruppe, höchstwahrscheinlich den Benutzernamen des Freundes. Um den Inhalt zwischen Ihnen beiden teilen zu können, sollten Sie das Eigentum als Benutzer behalten:
Weisen Sie dem Verzeichnis dann die entsprechenden Berechtigungen zu, je nachdem, welchen Zugriff der andere Benutzer haben soll:
würde Ihnen beiden vollen rwx-Zugriff auf das Verzeichnis und seinen gesamten Inhalt gewähren.
Bitte beachten Sie, dass dies voraussetzt, dass der Gruppe Ihres Freundes kein anderer Benutzer hinzugefügt wurde. Das System hätte diese Zuweisung wahrscheinlich nicht vorgenommen. Wie bereits erwähnt, kann der Root-Benutzer jedoch das tun, was er wählt. Mit dem Befehl groups können Sie jede Gruppe anzeigen, zu der Ihr Freund oder ein beliebiger Benutzer gehört. Sofern die Berechtigungen nicht aus irgendeinem Grund geändert wurden, sollten Sie außerdem die Datei / etc / group anzeigen können, die die Gruppenzuweisungen für jede Gruppe im System enthält.
quelle
Ich würde eine neue Gruppe für Sie und Ihren Freund erstellen und die Ordnerberechtigungen für Eigentümer und Gruppe zusammen mit dem setgid-Bit für das Verzeichnis auf voll setzen.
Abhängig von Ihren Anforderungen müssen Sie möglicherweise auch prüfen, ob Sie und Ihre Freunde umask geändert werden müssen, damit die Gruppe automatisch neue Dateien ändern kann.
quelle
Zugriffssteuerungslisten sind der perfekte Weg, dies zu tun.
Wenn ich mich richtig erinnere, muss das Dateisystem jedoch über / etc / fstab mit ACLs (z. B. "/ dev / sda6 / home ext3- Standardeinstellungen , acl ") initialisiert werden. Dies kann nur der Superuser. ..
quelle
RBACS wie grsec / selinux ist erforderlich.
quelle
Standardmäßig ist jedem Benutzer auf einem Ubuntu-System auch eine gleichnamige Gruppe zugeordnet. Wenn Sie also Ihren Freund zu Ihrer Gruppe hinzufügen und dann den betreffenden Ordner als markieren können
g+rwx
, werden Sie festgelegt. Ich erinnere mich vage, dass dieser Anwendungsfall als Grund für die Erstellung einer Gruppe für jeden Benutzer angeführt wurde.quelle
Wie wäre es mit Dropbox? Sie können es ohne Administratorrechte installieren und beide mit demselben Konto verknüpfen.
Lesen Sie, wie Sie Dropbox in einer vollständig textbasierten Linux-Umgebung installieren
quelle
Ich habe es noch nicht versucht, aber wie wäre es mit einem öffentlich lesbaren Verzeichnis mit einem verschlüsselten User-Space-FS (zum Beispiel encfs)? Dann können Sie dieses Passwort mit Ihrem Freund teilen und niemand anderes kann diese Daten verwenden (nun, ich denke, sie könnten die Daten abrufen und einen Passwort-Cracker offline ausführen?).
quelle
Um Linux die gleiche Finesse wie Windows in Dateiberechtigungen zu geben, müssen Sie Gruppen verschachteln. Erstellen Sie eine Gruppe, die Zugriff auf Ihren Ordner hat, wie Sie es Ihrem Freund wünschen. Fügen Sie ihn dieser Gruppe oder der Gruppe hinzu, in der er sich in dieser Gruppe befindet. Zum Beispiel
/ foo ist der Ordner, den Sie freigeben möchten. Erstellen Sie eine Gruppen-FooGroup, die den gewünschten Zugriff auf den Ordner hat. Fügen Sie dieser Gruppe Gruppen und Benutzer hinzu, für die Sie Zugriff auf diesen Ordner haben möchten.
Es ist ein großes Problem, für jeden Ordner oder jede Datei eine Gruppe zu haben, aber es ist der beste Weg, den Zugriff auf derselben Ebene wie Windows einzuschränken.
quelle
Sie können das Verzeichnis mit verschlüsseln
gpg
. Und dann versuchen Sie, den Ort so zu verschleiern, wie es Nik vorgeschlagen hat.quelle