Entwicklungsumgebung/Samba: Unterschied zwischen den Versionen

Aus Delixs
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: __NOTOC__ {{Uberarbeiten}} ---- <div align="right">zurück | Hauptseite</div>)
 
(Anfang)
Zeile 2: Zeile 2:
{{Uberarbeiten}}
{{Uberarbeiten}}


== Fileserver Samba und Quota ==
=== Samba ===
Die Installation erfolgt mit
apt-get install samba samba-common smbclient swat
Während der Installation mussten folgende 2 Fragen beantwortet werden:
[[Bild:Samba01.png | Eingabe der Domäne]]
Es wurde wie bei Arktur 4 als Domänenname '''SCHULE''' gewählt.
[[Bild:Samba02.png | WINS-Einstellungen]]
Zu diesem Menü der Hinweis, dass die Voreinstellung <Nein> war. Der dhcp3-client ist zwar noch nicht installiert, aber das kommt noch.
==== Ziel ====
Es sollen nach dem Vorbild von Arktur4 für jeden Nutzer die Shares "tmp", "pub" und "Vorlagen" zur Verfügung stehen. Außerdem sollen die Webseiten des Intranets komfortabel gepflegt werden können, dazu das Share "intranet". Außerdem soll "ausgewählten" Lehrern der lesende Zugriff auf die Homeverzeichnisse der Schüler erfolgen können. Dazu das Share "fachl" (kenne ich zumindest so von Arktur 3.5). Die "ausgewählten" Lehrer müssen wie bei Arktur dazu in die Gruppe 'fachl' eingetragen werden. Die Gruppe der Admins soll wie bei Arktur4 zudem auch Schreibrecht in den Homeverzeichnissen der Schüler erhalten. Dazu wird das Share "admins" eingerichtet. Außerdem wird wie bei Arktur4 das Share "netlogon" angelegt. Um die Profile einfach händeln zu können, lege ich die wie bei Arktur 3.5 ins
Homeverzeichnis. Deshalb ist dafür kein Share notwendig. Eine Umstellung auf ein eigenes
Profilverzeichnis wie bei Arktur4 kann m.E. problemlos bei der Erstellung von Scripten zum Useranlegen bei Nutzung des LDAPs erfolgen.
==== Zugriff auf die Shares ====
Die Shares "tmp", "pub" und "Vorlagen" werden als Laufwerke t:, p: und V: zur Verfügung gestellt, das Homeverzeichnis als u:, zudem sollen beim Abarbeiten der <code>autoexec.bat</code> die Uhr des Clients gestellt werden. Die Zugriff auf die anderen Shares erfolgt über die Netzwerkumgebung.
==== eigentliche Einrichtung ====
Da nach der mir vorliegenden Literatur die UIDs bis 999 reserviert sind, vergebe ich für die Rechneraccounts die UID von 1000 bis 1999, für die User die IDs von 2000 bis 30000. Da die GIDs bis 999 reserviert sind (sein sollen), vergebe ich ab 1000. Die Lehrer erhalten die GID 1002 und die Schüler die GID 1001. Die Gruppe fachl die GID 1010. Die Rechner bekommen die GID 1007.
Um die beiden Shares "admins" und "fachl" einrichten zu können (zumindest ohne Kopfstände machen zu müssen), kann die Struktur in den Homeverzeichnissen nicht flach sein (wie ich es erst probiert habe). Also nun genauso wie bei Arktur4 strukturiert.
da <code>mmustermann</code> noch nicht nach der neuen Struktur für das /home-Verzeichnis angelegt wurde, wird er als erstes gelöscht.
userdel -r -f mmustermann
folgende Testuser habe ich angelegt:
<source lang="text">
User                    Login      UID:GID      Gruppe      Nebengruppe
------------------      ---------  --------      --------    -----------
Egon Olsen              eolsen      2000:1002      Schueler
Manfred Mustermann      mmustermann 2001:1002      Schueler
Friedrich Schiller      fschiller  2002:1001      Lehrer
Niklaus Wirth          nwirth      2003:1001      Lehrer      fachl
</source>
dazu wurde in der <code>/etc/adduser.conf</code> geändert:
<source lang="text">
GROUPHOMES=yes                      (erzeugt die gewünschte Verzeichnisstruktur)
USERGROUPS=no                        (sonst hätte jeder User eine eigene Gruppe)
USERS_GID=1002                      (entspricht Schüler)
QUOTAUSER="games"                    (für später)
NAME_REGEX="^[a-z][-a-z0-9]*\$?$"    Kommentarzeichen wurde entfernt und Regex geändert!
</source>
dann das Verzeichnis <code>/etc/skel</code> ergänzt:
<source lang="text">
html_public              755 root:root
html_public/index.html  644 root:root
Win95
Win2K
WinXP
WinNT
</source>
dann die Gruppen angelegt mit:
<source lang="text">
  addgroup --gid 1001 lehrer
  addgroup --gid 1002 schueler
  addgroup --gid 1010 fachl
  addgroup --gid 1007 rechner
