Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Stroke

Anfänger

  • »Stroke« ist männlich
  • »Stroke« ist der Autor dieses Themas

Beiträge: 29

Wohnort: Deutschland, nahe Berlin

Beruf: Schüler

  • Nachricht senden

1

21.10.2004, 18:40

Rechte werden zurückgesetzt!!

Hallo Leute!

Ich bin vor einigen Tagen von Windows auf Linux umgestiegen und hab mir dann also Mandrake 10 Community gesaugt. Bis jetzt funktioniert auch alles ganz gut. Ich als eigentlicher Windows-User komme jetzt schon ganz gut mit Linux zu recht. *freu*

Jedenfalls arbeite ich mich seit einigen Tagen auch schon mit der Konsole ein, kann damit nun schon mehr oder weniger umgehen. Und da man über die Konsole einige Dinger schneller und effizienter als mit der grafischen Oberfläche (in meinem Fall GNOME) erledigen kann, benutze ich diese auch relativ häufig.
Da ich unter anderem Webseiten programmiere benötige ich einen virtuellen Server (XAMPP), diesen konnte ich auch erfolgreich installieren. Allerdings geht das nur als root, folglich ist auch der Ordner mit entsprechenden Rechten versehen. Ich benutze hauptsächlich einen anderen Standart-User für das System, und den Root nur in manchen fällen (Installation usw.), und dann auch nur über die Konsole (bash). Denn da ich ja eigentlich noch ein Linux-Noob bin könnte ich mit dem Root-User wahrscheinlich viel Mist bauen. Wie auch immer, jedenfalls brauche ich ja Zugriff auf den "htdocs"-Ordner des Webservers, um dort meine Webseiten unterzubringen. Also habe ich einfach per Konsole (als Superuser=root) der Rechte per chmod des Ordners "htdocs" auf 777 gesetzt.
Die Dateien musste ich auch nochmal alle entsprechend bearbeiten, das habe ich so gemacht: "find /opt/lampp/htdocs/ -name \* -exec chmod 777 {} \;". Hat auch alles wunderbar funktioniert. Ich erhielt vollen Zugriff auf alle Dateien und konnte den Webserver ganz nach meinen Wünschen verwenden. Aber nach einiger Zeit werden die Rechte wie von Zauberhand einfach wieder zurückgesetzt, sodass ich immer wieder die Rechte manuell per Bash neu setzen muss. Das ist ziemlich nervig und ich verstehe auch absolut nicht, warum die Rechte einfach mal so wieder zurückgesetzt werden!!

Weiß jemand warum das geschieht und was ich dagegen machen kann?
You don't need a reason to help people.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Stroke« (21.10.2004, 18:41)


CIU

Fortgeschrittener

  • »CIU« ist männlich

Beiträge: 540

Wohnort: Dresden

  • Nachricht senden

2

21.10.2004, 18:53

Zitat

gentlich noch ein Linux-Noob bin könnte ich mit dem Root-User wahrscheinlich viel Mist bauen

sehr richtig.

zu deinem problem und meine lösung..
ich hab bei mir apache als web-server laufen.
die lösung mit xampp kenne ich nur von windows und da startet das prog auch nur apache perl php und mysql. halt nur mit einem klick.
würde aber den "richtigen" webserver verwenden mit den entsprechenden mod's
mit den rechten würde ich nicht chmod sondern doch eher chown verwenden.
da haste dein zeug unter kontrolle. 777 is ja "jeder darf alles".

du legst dir den unter /var/ww/html nen ordner an und bei diesem tust du dann den besitzer ändern. und schon kannst beruhigt drauf zugreifen ohne die datei für alle lesbar und ausführbar zu machen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »CIU« (21.10.2004, 18:57)


Stroke

Anfänger

  • »Stroke« ist männlich
  • »Stroke« ist der Autor dieses Themas

Beiträge: 29

Wohnort: Deutschland, nahe Berlin

Beruf: Schüler

  • Nachricht senden

3

21.10.2004, 19:17

