====== Linux-Grundlagen ======
Grundlagen und Wissenswertes zu Linux ([[archive:Unix-Umzug_2011|ehemals Unix]]).
===== Dot-Dateien =====
Der Name einer //Dot-Datei// beginnt mit einem Punkt '.', daher diese Bezeichnung. Unter Unix/Linux entsprechen //Dot-Dateien// den versteckten Dateien unter Windows und bilden in der Regel im Home-Verzeichnis das //Profil// eines Benutzers.
==== C-Shell ====
Die //C-Shell// (''%%tcsh%%'') kennt folgende //Dot-Dateien//, die zu verschiedenen Zeitpunkten abgearbeitet werden.
^ beim Einloggen: ^ jede weitere Shell: ^ beim Ausloggen: ^
|
* ''%%/etc/csh.cshrc%%''
* ''%%/etc/csh.login%%''
* ''%%~/.cshrc%%''
* ''%%~/.login%%''
|
* ''%%/etc/csh.cshrc%%''
* ''%%~/.cshrc%%''
|
* ''%%/etc/csh/logout%%''
* ''%%~/.logout%%''
|
==== Bourne-Shell ====
Die //Bourne (again) Shell// (''%%bash%%'') verwendet folgende //Dot-Dateien//.
^ beim Einloggen: ^ jede weitere Shell: ^ beim Ausloggen: ^
|
* ''%%/etc/profile%%''
* ''%%~/.bash_profile%%''
* ''%%~/.bash_login%%''
* ''%%~/.profile%%''
|
* ''%%/etc/bash.bashrc%%''
* ''%%~/.bashrc%%''
|
* ''%%/etc/bash.bash_logout%%''
* ''%%~/.bash_logout%%''
|
**Anmerkung:** Damit eine ''%%bashrc%%''-Datei auch beim Einloggen verarbeitet wird, muss diese explizit von einer ''%%profile%%''-Datei eingebunden werden.
===== Dateirechte =====
==== Mögliche Rechte ====
Die Dateirechte (File Permissions) legen fest, wer was mit einer Datei machen kann. Die drei grundlegenden Rechte sind:
r read
w write
x execute
Die ''%%r%%'', ''%%w%%'' und ''%%x%%'' Rechte können unabhängig voneinander für
u user/owner
g group
o others
vergeben werden.
==== Rechte anzeigen ====
Mit dem ''%%ls -l%%'' Kommando werden Dateien mit ihren Rechten angezeigt, z.B:
-rw-r--r-- 1 proske student 397 Feb 16 12:25 datei
-rw-r--r-- 1 proske student 1423 Feb 20 11:25 nocheine
-rwxr-xr-- 1 proske student 1275 Feb 16 12:25 skript
drwxr-xr-x 3 proske student 512 Feb 20 11:18 verzeichnis
Uns interessiert nun die erste Spalte. Der allererste Buchstabe zeigt an, ob es sich um ein Directory (d) handelt oder nicht (-). Nun kommen drei dreier Gruppen, für den ''%%user%%'', die ''%%group%%'' und für ''%%others%%''. Die Reihenfolge der Flags ist immer gleich: ''%%rwx%%'', ist eins dieser Flags nicht gesetzt, so steht an seiner Stelle ein Strich: ''%%-%%''
Im obigen Beispiel kann ''%%datei%%'' von allen gelesen, aber nur vom Besitzer geschrieben werden. Das ''%%skript%%'' ist vom Besitzer ''%%proske%%'' und der Gruppe ''%%student%%'' ausführbar, nicht aber von anderen Benutzern und Gruppen.
Auch für Verzeichnisse gibt es das ''%%execute%%'' Recht, das bedeutet, dass man mit dem Verzeichnis im Pfad arbeiten kann. Beispielsweise um in das Verzeichnis wechseln oder auf eine Datei mit bekanntem Namen zuzugreifen. Ohne das ''%%read%%'' Recht ist aber eine Auflistung des Verzeichnisinhalts nicht möglich.
==== Rechte ändern ====
Zum Ändern der Zugriffsrechte gibt es den Befehl ''%%chmod%%''. Die Syntax ist simpel:
% chmod
=== Symbolische Angabe ===
Zum Beispiel:
% chmod +x skript
setzt das ''%%execute%%'' Recht bei der Datei ''%%skript%%'', und zwar für Alle, den Eigentümer, die Gruppe und den Rest.
% chmod o-x skript
entzieht den ''%%others%%'' das ''%%execute%%'' Recht. Man kann auch alle möglichen Rechte auf einmal ändern, z.B.:
% chmod ug+wx,o+x skript
=== Oktale Angabe ===
Eine andere Art die Rechte anzugeben ist die //oktale// Form. Dabei bildet man die logische Summe aus den Bit-Werten der Rechte.
0400,0200,0100 read, write bzw. execute permission für den owner
0040,0020,0010 read, write bzw. execute permission für die group
0004,0002,0001 read, write bzw. execute permission für die others
% chmod ug+rwx,o+rx skript → % chmod 0775 skript
==== umask ====
Wichtig ist diese //oktale// Notation für die sogenannte ''%%umask%%'' - ein Wert der festlegt, welche Rechte einer neuen Datei **entzogen** werden sollen. So legt ein ''%%umask%%''-Wert von ''%%022%%'' fest, dass niemand das ''%%write%%'' Recht haben soll, außer dem Besitzer.
0777 - 0022 = 0755 → -rwxr-xr-x
Vorgegeben wird der ''%%umask%%''-Wert beim Einloggen in einer der o.g. //Dot-Dateien//.
===== Man-Pages =====
Unter Unix/Linux kann durch das Konsolen-Kommando
% man
zu fast jedem auf dem System verfügbaren Befehl die zugehörige //Manual Page// aufgerufen werden, welche den Befehl und die verfügbaren Parameter und Optionen erklärt. Diese //Man-Pages// sind auch online verfügbar, z.B.:
* [[http://www.tldp.org/manpages/man.html|Linux Man-Pages]] bei TLDP.org
* Oracle (ehemals Sun) [[http://www.oracle.com/technetwork/documentation/solaris-10-192992.html#hic|Solaris Man-Pages]]
* [[http://docs.hp.com/hpux/os/man_pages.html|HP-UNIX Man-Pages]]
* [[http://techpubs.sgi.com/library/tpl/cgi-bin/init.cgi|IRIX Man-Pages]]
* [[http://www.gsp.com/support/man/|FreeBDS Man-Pages]]
* [[http://www.openbsd.org/cgi-bin/man.cgi|OpenBSD Man-Pages]]
* [[http://man.netbsd.org/|NetBSD Man-Pages]]
===== Siehe auch =====
* [[public:FAQ_Linux|FAQ Linux]]
* [[archive:Unix-Umzug_2011|Unix-Umzug 2011]] (Umstellung auf Debian-Linux)
* {{wiki:UnixReferenz.pdf|UNIX-Grundlagen-Referenz}} von Stefan Zimmermann
===== Weblinks =====
* [[http://de.wikipedia.org/wiki/Linux|Wikipedia: Linux]]
* [[http://de.wikipedia.org/wiki/Unix|Wikipedia: Unix]]
* [[http://de.linwiki.org/|LinWiki]]
* [[http://www.feyrer.de/|Homepage von Hubert Feyrer]]
* [[http://de.wikipedia.org/wiki/Oktalsystem|Wikipedia: Oktalsystem]]