</source>
dann diese 4 User angelegt (am Beispiel von <code>eolsen</code>):
<source lang="text">
  adduser --uid 2000 --gid 1002 --gecos "Egon Olsen,5a" --disabled-password eolsen
  passwd eolsen
  smbpasswd -a eolsen        # mit -a wird der (Samba-)Account angelegt
</source>
den Lehrer <code>nwirth</code> habe ich so zusätzlich in die Gruppe 'fachl' aufgenommen:
usermod -G fachl nwirth
Account für einen Rechner anlegen
<source lang="text">
  useradd -u 1000 -g 1007 -d /dev/null -s /bin/false privat\$
  passwd -l privat\$
  smbpasswd -a -m privat      # -a für (Samba-)Account anlegen; - m für Maschinenaccount
</source>
es wurden die Verzeichnisse für die Shares angelegt:
<source lang="text">
  /etc/samba/scripts
  /home/adm
  /home/www    ? das müßte doch eigentlich ein SymLink sein?
  /home/tmp
</source>
meine smb.conf sieht erstmal so aus:
<source lang="text">
# Global parameters
[global]
server string      = Schulserver %h
workgroup          = SCHULE
interfaces          = lo  192.168.0.1/255.255.255.0
bind interfaces only = Yes
hosts allow        = 127. 192.168. 10.
unix extensions    = yes
time server        = yes
socket options      = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
case sensitive     = no
preserve case     = yes
short preserve case = yes
logon script        = %a.bat
logon path          = \\%L\%U\%a
logon home          = \\%L\%U\%a
domain logons      = yes
domain master      = yes
os level            = 255
preferred master    = yes
passdb backend      = smbpasswd
unix passwd sync    = yes
        passwd program      = /usr/bin/passwd %u
        passwd chat        = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully*
