Clark's Home page

Tecnicismi vari di un Sysadmin Linux ma anche qualcosa della sua vita

sibilla —

Sibilla è una delle macchine piu’ stupide che io abbia mai fatto ma nel contempo anche una delle più utili all’interno della lan aziendale, il suo scopo è molto banalmente quello di mettere a disposizione dell’utenza una zona di spazio libera a tutti in lettura e scrittura in modo tale che sia facile per tutti scambiarsi dei files di qualsiasi natura siano, dalla presentazione del commerciale che finisce alla produzione piuttosto che all’ufficio tecnico piuttosto che alle fotografie fatte dall’assistenza durante un intervento per documentare lo stato di una macchina.

La macchina in se stessa è un vecchio P3 a 500 Mhz con 128 Mb di RAM  che per fare quello che deve ne avanza (in origine era un K6-2) con installata una Lenny (Debian oldstable) e ovviamente samba.
Per pura forza dell’abitudine ho fatto un partizionamneto del disco con /boot / /usr /var /home ma in linea di principio si potrebbero fare solo 2 partizioni una / e una /home dove andremo a sistemare la nostra zona di scambio.
A macchina  base realizzata andiamo ad aggiungere al file /etc/passwd la seguente riga:

utonto::499:499:utente generico scambio:/dev/null:/dev/null
definendo l’UID utonto senza password senza home e senza shell.

in dettaglio di seguito il file smb.conf che è quello che definisce il servizio di samba.

smb.conf

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = OCEANO

# server string is the equivalent of the NT Description field
server string = scambio dati utonti (Samba %v)

# Windows Internet Name Serving Support Section:
# WINS Support – Tells the NMBD component of Samba to enable its WINS Server
wins support = no

# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no
local master = no
preferred master = no
domain master = no
domain logons = no
time server = no
os level = 0
### con questa serie di opzioni definiamo che questp server samba non si può eleggere a PDC  in nessun modo e in nessun caso
#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m

# Put a capping on the size of the log files (in Kb).
max log size = 1000

# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
syslog = 1

# Do something sensible when Samba crashes: mail the admin a backtrace
panic action = /usr/share/samba/panic-action %d

### opzioni amministrative

####### Authentication #######

# “security = user” is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/ServerType.html in the samba-doc
# package for details.
security = share

### definiamo il livello di sicurezza del server a share, con lo share-level security, il server accetta solo una password senza un nome utente specifico del client. Il server si aspetta una password per ogni condivisione, indipendente dal nome utente.

# You may wish to use password encryption.  See the section on
# ‘encrypt passwords’ in the smb.conf(5) manpage before enabling.
encrypt passwords = true

### praticamente obbligatorio anche se utonto non ha password

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam

### Il tipo di backend per le pw
guest account = utonto
invalid users = root

###Contestualmente diciamo che utonto è ‘ ammesso e che root no
# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Augustin Luton <aluton@hybrigenics.fr> for
# sending the correct chat script for the passwd program in Debian Potato).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .

### non dovrebbe in teoria servire ma dato che abbiamo aggiunto utonto in passwd aiuta anche lui

load printers = no
show add printer wizard = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes

### per evitare di vedere gli errori di cups

#======================= Share Definitions =======================
[scambio]
comment = Directory di scambio dati
browseable = yes
path = /home/samba/scambio
guest ok = yes
guest only = yes
public = yes
writable = yes
create mode = 0777
directory mode = 0777

### definisco la share vera e propria

A  questo punto siamo pronti per creare l’albero delle directory  in /home

mkdir -p /home/samba/scambio

e qui per mia comodità ho creato una serie di directory con la login di ogni utente in modo tale che l’utente clark possa copiare dei files nella directory dell’utente rossi piuttosto che dell’utente verdi  e ovviamente riceverne, quind come ultimo passo ho dato un:

chmod  -R 777 * in scambio e a questo punto davvero possono fare quello che gli pare.

Il problema che subito s’è palesato anzi è stata una riflessione fatta prima di fare il tutto,  è stata “I know my chickens…” se gli metto a disposizione un  affare del genere nel tempo di una settimana e’ pieno di tutte le porcherie del mondo…  quindi ho preparato  lo script scure.sh che alle 00.01 in cron cancella tutto quello che c’è nelle directory.

Altra riflessione fatta sempre conoscendo i miei utonti è stata:” figurati se gli dico di navigare la rete interna per trovare lo scambio cosa mi rispondono…” in questo caso mi ha soccorso un’altro script sul PDC (samba ovviamente) che mappa la share come un unità disco di rete.

Questo script contiene semplicemente questa riga:

net use W: \\sibilla\scambio

N.B. gli script di logon di samba vanno scritti con notepad su una macchina windows per via del fine linea che e’ diverso a seconda di unix windows macos


Categorised as: Samba | Work

Comments are disabled on this post


Comments are closed.