Okay, also ich habe jetzt die Rechte auf 750 gesetzt. Soweit ich weiß, bedeutet das ja, dass der besitzer alles darf, und gruppenmitglieder nur lesen und ausführen dürfen.
Dafür habe ich jetzt alle Dateien chown mir zugesprochen. Ich habe geschrieben:
chown matze: {}
Und ich bin mit "matze" auf der grafischen Oberfläche angemeldet.
Aber trotzdem steht jetzt noch da, wenn ich über den Browser zugreifen will, "403 Forbidden". Wieso das? Nur wenn ich auf 777 stelle kann ich darauf zugreifen. :-(
Gerade eben habe ich nochmal versucht mit lynx (als root-angemeldet) auf localhost zuzugreifen, selbst dann wird "Forbidden" angezeigt.
Ich steig da nicht durch...
You don't need a reason to help people.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Stroke« (21.10.2004, 19:19)


CIU

Fortgeschrittener

  • »CIU« ist männlich

Beiträge: 540

Wohnort: Dresden

  • Nachricht senden

4

21.10.2004, 19:34

chmod 755 oder 751

5

21.10.2004, 20:13

Ist Logisch ;)

Wenn man's weiß ;)

750

bedeutet soviel wie du und alle in deiner Gruppe (users) dürfen da rein und sachen ändern,
aber ein Browser der als User "www" in der Gruppe "apache" läuft darf darauf nicht zugreifen !

Gruss
Mikesch

PHP-Quelltext

1
2
3
4
<?php 
  $RealName="Stefan";
  echo $RealName;
?>

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

6

21.10.2004, 20:35

Zitat

Original von Stroke
Okay, also ich habe jetzt die Rechte auf 750 gesetzt. Soweit ich weiß, bedeutet das ja, dass der besitzer alles darf, und gruppenmitglieder nur lesen und ausführen dürfen.
Dafür habe ich jetzt alle Dateien chown mir zugesprochen.


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
Um Zugriffsrechte einer bereits existierenden Datei zu aendern, stehen
die beiden Funktionen "chmod" und "fchmod" zur Verfuegung.

| #include <sys/types.h>
| #include <sys/stat.h>
|
| int chmod(const char *pfad, mode_t modus);
| int fchmod(int fd, mode_t modus);

Waehrend mit "fchmod" nur die Zugriffsrechte einer bereits geoeffneten
Datei (mit Filedeskriptor 'fd') geaendert werden koennen, ist das bei
"chmod" fuer eine nicht geoeffnete Datei moeglich.
Fuer »modus« sind eine oder mehrere mit '|' (bitweises OR) verknuepfte
Konstanten anzugeben, die in <sys/stat.h> definiert sind.

