SAMBA, utente root, permessi fallati !!!!

15 risposte [Ultimo contenuto]
Ritratto di itaTheSpeedGhost
itaTheSpeedGhost
(Junior)
Offline
Junior
Iscritto: 02/10/2015
Messaggi: 22

Oh mie salvatori, perchè solo a me capitano cose strane le cui risposte sul web non trovo?

Situazione: Debian 8 server, nuovo di pacca, nessuna modifica o installazione, installo samba, modifico il file smb.conf come dopo posterò, riavvio i due servizi: "service smbd restart" ed "service nmbd restart".

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ServerD
#security = share
#share modes = yes
security = user
 
#============================ Share Definitions #==============================
 
[Radice]
path = /
security = user
#browsable = yes
writable = yes
read only = no
#public = yes
#create mask = 0755
#directory mask = 0755
valid users = adm , root

Premetto che come tutti potete vedere ciò che sto facendo è pericoloso e pure bruttino, ma essendo sicuro che nella rete lan ci sono solo io ed il server, per di più i miei unici canali di comunicazione con lui sono i due protocollo ssh e samba (ftp preferirei lasciarlo in sospeso), mi viene molto comodo poter accedere all'intero sistema attraverso samba.

Tornando al problema, attraverso un winzoz la connessione come risorsa di rete avviene perfettamente, autenticazione e visualizzazione della cartella "Radice", che posso aprire ed leggere, ma qui inizia la falla: posso solo scrivere, non modificare, non eliminare e nemmeno leggere sia file che cartelle.
Eppure sono loggato come utente root, studiando un pochino ho capito che i permessi di samba in realtà sono strettamente legati a quelli del sistema, quindi quando si presentano errori di questo tipo è perchè neanche da sistema si hanno quei permessi, eppure ad esempio tramite ssh, ovviamente ho tutti i permessi che voglio con utente root.

Posso anche dirvi che a meno che non ci sia stato un aggiornamento del pacchetto samba, quel file smb.conf funziona perfettamente, siccome è lo stesso di un altro sistema uguale, però di 3 mesi fa circa.
Ed in ogni caso ho già provato a seguire vari post su problemi dei privilegi con samba ma nulla.

//aggiungo un informazione//
nel frattempo ho strutturato altre condivisioni samba, preciso che funziona tutto se alla cartella in condivisione vengono assegnati i privilegi, esempio stupido: nella cartella "paperino" -> chmod -R 777 paperino/
Il vero problema è che se io accedo tramite root, DEVO avere i privilegi su "tutto" e invece non è così... e non mi pare il caso neanche di provare a fare un chmod -R 777 sulla radice ("/") ...

Qualche delucidazione? Grazie Smile

Ritratto di mayers81
mayers81
(Junior)
Offline
Junior
Iscritto: 18/12/2015
Messaggi: 24

Eccoti qua la soluzione

[Ops_Docs]
path = /home/shares
valid users = jferguson rosemary
admin users = jferguson rosemary
read list = jferguson rosemary
write list = jferguson rosemary
force user = root
force group = sambashare
writeable = Yes
create mask = 0774
directory mask = 0775
inherit permissions = Yes

Oltre a samba devi sempre considerare i permessi su file se noti quando installi samba si crea un gruppo che si chiama sambashare

A quel punto battezzi una percorso per le condivisioni esempio /home/shares e fai un bel

chown root:sambashare -R /home/shares

a quel punto utilizzando le opzioni

force user = root
force group = sambashare

Samba utilizzerà quel utente e quel gruppo in quel percorso e tu puoi gestire i permessi tramite le opzioni:

valid users = jferguson rosemary
admin users = jferguson rosemary
read list = jferguson rosemary
write list = jferguson rosemary

Mi spiego con la configurazione sopra indicata l'utente root non funziona perché non è ne valid users ne admin users ne read list ne write list.

valid users = adm root
admin users = adm root
read list = adm root
write list = adm root

Cosi gli utenti adm e root hanno il controllo completo della cartella

La cosa cmq strana e che tu abbia il problema con l'utente root posta il risultato di ls -al / per favore

Ritratto di itaTheSpeedGhost
itaTheSpeedGhost
(Junior)
Offline
Junior
Iscritto: 02/10/2015
Messaggi: 22

Oks, la soluzione che mi hai proposto però è estendibile al livello radice? a me serve poter condividere in questo modo tutte le cartelle del server quindi il percorso "/" e non posso di certo lanciare il comando "chown root:sambashare -R /" che cambierebbe il proprietario di tutti i file e cartelle del sistema no?

ecco il risultato del comando che mi hai chiesto:

drwxr-xr-x  23 root root  4096 gen  6 18:02 .
drwxr-xr-x  23 root root  4096 gen  6 18:02 ..
drwxrwxr-x   2 root root  4096 gen  6 17:42 bin
drwxr-xr-x   3 root root  4096 gen  6 17:46 boot
drwxr-xr-x  16 root root  2860 gen  7 13:42 dev
drwxr-xr-x  98 root root  4096 gen  7 13:43 etc
drwxr-xr-x   4 root root  4096 gen  6 18:07 home
lrwxrwxrwx   1 root root    33 gen  6 17:33 initrd.img -> /boot/initrd.img-3.16.                                                    0-4-686-pae
drwxr-xr-x  14 root root  4096 gen  6 17:37 lib
drwx------   2 root root 16384 gen  6 17:26 lost+found
drwxr-xr-x   3 root root  4096 gen  6 17:26 media
drwxr-xr-x   2 root root  4096 gen  6 17:28 mnt
drwxr-xr-x   2 root root  4096 gen  6 17:28 opt
dr-xr-xr-x 105 root root     0 gen  7 13:42 proc
drwx------   2 root root  4096 gen  6 17:50 root
drwxr-xr-x  20 root root   760 gen  7 13:43 run
drwxr-xr-x   2 root root  4096 gen  6 17:48 sbin
drwxr-xr-x   2 root root  4096 gen  6 17:28 srv
dr-xr-xr-x  13 root root     0 gen  7 13:42 sys
drwxrwxrwt   8 root root  4096 gen  7 14:34 tmp
drwxr-xr-x  10 root root  4096 gen  6 17:28 usr
drwxr-xr-x  12 root root  4096 gen  6 17:39 var
lrwxrwxrwx   1 root root    29 gen  6 17:33 vmlinuz -> boot/vmlinuz-3.16.0-4-686                                                    -pae