encrypt passwords  = yes
dns proxy          = no
wins support        = yes
admin users        = adm, root, administrator
guest account      = nobody
mangled names      = no
log level          = 1
veto files          = /*.eml/*.nws/riched20.dll/*.{*}/
[netlogon]
comment     = Anmeldeverzeichnis
browsable     = yes
path             = /etc/samba/scripts
public     = yes
write list     = adm, root
share modes     = no
guest ok     = yes
locking     = no
[homes]
comment     = Stammverzeichnis
browseable     = no
read only     = no
inherit permissions = yes
create mask     = 0755
map hidden     = yes
map system     = yes
hide dot files     = yes
wide links     = no
[tmp]
comment     = Datenaustausch
path     = /home/tmp
read only     = no
public     = yes
create mode     = 0666
directory mode     = 0777
wide links     = no
[pub]
comment     = Unterrichtsmaterial
path     = /home/adm
write list     = adm, root
public     = yes
wide links     = yes
[intranet]
comment     = Intranet-Seiten
path     = /home/www
valid users     = @www
guest ok     = no
writeable     = yes
create mode     = 0664
directory mode     = 0775
force group     = www
[fachl]
comment     = Fachlehrer-Zugang
path     = /home/schueler
valid users     = @fachl
guest ok     = no
writeable     = yes
create mode     = 0777
force group     = fachl
[admins]
comment     = Admin-Freigabe
path     = /home/schueler
valid users     = @admins
guest ok     = no
writeable     = yes
create mode     = 0666
directory mode     = 0777
force group     = admins
</source>
meine <code>Win95.bat</code>:
<source lang="text">
@echo off
net use u: \\serv\homes /yes
net use p: \\serv\pub /yes
net use t: \\serv\tmp /yes
net use v: \\serv\Vorlagen /yes
net time \\serv /set /yes
</source>
Da wir noch keinen Nameserver haben, wurde mit Hilfe der hosts- bzw. lmhosts-Datei dafür gesorgt, dass die Rechner sich verständigen können.
auf dem Win98-Client wurde eine <code>hosts</code>-Datei erstellt mit folgendem Inhalt:
<source lang="text">
127.0.0.1      localhost
192.168.0.1    serv.mydomain.local
</source>
und eine <code>lmhosts</code>-Datei:
<source lang="text">
192.168.0.1    serv
192.168.0.20    privat
</source>
auf dem Server in der <code>/etc/hosts</code>:
192.168.0.20 privat.mydomain.local privat
Samba wurde neu gestartet mit
/etc/init.d/samba restart
Die Anmeldung an Samba lief problemlos
=== Quotas ===
Die Installation erfolgt mit
apt-get install quota
Damit diese aktiv werden, müssen diese in der Datei /etc/fstab eingetragen werden
Diese Datei sieht dann so aus:
<source lang="text">
# /etc/fstab: static file system information.
#
# <file system> <mount point>  <type>  <options>          <dump>  <pass>
proc            /proc          proc    defaults            0      0
/dev/sda1      /              ext3    errors=remount-ro  0      1
/dev/sda6      /home          ext3    defaults,usrquota  0      2
/dev/sda5      none            swap    sw                  0      0
/dev/hda        /media/cdrom0  udf,iso9660 user,noauto    0      0
</source>
Die Partition muss neu gemountet werden mit
mount -o remount /home
Kontrolle das alles geklappt hat:
mount
<source lang="text">
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda6 on /home type ext3 (rw,usrquota)
</source>
die Daten von Quota werden in der Datei <code>/home/aquota.user</code> erstellt mit:
quotacheck -avu
Nun werden die Quotas aktiviert mit
quotaon /home
(abgeschaltet mit <code>quotaoff /home</code>)
einen einzelnen User Quotas zuweisen (das wird auch gebraucht, falls man später Ausnahmen ermöglichen will):
edquota testuser
es geht der MC auf (sehr schön!)
es wurden hier angegeben für den Speicherplatz:
* Hardlimit: 500000 
* Softlimit: 400000
für die Anzahl der Dateien (Inodes):
* Hardlimit: 0
* Softlimit: 0     
Hinweis: 0 bedeutet beliebig viele
Um die Grace Period zu setzen wurde <code>edquota -t</code> aufgerufen.
* für Speicherplatz wurde '21days' eingetragen
'''Testen''':
Um das zu testen kann man als Benutzer 'testuser' eine Datei mit einer Größe von 500 MB erstellen mit den Anweisungen (bei mir Abbruch, da schon 200 MB im Profile):
su - testuser     
dd if=/dev/zero of=~/meine_datei.txt bs=1024 count=500000
Ein Aufruf von <code>quota</code> als User 'testuser' zeigt dann an:
<source lang="text">
Disk quotas for user testuser (uid 2006):
    Filesystem  blocks  quota  limit  grace  files  quota  limit  grace
      /dev/sda6  499992* 400000  500000  20days    443      0      0       
</source>
zum Testen des Hardlimits wurde jetzt noch vom Client eine Datei von über 600 MB (ein ISO) auf den Server kopiert. Es kam folgende Meldung:
[[Bild:Quota01.png | Fehlermeldung beim Überschreiten der Hardwaregrenze]]
das Anzeigen der Quotasituation als root erfolgt mit
repquota -avu
(a für alle, v für verbose und u für userquota)




----
----
<div align="right">[[Delixs:Entwicklungsumgebung|zurück]] | [[Hauptseite]]</div>
<div align="right">[[Delixs:Entwicklungsumgebung|zurück]] | [[Hauptseite]]</div>

Version vom 30. November 2008, 21:06 Uhr

Uberarbeiten Diese Seite sollte nochmals überarbeitet werden. Eine Begründung befindet sich in der Regel unter Diskussion (oben).


Fileserver Samba und Quota

Samba

Die Installation erfolgt mit

apt-get install samba samba-common smbclient swat

Während der Installation mussten folgende 2 Fragen beantwortet werden:

Eingabe der Domäne

Es wurde wie bei Arktur 4 als Domänenname SCHULE gewählt.

WINS-Einstellungen

Zu diesem Menü der Hinweis, dass die Voreinstellung <Nein> war. Der dhcp3-client ist zwar noch nicht installiert, aber das kommt noch.

Ziel

Es sollen nach dem Vorbild von Arktur4 für jeden Nutzer die Shares "tmp", "pub" und "Vorlagen" zur Verfügung stehen. Außerdem sollen die Webseiten des Intranets komfortabel gepflegt werden können, dazu das Share "intranet". Außerdem soll "ausgewählten" Lehrern der lesende Zugriff auf die Homeverzeichnisse der Schüler erfolgen können. Dazu das Share "fachl" (kenne ich zumindest so von Arktur 3.5). Die "ausgewählten" Lehrer müssen wie bei Arktur dazu in die Gruppe 'fachl' eingetragen werden. Die Gruppe der Admins soll wie bei Arktur4 zudem auch Schreibrecht in den Homeverzeichnissen der Schüler erhalten. Dazu wird das Share "admins" eingerichtet. Außerdem wird wie bei Arktur4 das Share "netlogon" angelegt. Um die Profile einfach händeln zu können, lege ich die wie bei Arktur 3.5 ins Homeverzeichnis. Deshalb ist dafür kein Share notwendig. Eine Umstellung auf ein eigenes Profilverzeichnis wie bei Arktur4 kann m.E. problemlos bei der Erstellung von Scripten zum Useranlegen bei Nutzung des LDAPs erfolgen.

Zugriff auf die Shares

Die Shares "tmp", "pub" und "Vorlagen" werden als Laufwerke t:, p: und V: zur Verfügung gestellt, das Homeverzeichnis als u:, zudem sollen beim Abarbeiten der autoexec.bat die Uhr des Clients gestellt werden. Die Zugriff auf die anderen Shares erfolgt über die Netzwerkumgebung.

eigentliche Einrichtung

Da nach der mir vorliegenden Literatur die UIDs bis 999 reserviert sind, vergebe ich für die Rechneraccounts die UID von 1000 bis 1999, für die User die IDs von 2000 bis 30000. Da die GIDs bis 999 reserviert sind (sein sollen), vergebe ich ab 1000. Die Lehrer erhalten die GID 1002 und die Schüler die GID 1001. Die Gruppe fachl die GID 1010. Die Rechner bekommen die GID 1007.

Um die beiden Shares "admins" und "fachl" einrichten zu können (zumindest ohne Kopfstände machen zu müssen), kann die Struktur in den Homeverzeichnissen nicht flach sein (wie ich es erst probiert habe). Also nun genauso wie bei Arktur4 strukturiert.

da mmustermann noch nicht nach der neuen Struktur für das /home-Verzeichnis angelegt wurde, wird er als erstes gelöscht.

userdel -r -f mmustermann

folgende Testuser habe ich angelegt:

<source lang="text"> User Login UID:GID Gruppe Nebengruppe


--------- -------- -------- -----------

Egon Olsen eolsen 2000:1002 Schueler Manfred Mustermann mmustermann 2001:1002 Schueler Friedrich Schiller fschiller 2002:1001 Lehrer Niklaus Wirth nwirth 2003:1001 Lehrer fachl </source>

dazu wurde in der /etc/adduser.conf geändert:

<source lang="text"> GROUPHOMES=yes (erzeugt die gewünschte Verzeichnisstruktur) USERGROUPS=no (sonst hätte jeder User eine eigene Gruppe) USERS_GID=1002 (entspricht Schüler) QUOTAUSER="games" (für später) NAME_REGEX="^[a-z][-a-z0-9]*\$?$" Kommentarzeichen wurde entfernt und Regex geändert! </source>

dann das Verzeichnis /etc/skel ergänzt:

<source lang="text"> html_public 755 root:root html_public/index.html 644 root:root Win95 Win2K WinXP WinNT </source>

dann die Gruppen angelegt mit:

<source lang="text">

 addgroup --gid 1001 lehrer
 addgroup --gid 1002 schueler
 addgroup --gid 1010 fachl
 addgroup --gid 1007 rechner

</source>

dann diese 4 User angelegt (am Beispiel von eolsen):

<source lang="text">

 adduser --uid 2000 --gid 1002 --gecos "Egon Olsen,5a" --disabled-password eolsen
 passwd eolsen
 smbpasswd -a eolsen         # mit -a wird der (Samba-)Account angelegt

</source>

den Lehrer nwirth habe ich so zusätzlich in die Gruppe 'fachl' aufgenommen:

usermod -G fachl nwirth


Account für einen Rechner anlegen

<source lang="text">

 useradd -u 1000 -g 1007 -d /dev/null -s /bin/false privat\$
 passwd -l privat\$
 smbpasswd -a -m privat      # -a für (Samba-)Account anlegen; - m für Maschinenaccount

</source>


es wurden die Verzeichnisse für die Shares angelegt: <source lang="text">

 /etc/samba/scripts
 /home/adm
 /home/www     ? das müßte doch eigentlich ein SymLink sein?
 /home/tmp

</source>


meine smb.conf sieht erstmal so aus:

<source lang="text">

  1. Global parameters

[global] server string = Schulserver %h workgroup = SCHULE interfaces = lo 192.168.0.1/255.255.255.0 bind interfaces only = Yes hosts allow = 127. 192.168. 10. unix extensions = yes time server = yes socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE case sensitive = no preserve case = yes short preserve case = yes

logon script = %a.bat logon path = \\%L\%U\%a logon home = \\%L\%U\%a domain logons = yes domain master = yes os level = 255 preferred master = yes

passdb backend = smbpasswd unix passwd sync = yes

       passwd program      = /usr/bin/passwd %u
       passwd chat         = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully*

encrypt passwords = yes

dns proxy = no wins support = yes admin users = adm, root, administrator guest account = nobody mangled names = no log level = 1 veto files = /*.eml/*.nws/riched20.dll/*.{*}/

[netlogon] comment = Anmeldeverzeichnis browsable = yes path = /etc/samba/scripts public = yes write list = adm, root share modes = no guest ok = yes locking = no

[homes] comment = Stammverzeichnis browseable = no read only = no inherit permissions = yes create mask = 0755 map hidden = yes map system = yes hide dot files = yes wide links = no

[tmp] comment = Datenaustausch path = /home/tmp read only = no public = yes create mode = 0666 directory mode = 0777 wide links = no

[pub] comment = Unterrichtsmaterial path = /home/adm write list = adm, root public = yes wide links = yes

[intranet] comment = Intranet-Seiten path = /home/www valid users = @www guest ok = no writeable = yes create mode = 0664 directory mode = 0775 force group = www

[fachl] comment = Fachlehrer-Zugang path = /home/schueler valid users = @fachl guest ok = no writeable = yes create mode = 0777 force group = fachl

[admins] comment = Admin-Freigabe path = /home/schueler valid users = @admins guest ok = no writeable = yes create mode = 0666 directory mode = 0777 force group = admins </source>

meine Win95.bat:

<source lang="text"> @echo off net use u: \\serv\homes /yes net use p: \\serv\pub /yes net use t: \\serv\tmp /yes net use v: \\serv\Vorlagen /yes net time \\serv /set /yes </source>

Da wir noch keinen Nameserver haben, wurde mit Hilfe der hosts- bzw. lmhosts-Datei dafür gesorgt, dass die Rechner sich verständigen können.

auf dem Win98-Client wurde eine hosts-Datei erstellt mit folgendem Inhalt:

<source lang="text"> 127.0.0.1 localhost 192.168.0.1 serv.mydomain.local </source>

und eine lmhosts-Datei:

<source lang="text"> 192.168.0.1 serv 192.168.0.20 privat </source>

auf dem Server in der /etc/hosts:

192.168.0.20 privat.mydomain.local privat 


Samba wurde neu gestartet mit

/etc/init.d/samba restart

Die Anmeldung an Samba lief problemlos


Quotas

Die Installation erfolgt mit

apt-get install quota

Damit diese aktiv werden, müssen diese in der Datei /etc/fstab eingetragen werden

Diese Datei sieht dann so aus:

<source lang="text">

  1. /etc/fstab: static file system information.
  2. <file system> <mount point> <type> <options> <dump> <pass>

proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro 0 1 /dev/sda6 /home ext3 defaults,usrquota 0 2 /dev/sda5 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 </source>

Die Partition muss neu gemountet werden mit

mount -o remount /home


Kontrolle das alles geklappt hat:

mount

<source lang="text"> /dev/sda1 on / type ext3 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) procbususb on /proc/bus/usb type usbfs (rw) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/sda6 on /home type ext3 (rw,usrquota) </source>

die Daten von Quota werden in der Datei /home/aquota.user erstellt mit:

quotacheck -avu


Nun werden die Quotas aktiviert mit

quotaon /home

(abgeschaltet mit quotaoff /home)

einen einzelnen User Quotas zuweisen (das wird auch gebraucht, falls man später Ausnahmen ermöglichen will):

edquota testuser

es geht der MC auf (sehr schön!)

es wurden hier angegeben für den Speicherplatz:

  • Hardlimit: 500000
  • Softlimit: 400000


für die Anzahl der Dateien (Inodes):

  • Hardlimit: 0
  • Softlimit: 0

Hinweis: 0 bedeutet beliebig viele

Um die Grace Period zu setzen wurde edquota -t aufgerufen.

  • für Speicherplatz wurde '21days' eingetragen


Testen:

Um das zu testen kann man als Benutzer 'testuser' eine Datei mit einer Größe von 500 MB erstellen mit den Anweisungen (bei mir Abbruch, da schon 200 MB im Profile):

su - testuser       
dd if=/dev/zero of=~/meine_datei.txt bs=1024 count=500000 

Ein Aufruf von quota als User 'testuser' zeigt dann an:

<source lang="text"> Disk quotas for user testuser (uid 2006):

    Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
     /dev/sda6  499992* 400000  500000  20days     443       0       0        

</source>

zum Testen des Hardlimits wurde jetzt noch vom Client eine Datei von über 600 MB (ein ISO) auf den Server kopiert. Es kam folgende Meldung:

Fehlermeldung beim Überschreiten der Hardwaregrenze

das Anzeigen der Quotasituation als root erfolgt mit

repquota -avu

(a für alle, v für verbose und u für userquota)



zurück | Hauptseite