,----[ <sys/stat.h> ]
|     #define S_IRWXU 0000700    /* RWX mask for owner */
|     #define S_IRUSR 0000400    /* R for owner */
|     #define S_IWUSR 0000200    /* W for owner */
|     #define S_IXUSR 0000100    /* X for owner */
|
|     #define S_IRWXG 0000070    /* RWX mask for group */
|     #define S_IRGRP 0000040    /* R for group */
|     #define S_IWGRP 0000020    /* W for group */
|     #define S_IXGRP 0000010    /* X for group */
|
|     #define S_IRWXO 0000007    /* RWX mask for other */
|     #define S_IROTH 0000004    /* R for other */
|     #define S_IWOTH 0000002    /* W for other */
|     #define S_IXOTH 0000001    /* X for other */
|
|     #define S_ISUID 0004000    /* set user id on execution */
|     #define S_ISGID 0002000    /* set group id on execution */
|     #define S_ISVTX 0001000    /* save swapped text even after use */
`----
Um die Zugriffsrechte fuer eine Datei zu aendern, muss die effektive
User-ID des Prozesses gleich der User-ID des Dateieigentuemers sein
oder der Prozess muss Superuser - Rechte haben.
'fchmod' ist _nicht_ Bestandteil von POSIX.1, wird aber sowohl von
SVR4 als auch 4.4BSD angeboten. Die Konstante 'S_ISVTX' ist ebenfalls
_nicht_ Bestandteil von POSIX.1.

,----[ Rechte fuer Dateien ]
| [sstrwxrwxrwx]
|  ||||||||||||
|  |||||||||||`-  Andere duerfen ausfuehren
|  ||||||||||`--  Andere duerfen schreiben
|  |||||||||`---  Andere duerfen lesen
|  ||||||||`----  Mitglieder der Gruppe duerfen ausfuehren
|  |||||||`-----  Mitglieder der Gruppe duerfen schreiben
|  ||||||`------  Mitglieder der Gruppe duerfen lesen
|  |||||`-------  Eigentuemer darf ausfuehren
|  ||||`--------  Eigentuemer darf schreiben
|  |||`---------  Eigentuemer darf lesen
|  ||`----------  Programm gleich ausswappen (obsolete(?))
|  |`-----------  Programm wird unter dieser Gruppe gestartet
|  `------------  Programm wird unter diesem Nutzer gestartet
`----
,----[ Rechte fuer Verzeichnisse ]
| [sstrwxrwxrwx]
|  ||||||||||||
|  |||||||||||`-  Andere duerfen auf Subdirectorys / Dateien zugreifen
|  ||||||||||`--  Andere duerfen Subdirectorys / Dateien anlegen / loeschen
|  |||||||||`---  Andere duerfen listen
|  ||||||||`----  Mitglieder der Gruppe duerfen auf Subdirectorys / Dateien zugreifen
|  |||||||`-----  Mitglieder der Gruppe duerfen Subdirectorys / Dateien anlegen / loeschen
|  ||||||`------  Mitglieder der Gruppe duerfen listen
|  |||||`-------  Eigentuemer darf auf Subdirectorys / Dateien zugreifen
|  ||||`--------  Eigentuemer darf Subdirectorys / Dateien anlegen / loeschen
|  |||`---------  Eigentuemer darf listen
|  ||`----------  Nur der Eigentuemer eine(r|s) Datei / Directorys darf diese loeschen.
|  |`-----------  Neue Subdirectorys / Dateien bekommen gleiche Gruppe wir Directory.
|  `------------  unused
`----
Zuerst wird Besitzer, dann Gruppen und dann Fremdrechte betrachtet, so 
dasz rw-r-x-wx fuer eine Datei bedeutet, dasz der Besitzer lesen und 
schreiben, aber nicht ausfuehren, Mitglieder der Dateigruppe lesen und 
ausfuehren, aber nicht schreiben und alle anderen schreiben und ausfuehren 
koennen.
So ist also 
 $ chmod u=rwx file
 $ chmod 700 file
aequivalent (nur der Eigentuemer hat Zugriff auf die Datei und kann sie 
lesen, schreiben und ausfuehren.
Du kannst die Rechte in oktaler und symbolischer Schreibweise vergeben:
Bei der oktalen Schreibweise ist jedem Rechte ein oktaler Wert 
zugewiesen. Die einzelnen Werte kannst Du zu einer "Rechtemaske" addieren.
 '4000' == Set-User-ID - Bit
 '2000' == Set-Group-ID - Bit
 '1000' == Sticky-Bit
 '0400' == Leserecht fuer den Eigentuemer
 '0200' == Schreibrecht fuer den Eigentuemer
 '0100' == /Ausfuehrungsrecht/ fuer den eigentuemer
 '0040' == Leserecht fuer die Gruppe
 '0020' == Schreibrecht fuer die Gruppe
 '0010' == /Ausfuehrungsrecht/ fuer die Gruppe
 '0004' == Leserecht fuer alle
 '0002' == Schreibrecht fuer alle
 '0001' == /Ausfuehrungsrecht/ fuer alle
wobei man entweder eine Drei- oder vierstelige Zahl verwenden kann 
('0400' == '400'). Man kann sie auch mischen, wobei dann '1' fuer 
Ausfuehren, '2' fuer Schreiben und '4' fuer Lesen steht.
 $ chmod 644 file
wuerde dann also allen Benutzern das Lesen und dem Eigentuemer 
zusaetzlich noch das Beschreiben der Datei "file" erlauben.

 'u' == User (Besitzer)
 'g' == Group (Gruppe)
 'o' == Others (Andere)
 'a' == All (Alles (also 'u', 'g' und 'o')).
 '+' == Rechte hinzufuegen
 '-' == Rechte loeschen
 '=' == Rechte festlegen
 'r' == Read (Lese)
 'w' == Write (Schreiben)
 'x' == Execute (Ausfuehren)
 's' == Sticky (EGID / EUID bei der Ausfuehrung wird geaendert).

Manpages:
chflags(1), chgrp(1), find(1), install(1), chmod(2), stat(2),
umask(2), fts(3), setmode(3), symlink(7), chown(8) und sticky(8).

Hab ich irgendwann mal vor ein paar Jahren im Usenet gepostet.

Zitat

chown matze: {}


Was soll der Doppelpunkt und die ``{}'' darstellen?
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

Stroke

Anfänger

  • »Stroke« ist männlich
  • »Stroke« ist der Autor dieses Themas

Beiträge: 29

Wohnort: Deutschland, nahe Berlin

Beruf: Schüler

  • Nachricht senden

7

21.10.2004, 21:34

Danke Leute! Jetzt hab ich den vollen Durchblick. :)


chown matze: {}

Ich hab mir mal die man-page von chown anzeigen lassen,
und dort stand, dass wenn man nur den Usernamen mit einem Doppelpunkt, oder Punkt übergibt, dessen Login-Benutzergruppe zusätzlich gesetzt wird.
Und das {} kommt vom Befehl find, den ich irgendwie lieb gewonnen habe! :()
Der ganze Befehl hieß:

find /opt/lampp/htdocs/ -name \* -exec chown matze: {} \;

Damit wollte ich den Besitzer aller Dateien ändern. Hat soweit ich weiß auch geklappt.

Mal nebenbei, was ist das "usenet"?

@CIU

Ich wollte ja zuerst auch den Apache der auf der Installations-CD mitbei war verwenden, allerdings habe ich da was nicht ganz hinbekommen. Und da ich XAMPP von Windows kannte, habe ich erstmal das verwendet. :'-)
You don't need a reason to help people.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Stroke« (21.10.2004, 21:39)


strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

8

21.10.2004, 21:48

Zitat

Original von Stroke
chown matze: {}

Ich hab mir mal die man-page von chown anzeigen lassen,
und dort stand, dass wenn man nur den Usernamen mit einem Doppelpunkt, oder Punkt übergibt, dessen Login-Benutzergruppe zusätzlich gesetzt wird.


Ten ways to shoot yourself ins the Fuss.

Zitat

Und das {} kommt vom Befehl find, den ich irgendwie lieb gewonnen habe! :()


Weglassen. ``{..}'' sind der Shell oder Applikationen vorenthalten, die diese Zeichen abarbeiten koennen.

Zitat

Der ganze Befehl hieß:

find /opt/lampp/htdocs/ -name \* -exec chown matze: {} \;


chown -R username.gruppe *

Zitat

Mal nebenbei, was ist das "usenet"?


Nichts interessantes.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

Stroke

Anfänger

  • »Stroke« ist männlich
  • »Stroke« ist der Autor dieses Themas

Beiträge: 29

Wohnort: Deutschland, nahe Berlin

Beruf: Schüler

  • Nachricht senden

9

21.10.2004, 22:16

Okay, also wieder was gelernt... :crazy:

Also ich hab da ein Buch namens "Wie werde ich UNIX-Guru?".
Und dort stand der Befehl so drin (also jetzt nicht direkt mit chown usw.).
Und dort wurde mir erklärt, dass {} in Verbindung mit find für die jeweils gefundenen Dateien steht. Und, dass man somit gleich auf alle gefunden Dateien beliebige Operationen ausführen kann.

Aber was du mir wahrscheinlich noch mit "chown -R username.gruppe *" sagen willst, ist wohl die Tatsache, dass man solche Suchmuster bei allen Befehlen einsetzen kann, die Datei-Namen als Parameter erwarten und diese Suchmuster dann von der Shell ersetzt werden um als eine Liste von zutreffenden Dateien an den entsprechenden Befehl weitergereicht werden? Danke für den Hinweis, ist wohl kürzer und direkter als alles über find zu machen, nicht wahr? =D
You don't need a reason to help people.

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

10

21.10.2004, 22:23

Zitat

Original von Stroke
Also ich hab da ein Buch namens "Wie werde ich UNIX-Guru?".
Und dort stand der Befehl so drin (also jetzt nicht direkt mit chown usw.).
Und dort wurde mir erklärt, dass {} in Verbindung mit find für die jeweils gefundenen Dateien steht. Und, dass man somit gleich auf alle gefunden Dateien beliebige Operationen ausführen kann.


Bei find(1), Ja. Sonst nicht.

Zitat

Aber was du mir wahrscheinlich noch mit "chown -R username.gruppe *" sagen willst, ist wohl die Tatsache, dass man solche Suchmuster bei allen Befehlen einsetzen kann, die Datei-Namen als Parameter erwarten und diese Suchmuster dann von der Shell ersetzt werden um als eine Liste von zutreffenden Dateien an den entsprechenden Befehl weitergereicht werden?


Richtig. man bash | less -p ' Special Parameters'

Zitat

Danke für den Hinweis, ist wohl kürzer und direkter als alles über find zu machen, nicht wahr? =D


Sofern die Shell bzw. das Programm solche Token unterstuetzten, dann ja. Ansonsten eine brauchbare Shell verwenden.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

Thema bewerten