Ritratto di mayers81
mayers81
(Junior)
Offline
Junior
Iscritto: 18/12/2015
Messaggi: 24

https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

E sufficiente sostituire root a sambashare nella direttiva "force group ="

Ritratto di itaTheSpeedGhost
itaTheSpeedGhost
(Junior)
Offline
Junior
Iscritto: 02/10/2015
Messaggi: 22

Se ho capito bene intendi sempre nel file di configurazione smb.conf?
tipo cosi:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ServerD
#security = share
#share modes = yes
security = user
 
#============================ Share Definitions #==============================
 
[Radice]
path = /
security = user
#browsable = yes
writable = yes
read only = no
#public = yes
#create mask = 0755
#directory mask = 0755
valid users = adm , root
force group = root

ho già provato, a dire il vero ho provato un po tutte le impostazioni di quel tipo, ad esempio: "force group = root", "force user = root", "admin users" oppure inserire l' utente, con cui si esegue l'accesso, nella "write list" e nella "read list", ma nulla di nulla il problema persiste.

Ripeto secondo me non è colpa del file di configurazione smb.conf è più come se il servizio samba non abbia le autorizzazioni per poterle a sua volta dare a chi logga attraverso il suo protocollo:
cioè a livello terra-terra se io tramite il protocollo samba chiedo l'eliminazione di un file, il servizio samba che sta girando sul server, analizza se io ho l'autorizzazione a fare quell'operazione, dopo di che, se la verifica risulta positiva, esegue l'operazione. Giusto?

Se il procedimento, molto semplificato sopra citato, è quello con cui samba opera allora credo che la mia falla sia, che il mio servizio samba non ha le autorizzazioni per eseguire quell'operazione... perchè in realtà anche se io loggo come root tramite samba, l'operazione la esegue poi samba da parte di root oppure no?

Quindi ora come faccio a vedere quali permessi ha il servizio samba sul file-system? e come posso modificarli?

Se invece la mia teoria su come opera samba è insensata o sbagliata ditemelo pure Big Grin

Ritratto di mayers81
mayers81
(Junior)
Offline
Junior
Iscritto: 18/12/2015
Messaggi: 24

Scusa la domanda ovviamente hai eseguito

smbpasswd root ???

Se esegui

testparm ti da qualche errore????

Ritratto di itaTheSpeedGhost
itaTheSpeedGhost
(Junior)
Offline
Junior
Iscritto: 02/10/2015
Messaggi: 22

Si, anche se io nel comando ho inserito anche -a in questo modo-> "smbpasswd -a root"

Avevo eseguito testparm, ed il risultato era nessun errore, ho ricaricato il file smb.conf con cui avevo iniziato questo post (anche se gli ho apportato una modifica: l'aggiunzione della riga "force user = root") e dopo di che ho rieseguito il test, questo è il risultato:

Load smb config files from /etc/samba/smb.conf
Processing section "[Radice]"
Global parameter security found in service section!
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
 
[global]
        server string = Samba Server %v
        idmap config * : backend = tdb
 
[Radice]
        path = /
        valid users = root
        force user = root
        read only = No

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

Sembrerebbe lamentarsi che il parametro security può essere usato solo nella sezione [global] e non all'interno di uno share.

Ritratto di itaTheSpeedGhost
itaTheSpeedGhost
(Junior)
Offline
Junior
Iscritto: 02/10/2015
Messaggi: 22

o.O avevo frainteso il significato di quella riga, comunque aggiustato anche questo il problema persiste.

Ho anche provato a dare un "chmod 777 /" ma nulla, dopo di che ho ripristinato con "chmod 755 /"

Inizia a venirmi un dubbio, può essere colpa del client?
provando ad accedere alla cartella "var"
L'errore che il client mi visualizza è il seguente:

Windows: impossibile accedere a \\lanip\Radice\var
Autorizzazioni insufficienti per accedere a \\lanip\Radice\var. Contattare l'amministratore della rete per richiedere l'accesso.

Dove nel percorso di rete la parola "lanip" è l'ip statico del server o il nome che samba gli fornisce come maschera.

A me sembra il solito errore generale di accesso negato, quindi dovuto ad un rifiuto del server, voi cosa ne pensate?

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

Ma qual è il nome utente che il client trasmette al server? Perché se non è "root" o "adm", la riga "valid users" gli nega l'accesso. O sbaglio?

Ritratto di mayers81
mayers81
(Junior)
Offline
Junior
Iscritto: 18/12/2015
Messaggi: 24

Si è corretto la riga valid users nega l'accesso se non sei root a adm.

Domanda il sistema prova ad effettuare single sign on e ti restituisce errore

Oppure

il sistema prova ad effettuare single sign on e ti compare schermata con nome utente e password?

Il server ed il client sono nello stesso Workgroup?

il client prova ad accedere al server mezzo nome dell server \\server o mezzo ip \\192.168.X.X?

In merito all'ultima domanda verifica che l'ora del server sia corretta