# Dateirechte

## forrestfunk81

Hallo zusammen,

da ich einem Freund Zugang zu meinem Server einrichte, hab ich mich mal etwas ausgiebiger mit den Dateirechten unter Linux auseinander gesetzt. 

Dazu die Frage: Was ist der Sinn dahinter, dass standardmäßig alle Benutzer, die weder Besitzer noch in der entsprechenden Gruppe sind auf alle Verzeichnisse im Rootverzeichniss und die meisten Unterverzeichnisse lesend zugreifen können (z.B. /etc/ und Unterverzeichnisse). Selbes für die /home/<user> Verzeichnisse.

Bei Single-User Systemen war mir das bisher egal. Aber auch aus Sicherheitsgründen (falls man mal gehackt wird) ist die standard Rechtevergabe nicht ideal.

Habt ihr eine spezielle Strategie für den Umgang mit Dateirechten?

----------

## firefly

für /usr/lib, /lib, /usr/bin musst das sein, damit der Benutzer überhaupt ein Programm starten kann.

----------

## fuchur

Hi

 *forrestfunk81 wrote:*   

> Hallo zusammen,...
> 
> Dazu die Frage: Was ist der Sinn dahinter, dass standardmäßig alle Benutzer, die weder Besitzer noch in der entsprechenden Gruppe sind auf alle Verzeichnisse im Rootverzeichniss und die meisten Unterverzeichnisse lesend zugreifen können (z.B. /etc/ und Unterverzeichnisse). Selbes für die /home/<user> Verzeichnisse.
> 
> ...
> ...

 Das mit den home verzeichnissen ist "gentoo typisch". Andere dist mache das anders. In meinem home verzeichniss habe ich dateirechte  "drwx------"

oder auch "drwx--x--- " und es läuft ohne probleme (und die wurden meist von irgend welchen andern dists gesetzt).

MfG

----------

## Max Steel

 *firefly wrote:*   

> für /usr/lib, /lib, /usr/bin musst das sein, damit der Benutzer überhaupt ein Programm starten kann.

 

Auch /usr/share ist dementsprechend gehandhabt. und so manche userspace-Programme laden aus /etc/ ihre Standardkonfiguration. Ist von dem her schon in Ordnung so.

Kritische Elemente wie /etc/shadow oder /etc/ssh sind von Haus aus für den User nicht lesbar und erst recht nicht schreibbar.

----------

## forrestfunk81

Danke für die Antworten. 

Die Rechte in den Home Verzeichnissen habe ich schon mal angepasst. Einige etc-Verzeichnisse passe ich noch Schritt für Schritt an. 

Ich fände es trotzdem schöner, wenn für Anwendungen, für welche bei der Installation sowieso schon Nutzer erstellt werden, auch die config Dateien in etc gleich den entsprechenden Nutzern zugeordnet werden (z.B. bei Apache).

----------

## py-ro

 *Quote:*   

> Ich fände es trotzdem schöner, wenn für Anwendungen, für welche bei der Installation sowieso schon Nutzer erstellt werden, auch die config Dateien in etc gleich den entsprechenden Nutzern zugeordnet werden (z.B. bei Apache).

 

Das ist eine schlechte Idee, den dann könnte der Webserver selber seine Config verändern, was dann doch eher nicht gewünscht ist, aus nahe liegenden Gründen. 

Bye

Py

----------

## forrestfunk81

 *py-ro wrote:*   

>  *Quote:*   Ich fände es trotzdem schöner, wenn für Anwendungen, für welche bei der Installation sowieso schon Nutzer erstellt werden, auch die config Dateien in etc gleich den entsprechenden Nutzern zugeordnet werden (z.B. bei Apache). 
> 
> Das ist eine schlechte Idee, den dann könnte der Webserver selber seine Config verändern, was dann doch eher nicht gewünscht ist, aus nahe liegenden Gründen. 
> 
> Bye
> ...

 

Danke, soweit hab ich nicht gedacht. Dann vllt root:apache mit drwxr-----

----------

## py-ro

Der Apache wird eh als root gestartet, den sonst könnte er sich nicht an Port 80 binden.  :Wink: 

----------

## schmidicom

 *py-ro wrote:*   

> Der Apache wird eh als root gestartet, den sonst könnte er sich nicht an Port 80 binden. 

 

Bist du dir da wirklich sicher?

```
top - 16:09:08 up 110 days,  3:39,  1 user,  load average: 0.01, 0.04, 0.05

Tasks:  83 total,   1 running,  82 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   4055040k total,  2406152k used,  1648888k free,   432692k buffers

Swap:  3911792k total,        0k used,  3911792k free,  1385776k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

25238 apache    20   0  308m 9132 1372 S    0  0.2   0:00.00 apache2

25279 apache    20   0  341m  10m 2208 S    0  0.3   0:00.00 apache2

25280 apache    20   0  341m  10m 2208 S    0  0.3   0:00.00 apache2

25281 apache    20   0  341m  10m 2208 S    0  0.3   0:00.00 apache2

25282 apache    20   0  341m  10m 2208 S    0  0.3   0:00.00 apache2

25283 apache    20   0  341m  11m 3556 S    0  0.3   0:00.50 apache2

29919 apache    20   0  341m  10m 2208 S    0  0.3   0:00.00 apache2

29921 apache    20   0  341m  11m 3548 S    0  0.3   0:00.03 apache2

29922 apache    20   0  341m 9808 1712 S    0  0.2   0:00.00 apache2

29923 apache    20   0  341m  11m 3544 S    0  0.3   0:00.00 apache2

29924 apache    20   0  341m 9808 1712 S    0  0.2   0:00.00 apache2
```

----------

## py-ro

Ja, er wechselt beim Starten dann auf apache herunter.

----------

## mv

 *py-ro wrote:*   

> Ja, er wechselt beim Starten dann auf apache herunter.

 

Ich vermute, es ginge auch mit capabilities. Wird vielleicht sogar per USE-Flag unterstützt?

----------

## py-ro

Mag sein, finde ich aber persönlich albern, den dann müssten die Rechte ja schon im Init-Skript geändert werden und ob das dort oder im Prozess passiert ist IMHO wurscht.

----------

## mv

 *py-ro wrote:*   

> Mag sein, finde ich aber persönlich albern, den dann müssten die Rechte ja schon im Init-Skript geändert werden und ob das dort oder im Prozess passiert ist IMHO wurscht.

 

Hu? Mit capabilities müssen gar keine Rechte geändert werden, und nichts muss irgendwann als root laufen. (Dass man zusätzlich ev. nach dem Anhängen an den gewünschten Port diese Capabilities ebenfalls fallenlassen kann, würde ich nicht als Rechteänderung bezeichnen.)

----------

## py-ro

Das ändert aber nichts daran, dass init als Root läuft und das den Apache startet.  :Wink: 

----------

## mv

 *py-ro wrote:*   

> Das ändert aber nichts daran, dass init als Root läuft und das den Apache startet. ;)

 

Der muss ja nicht zwangläufig nur aus init gestartet werden. Auf jeden Fall spart man sich Parsen von Configs mit Root-Rechten - ich vermute, die müssen sonst nämlich zwangsläufig vorher geparsed werden, damit Apache weiß, auf welchen Benutzer er umschalten muss. Und je nachdem, wie Apache programmiert ist, können da schon sehr komplexe Sachen ablaufen, die möglicherweise Exploits erlauben könnten.

----------

