Linux/Ubuntu: Wie kann man per Konsole einer Datei Zugriffsrechte eines bestimmten Nutzers geben?

...komplette Frage anzeigen

6 Antworten

Für bestimmte User macht man das mit acl und / oder selinux

acl gibt es nicht nur für Windows!

Es kann aber sein, daß du das erst installieren mußt! Schau mal in deine Paket-Verwaltung.

Siehe auch http://savannah.nongnu.org/projects/acl/

Zu selinux (auch installierbar über die Paketverwaltung):

The SELinux Reference Policy (refpolicy) is a complete SELinux policy, as an alternative to the existing strict and targeted policies available from selinux.sf.net. The goal is to have this policy as the system policy, be and used as the basis for creating other policies. Refpolicy is based on the current strict and targeted policies, but aims to accomplish many additional goals: + Strong Modularity + Clearly stated security Goals + Documentation + Development Tool Support + Forward Looking + Configurability + Flexible Base Policy + Application Policy Variations + Multi-Level Security This package contains the documentation for the reference policy

Du suchst die Befehle chown und chmod. Mit chmod kannst du die Rechte für den Benutzer, die Gruppe des Benutzers und für alle setzen. Also beispielsweise Datei a.txt im Homeverzeichnis soll für Benutzer (u) und Gruppe (g) lesbar gemacht werden, aber nicht für die Anderen (o). Der Befehl dazu lautet dann: "sudo chmod ug+r ~/a.txt"  Der selben Datei sollen nun allen anderen Schreiberechte entzogen werden: "sudo chmod o-w ~/a.txt". Zu guter letzt soll diese Datei noch für alle (a = alle drei Gruppen) ausführbar gemacht werden: "sudo chmod a+x ~/a.txt". Statt diese Personen und Plus und Minus kannst du auch Zahlen schreiben. Du schreibst immer Drei Zahlen hintereinander. Die erste Zahl ist der User, die zweite Zahl die Gruppe und die dritte Zahl die Anderen (Others o). 0= -rwx (alle Rechte entziehen.) 1= +x (Ausführrechte) 2=+w (Schreibrechte) und 4=+r (Schreibrechte). Du addierst die Zahlen wie du sie brauchst. Also um das selbe Ergebnis in Zahlen zu erreichen, wie ich mit all den Befehlen erreichte müsste der Befehl folgendermaßen lauten: "sudo chmod 551 ~/a.txt". Der chmod Befehl ist damit durch. Der chown Befehl kommt noch. Der ändert den Besitzer, der ja beim chmod ausschlaggebend für die Definition des Users, dessen Gruppen und der Leute, die nicht in seiner Gruppe sind, ist. Der Syntax ist easy: "sudo chmod ~/a.txt" Zwei Parameter, die ich andauernd damit benutze, lauten -Rc. -R steht für rekursiv. Vorsicht, muss hier groß sein. Damit kannst du einen ganzen Ordner / ein ganzes Laufwerk mit einen Befehl ändern. -c steht für verbose change. Also siehst du nur in der Ausgabe, wenn sich etwas tatsächlich geändert hat.

 

Damit solltest du dein Ziel erreichen. Weitere Informationen natürlich in der man-page.

 

melde dich als root auf einer Konsole an und führe den Befehl

chown <neuer User> <Dateiname> aus.

Mit chmod kannst du dann auch die rwx- Rechte setzen.

Es gab bei Linux (Unix) Zeiten, da konnte man eine Datei "verschenken" . Als owner einer Datei ließ sich chown <neuer User> <dateiname> ausführen.

So konnte man auch Dateien "verschenken" die dann wie Viren wirkten. (z.B konnte man eine Datei mit dem Namen ls und dem Inhalt rm -r * verschenken).

Diese Zeiten sind vorbei. Ein "normaler" User kann sich jetzt nur noch Dateien von andern holen und u.U. selbst als owner eintragen. root darf das aber immer. Diese Änderung hat wesentlich zur Verbesserung der Sicherheit beigetragen.

rm -rf / wäre aber deutlich effektiver ;)

0
@druckertinte

richtig! als root und nach rm -rf brauchst du keine Rechte mehr, weil es keine Directories und Dateien gibt. Da musste man aber Root sein.

 

 

0

Schau dir mal die man-pages von chown an...

Grundsätzlich wird chown so verwendet:

chown name:gruppe dateiname

chown ist aber um den Eigentümer zu ändern. Für die Rechtevergabe würde ich eher chmod verwenden

0

Mach das am besten mit dem chmod-Befehl.

sudo chmod 777 Dateiname

oder

sudo chmod u=rwx g=rwx o=rwx Dateiname

In den obigen Beispielen vergibst du alle Rechte an Jedermann.

Unter

http://wiki.ubuntuusers.de/chmod

ist der Befehl super erklärt.

Thema verfehlt! Mit chmod kannst du nicht für einen bestimmten User die Rechte setzen. Außerdem muss sudo erst für dich eingerichtet werden. Linux-Distributionen, die um Sicherheit bemüht sind, überlassen das dem Superuser root. Wenn Ubuntu das generell für alle User bereits beim Anlegen eines User-Accounts einrichten sollte, dann wird Sicherheit mit Füßen getreten.

0
@guenterhalt

Ubuntu richtet sudo Standardmäßig für den ERSTEN angelegten Benutzer (UID 1000) ein und nicht für alle.

Also erstmal informieren bevor man lästert. ;-)

0
@GoloTheDog

@guenterhalt

Also soweit ich weiß kann jeder User in Ubuntu die Rechte setzen, aber natürlich nur an Dateien die auch ihm gehören. Der dessen Name nur geflüstert werden darf, auch Root genannt, darf natürlich Rechte für alle Dateien setzen. Wozu wäre man ja auch sonst Root?

Also ich sehe hier kein Unterschied zwischen anderen Distris und Ubuntu? Und damit auch kein Sicherheitsrisiko.

 

Oder habe ich dich falsch verstanden? Hat dich GoloTheDog richtig verstanden und es geht um den SuperUser? Ob du dich nun per su zum Superuser machst oder einen Befehl als SuperUser per sudo ausführst, für beide brauchst du ein Passwort und in beiden Fällen gibt es nur ein Root-Passwort. Wo ist hier die Sicherheitslücke?

0

Wie wärs denn, wenn du mal eine Suchmaschine benutzen würdest? Such mal nach "linux file permissions", nur so als Tipp!

dieser Vorschlag ist doch wohl daneben!

Mache es und trage die sinnvollen Ergebnisse hier ein oder sei still!

0

Was möchtest Du wissen?