Rechte auf Ordner setzen

  • Themenstarter Themenstarter ba2
  • Beginndatum Beginndatum
B

ba2

Guest
Hi,

ich möchte das ein user in einen Bestimmten Ordner Dateien erstellen, löschen und bearbeiten kann. Habe jetzt gut 2Std rum probiert und bekomme es nicht hin.

wie gebe ich zB den user

ba2 alle Rechte für den Ordner /var/www/

?

ich hoffe mir kann jemand helfen.


mfg ba2
 
Fuer den Fall, dass dieser thread nicht plantschen geht:

Code:
chmod 770 Ordner

gibt dem Besitzer und der Besitzergruppe alle Rechte, warum und wie kannst und solltest du mit

Code:
man chmod
nachlesen :)
 
Hallo.
Wäre nett gewesen, wenn du noch dein OS dazugeschrieben hättest.Dies ist in dem Fall nämlich von essentieller Bedeutung.

Aber da du ein Verzeichnis aus der Linux-Verzeichniswelt angegeben hast, denk ich, du meinst Linux/Unix.

Also in dem Fall ist chmod dein Freund.Schau dir doch bitte die Dokumentation an.

Kurzum, um dein Problem zu lösen:

Code:
chown $bestimmter_user $directory_name

chmod 7xx $directory_name

für $bestimmter_user setze den Usernamen deines bestimmten Users ein.
Für $directory_name idF /var/www

Und für x je nach dem ,was die anderen dürfen sollen.

Das erste x steht für die Gruppe, die das Directory mitbesitzt.
Das Zweite für den Rest (Menge aller User, die nicht in 1. od. 2. Stelle fallen).

Hoffe, ich habe deine Frage präzise genug beantwortet.

MfG,
pi()
 
wollte da oben jemand die rechte von /var/www ändern? nenene, finger weg davon, das ist toll so wie es ist. setz den user in die gruppe www-data und gib schreibrechte für die gruppe.
 
adduser $user $gruppe

das fügt unter debian einen user einer gruppe hinzu, dat is schon korrekt so :)
 
Ich weiss ja nicht was du damit vorhast aber ich habe das unter Fedora so geloest.

chown meineid /var/www/html
su meinaccount
cd ~
mkdir projects
cd projects
ln -s /var/www/html

Ich sollte noch hinzufuegen das ich den nur benutze um php zu lernen und das mein Server von aussen nicht erreichbar ist.

BTW:
was waere eigenlich so schlimm daran den Besitzer zu aendenr?
mfg

sw33t

//edit
@bitmuncher below:
aso...
dann wechsel ich halt die gruppe^^.
 
Original von sw33tlull4by
was waere eigenlich so schlimm daran den Besitzer zu aendenr?
mfg

Da wäre garnichts schlimm dran. Es kann sogar von Vorteil sein, wenn der Webserver nicht überall in seinem DocumentRoot schreiben kann. Es wäre lediglich unüblich, weil man ja manchmal mehr als nur einen User hat, der in das DocumentRoot schreiben muss.
 
edit: mist... schon wieder zu langsam....

zwecks "warum sollte man das nicht unbedingt machen?":
schonmal mit Rechte-Vergabe / Rechte-System / wie auch immer unter Linux genauer befasst?

Daemons(oder für Windows-User: "Services") werden unter den Rechten ausgeführt, die der Nutzer hat, unter welchem sie laufen (komisch verschachtelter Satz, aber wahr)
Daemons/Services/Dienste/(wie auch immer du sie nennen willst) wie z.B. Webserver, Mailserver, Datenbankserver, etc. laufen alle unter eigenständigen System-Accounts, wie z.B. "www-data","mysql","postfix", wie auch immer

mal 2 Vorteile, die mir spontan einfallen:
  • diese haben als Shell in der /etc/passwd meistens /bin/false, /usr/sbin/nologin oder ähnlich - d.h., wenn du einen Exploit findest, mit dem du einen der Dienste missbrauchen kannst, um Remote-Shell-Zugriff zu bekommen, sollte meines Verständnisses nach dann eine Meldung a la "error: user has no shell-access" (Formulierung jetzt mal frei erfunden) kommen... - zumindestens wenn man per SSH sich mit einem Nutzer einloggen will, der /bin/false drin stehen hat, kommt sowas...
    (okay, www-data hat /bin/sh... wird schon seinen nützlichen Grund haben, egal...)
  • dem Benutzer www-data gehören nur die Dateien unter /var/www
    vorausgesetzt, man sichert sein System gut ab (Dateien im Home-Verzeichnis z.B. mit chmod 600 oder max. 640 - bzw bei Ordnern und Scripten 700 oder 750), dann können Scripte, die unter dem Benutzer www-data ausgeführt werden nicht durch die privaten Daten schnüffeln (im richtigen Server-Betrieb/WebHosting, wo mehrere Seiten über einen Webserver laufen, wird das ganze ein wenig komplexer.. da braucht jeder Kunde seinen eigenen System-Account, damit er auch nicht in die Ordner des nächsten Kunden schauen kann, etc. - zzgl. einige Einstellungen in der php.ini um sicher zu gehen, aber egal... ich schweife nur zu weit ab....)
 
Original von beavisbee
(okay, www-data hat /bin/sh... wird schon seinen nützlichen Grund haben, egal...)
Es hat aber keinen nützlichen Grund. Bei einem normalen Webserver sollte das geändert werden. Warum die Distros da bis heute eine echte Shell einsetzen ist mir rätselhaft. Benötigt wird es jedenfalls beim Apache nicht.
 
K
Dann kann man also fuer einen Server der vonaussen erreichbar ist das so regeln,
das man einen Benutzer bzw eine Gruppe anlegt, je nachdem ob mehrere an dem Server arbeiten sollen,das login in diese Gruppe bzw den Benutzer von aussen verbietet , kein /home anlegt ,
die besitz/gruppenreche von /var/www auf diesen User/diese Gruppe uebertraegt,
alles was nicht gebraucht wird rausschmeisst und dann mittels
su dieserbenutzer
oder
sg diesegruppe
daran arbeite.

Was ich aber nicht verstehe:
Bei mir ist root in /var/www von allem gruppe bzw besitzer (ausnahme /var/www/html

service httpd start
startet den apache server
apache ist bei mir in der passwd mit dem homeverzeichni:/var/www gekennzeichnet und /sbin/nologin
SO:
Mein Apache funktioniert, aber wiso?
Der Deamon kanna ber darauf arbeiten.
Wiso?
Liegt das an der uid, das sie unter 500 ist und somit zum System gehoert (user-/systemmode??)und alles in sinem Homeverzeichniss darf oder wiso funktioniert der Apache trotzdem?

mfg

sw33t
 
Der Apache ist nicht auf eine Shell angewiesen, der läuft auch ohne. Die initiale Shell zum Starten steht ja durch den Benutzer root zur Verfügung. Nach dem setuid() löst sich der Apache vom sogenannten Control-TTY und ist damit von der Shell unabhängig. Der Output wird in Logdateien umgeleitet usw..
 
Danke für die vielen Antworten hat alles Prima funktioniert.

Nachtrag:

ALS Betriebssystem nutze ich Ubuntu Server Edition


mfg ba2
 
Zurück
Oben