View previous topic :: View next topic |
Author |
Message |
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Sat Jan 22, 2011 1:57 pm Post subject: [RISOLTO] aMule & permessi |
|
|
Salve,
la domanda potrà sembrare un pò stupida ma per motivi di praticità vorrei poter accedere e scriverei download di aMule anche da utenti appartenenti allo stesso gruppo e non solo dall'utente p2p.
E' quindi possibile costringere aMuled a far scrivere i file con permssi differenti ?
Grazie
Last edited by Shocker580 on Wed Feb 16, 2011 7:21 pm; edited 1 time in total |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Mon Jan 24, 2011 1:10 pm Post subject: Re: aMule & permessi |
|
|
Shocker580 wrote: | vorrei poter accedere e scriverei download di aMule anche da utenti appartenenti allo stesso gruppo e non solo dall'utente p2p | giuro che non riesco a capire. Sarà l'età... Shocker580 wrote: | E' quindi possibile costringere aMuled a far scrivere i file con permssi differenti ? | Questa è un poco più comprensibile, scrutando nella mia sfera di cristallo mi par di scorgere qualcosa. Probabile che non abbia funzionato, visto che il nipotino pestifero me la ha schiantata in terra ancora una volta, ma facciamo comunque un tentativo:
Tieni conto che poichè amule non è il massimo per la sicurezza gira con una uid dedicata (veramente c'è chi suggerisce di sbatterlo in chroot, blidato, ma sono il primo a non curarmene più di tanto e si pongono altri problemi per l'esecuzione) e non è una buona cosa che gli utenti normali (o peggio i wheel) possano eseguire impunemente i file scaricati. Pertanto uomo avvisato... mezzo ammazzato.
Soluzione 1: usi chmod +s o le ACL, un tantino brutale, pone qualche problema se usi selinux (se non ricordo male, non sono troppo affidabile ultimamente) e vale per la singola dir, of course;
Soluzione 2: imposti il misconosciuto e dimenticato umask a qualcosa del genere a=rx,ug+w (caveat emptor: io ho una partizione dedicata montata con nodev,noexec per lo user p2p, per questo me ne frego ed ho messo il comando in /etc/init.d/amuled non ho modificato profile o login.defs);
Soluzione 3: (per accesso via SMB) ti rivolgi a qualcosa del genere smb.conf: | [downloads]
path = /home/p2p
public = yes
writable = yes
force user = p2p
printable = no
create mask = 0770 | esiste anche modo per impostare separatamente dir e file ma lascio a te il piacere di scoprirlo.
uso felice di amule wrote: | da xterm: | USE="daemon geoip gtk nls remote unicode -debug -stats -upnp" emerge -1N amule
passwd p2p
usermod -U -s /bin/bash p2p
xhost +
su -c amule p2p | Configuri e da xterm: | xhost -
usermod -L -s /sbin/nologin p2p |
|
Ti lascio a riflettere sulle implicazioni in termini di sicurezza e praticità di quanto ti ho scritto con il solito avviso che i cocci sono tuoi e te li tieni.
E che sono in vena di scherzare (fare l'imbecille) quindi non leggere come un rimbrotto nulla di quanto sopra (al massimo come un non troppo velato RTFM od a cercare precedenti discussioni sull'argomento permessi in quanto, per l'innata pigrizia, s'indulge troppo a non voler ripetere le stesse cose).
Infine ti lascio un sibillino rinvio al "Mago" di John Fowles (cercansi copia online, in italiano, dei suoi scritti, in particolare dei primi due e dell'adattamento cinematografico)... _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Mon Jan 24, 2011 7:20 pm Post subject: |
|
|
Inizio col dire che il mio linguaggio poco umano a volte deriva dalla tastiera wireless che uso che tende a saltare con piacere i tasti che digito come nell'esempio soprastante "scriverei download" = scrivere_i_download".
Concordando sull'idea che effettivamente è pericoloso l'uso di aMule e con l'idea che più avanti potrei fare anch'io un chroot ora vorrei analizzare o meglio riuscire a capire le tue soluzioni.
1. chmod +s a cosa porta ? +s non serve per l'userid ?
2. Mi sembra un'ottima idea ma dove posso impostarlo per l'utente p2p ? In oltre, nodev a cosa serve in fstab ?
3. L'idea di SMB è ottima e infatti è già così configurata per quella directory ma chiaramente i file già scritti da p2p non saranno modificabili.
Quello che non capisco è il tuo "uso felice di amule", a cosa portano quei comandi ?
Grazie |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Mon Jan 24, 2011 8:49 pm Post subject: |
|
|
meno male che l'avevo sottolineato che ero in vena di fare il cretino...
1: chmod g+s ,prova ad impostarlo per una directory, aggiungi gli utenti che ti interssano a p2p e vedrai cosa succede quando creano un file. Alle volte fa bene fare qualche tentativo.
Per le acl cerca che sono pigro.
2: nodev e noexec bloccano l'uso dei device o l'esecuzione dei file indipendentemente dagli attributi scritti sul disco. Se hai una partizione seprata prova, come sopra.
umask non lo imposti per l'utente p2p (in questo caso lo si mette in .profile od in .bashrc, può andar bene per un utente "normale") o globalmente (e ti ho detto quali sono i file) ma lo imposti per amule inserendo il comando nello shell script /etc/init.d/amuled prima della chiamata ad amuled. Più semplice di così...
3: force user fa si che chi accede tramite smb acceda come utente p2p e create mask fa si che siano creati i file con attributo 0770 leggibili, scrivibili ed eseguibili al proprietario ed al gruppo. Mi pare sin troppo chiaro. Se poi vuoi che ti indichi i comandi per sistemare i file già presenti... ti rispondo sul serio che è il caso di leggerti il fottuto manuale ed usare la tastiera.
Forse ho dimenticato di dirti che le soluzioni non sono alternative ma complementari, mea culpa.
Il chroot non risolve molto, ero sarcastico, dovresti avere doppi eseguibili e ti poni ulteriori problemi (noexec te lo scordi), usa hardening gcc+pax piuttosto (a quel punto puoi anche usare grsec per l'hardening del chroot, a queste condizioni forse serve a qualcosa).
Quei comandi ti servono per configurare amule (od anche il torrent od installare jdownloader p2p lo puoi uare anche per altri programmi) per scegliere l'interfaccia web, scegliere /bin/false per preview o browser, il nick, se vuoi la preallocazione dei file, per disabilitare/abilitare le statistiche, abilitare l'utente da remoto con diritti limitati, impostare una password (in amule, è preferibile averle tutte e due) o persino far avviare amuleweb in automatico (senza dover usare lo script in init.d, deprecabile pratica invece, comunque è meglio utilizzare amulegui) etc. ond anche balmente per bilitare una shell ed utilizzare i comandi nell'utente p2p.
In generale sarebbe bene lanciare sempre e comunque usermod -L -s /sbin/nologin p2p, non si sa mai.
Ed il primo è per le use consigliate. Mi sembra facile.
Documentati sui comandi che ti ho suggerito (non posso spiegarti uno per uno cosa fanno, già mi sfottono per la logorrea nelle risposte) e fai qualche prova. Poi chiedi ulteriori lumi o dubbi.
O vai in chat e chiedi di darti una mano se proprio credi che ti serva qualcuno che ti guidi passo passo.
Non sono incavolato (lo ripeto perchè sto solo cercando di portarti nella giusta mentalità. Linux non è windows devi avere mente più aperta) ma sentirmi chiedere a cosa serve lo sticky bit è sconfortante. Vuol dire, tra l'altro, che non hai un'idea della gestione dei permessi. Se vuoi rendere più sicuro il sistema si parte da questo e quando ti viene suggerito qualcosa si verifica sempre, metti caso che abbia sbagliato a scrivere (e capita, capita)... _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist
Last edited by djinnZ on Thu Feb 03, 2011 6:56 pm; edited 1 time in total |
|
Back to top |
|
|
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Wed Jan 26, 2011 7:27 pm Post subject: |
|
|
Finalmente ho tutto chiaro (per il SMB l'avevo fin da prima che rispiegassi, forse non mi sono espresso bene).
L'unica cosa che non mi riesce è proprio nel settare l'umask 002 nello script amuled, dove va messo ? Perché se lo incorporo prima della riga
Code: | env HOME="${AMULEHOME}" start-stop-daemon --start \ |
viene ignorato
Se dentro: Code: | env HOME="${AMULEHOME}" umask 002 && start-stop-daemon --start \ | mi restituisce un
Code: | env: umask: No such file or directory |
Quindi dove lo posso dare? |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Wed Jan 26, 2011 9:04 pm Post subject: |
|
|
proviamo l'alternativa (te la volevo risparmiare, ma a quanto pare questi rompiglioni di devel insistono nel voler sisemare sempre tutto a puntino, mi sa che appena finisco di importarmi le conf del vecchio server gli fischieranno eccome le orecchie): prova /home/p2p/.profile: | umask 002 |
la soluzione più sofisticata sarebbe /etc/pam.d/system-services: | session optional pam_umask.so umask=022 |
Code: | chfn -o "umask=002 p2p" | in realtà sono un tantino in dubbio sul file in pam.d, direi di evitare di metterlo in system-auth (per usarlo su ogni utente, quindi dovresti commentare la riga UMASK in login.defs e umask xxx in profile ed in bashrc) come troveresti in rete ma fai qualche prova (non mi sono ancora applicato a come hanno sistemato pam.d). _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Wed Jan 26, 2011 10:57 pm Post subject: |
|
|
La prima soluzione non funziona con aMuled ne tanto meno con la shell
Code: | p2p@linux ~ $ umask
0022
p2p@linux ~ $ cat .profile
umask 002
p2p@linux ~ $ |
(chiaramente ho sloggato e riloggato)
Per quanto riguarda la situazione più sofisticata, perché se imposto l'umask nel pam poi devo disabilitarlo da tutte le altre parti ? Non farei quindi prima a impostarlo in login.defs ? Inoltre con questa modifica mi ritroverei ad avere ogni utente con un umask più libero del dovuto.. |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Thu Jan 27, 2011 1:38 pm Post subject: |
|
|
strano, controlla proprietario e permessi. bada che .profile vale per login shell altrimenti devi usare .bashrc (anche con un hard link)
umask 022 vuol dire che i file creati saranno rw-r--r-- e le dir rwxr-xr-x mentre 002 corrisponde a rw-rw-r-- e rwxrwxr-x. Spero che questo ti sia chiaro e che un sistema con umask impostato a 002 non è sicuro, tutti i demoni andrebbero in esecuzione con queste impostazioni, non solo gli utenti.
Il consiglio di toglierlo da login.defs, nel caso decidi di usare pam_umask globalmente (in system-auth), è per evitare sovrapposizioni (in teoria dovrebbe agire nell'ordine pam e poi login.defs, ma questo è da verificare, al momento non ho tempo da dedicare a queste cose) per quanto riguarda bashrc e profile dovrebbero reimpostare umask all'avvio di ogni shell di login quindi certamente dopo che ha provveduto pam.
A questo punto con chfn andresti a gestire l'umask da passwd per ogni singolo utente mentre globalmente è impostato direttamente da pam.
Un tentativo per vedere se funziona solo per i demoni lo farei comunque. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Sun Jan 30, 2011 8:49 am Post subject: |
|
|
Considerando che ho una partizione apposita, a questo punto, anch'io montata con noexec e no dev e che voglio un umask 002 solo per l'utente p2p non riesco a capire quale possa essere il rischio
Tornando al discorso, con .bashrc nella shell ottengo l'umask desiderato ma amuled scrive sempre coi propri diritti. Vorrei proprio evitare di usare un'impostazione globale per non andare a modificare troppo il sistema. Ed anche con chfn -o "umask=0002 p2p" continuo a non ottenere nulla..
Non so dove sbattere la testa, se hai qualche idea Tanto meglio... |
|
Back to top |
|
|
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Fri Feb 11, 2011 10:00 pm Post subject: |
|
|
Un UP per una soluzione |
|
Back to top |
|
|
zolar czakl Apprentice
Joined: 25 Sep 2004 Posts: 162 Location: UMRK
|
Posted: Sat Feb 12, 2011 12:00 am Post subject: |
|
|
Amule dovrebbe avere una voce per i permessi.
Amuled non legge lo stesso file di configurazione?
E' parecchio che non lo uso . |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
|
Back to top |
|
|
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Sun Feb 13, 2011 12:32 am Post subject: |
|
|
Intanto ti ringrazio per il tentativo!
aMuled come hai detto tu usa lo stesso file amule.conf di aMule normale ma nella configurazione a riga di comando non sono riuscito a trovare quello che dicevi, così ho aperto direttamente la versione con GUI ed il risultato nella sezione Sicurezza è questo:
http://img823.imageshack.us/img823/3407/schermatapreferenze.png |
|
Back to top |
|
|
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Sun Feb 13, 2011 1:47 pm Post subject: |
|
|
djinnZ come ho tempo faccio qualche tentativo e aggiorno qui. Grazie |
|
Back to top |
|
|
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Wed Feb 16, 2011 11:26 am Post subject: |
|
|
Ammetto che sto per impazzire
Dopo un "lungo" studio delle ACL POSIX sono arrivato alla conclusione che il comando che fa al caso mio è questo:
setfacl -m default:group::rwx Incoming
così da ottenere:
Code: | # file: Incoming
# owner: p2p
# group: p2p
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x |
ed effettivamente se con l'utente p2p scrivo un file ottengo:
Code: | p2p@linux /mnt/download/aMule/Incoming $ touch a
p2p@linux /mnt/download/aMule/Incoming $ getfacl a
# file: a
# owner: p2p
# group: p2p
user::rw-
group::rw-
other::r--
p2p@linux /mnt/download/aMule/Incoming $ |
Perfetto no??
NO!
aMule continua a scrivermi tutto così:
Code: | p2p@linux /mnt/download/aMule/Incoming $ ls -l
totale 964596
-rw-r--r-- 1 p2p p2p 830 16 feb 11.23 "file aMule"
-rw-rw-r-- 1 p2p p2p 0 16 feb 12.25 a
p2p@linux /mnt/download/aMule/Incoming $ |
Possibile che aMule fa ancora come gli pare??
Devo riavviare il demone ? Il sistema ? Mah!
HELP! |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Wed Feb 16, 2011 4:05 pm Post subject: |
|
|
tagliamo la testa al toro, te lo espongo per comandi e configurazioni (capisci cosa vuol dire ogni comando, ovviamente, non mi assumo responsabilità): /home/p2p/.aMule/amule.conf: | [eMule]
...
IncomingDir=/home/p2p/downloaded
TempDir=/home/p2p/aMuleTemp
...
PermissionsFiles=438
PermissionsDirs=510
...
|
/etc/smb.conf: | [downloaded]
path = /home/p2p/downloaded
public = yes
writable = yes
force user = p2p
printable = no
create mask = 0660
directory mode = 0770
force directory mode = 0770
force group = p2p
[downloads]
path = /home/p2p/aMuleTemp
public = yes
writable = yes
force user = p2p
printable = no
create mask = 0660
directory mode = 0770
force directory mode = 0770
force group = p2p | se vuoi potresti pensare di usare un remount nfs /etc/exports: | /home/p2p/amule/aMuleTemp (rw,insecure,all_squash,anonuid=???,anongid=???)
/home/p2p/amule/downloaded (rw,insecure,all_squash,anonuid=???,anongid=???) | commentati gli umask nei vari profile bashrc e login.defs, aggiungi pam_umask in system.auth, imposti con chfn -o "umask=002 utente" i vari utenti che devono cooperare e ti rivolgi a qualcosa del genere Code: | chown -R p2p /home/p2p
chgrp -R p2p /home/p2p
chmod -R u+rw /home/p2p
chmod -R og-rwx /home/p2p
chmod -R a+X /home/p2p
chmod -R a-rwx /home/p2p/downloaded /home/p2p/aMuleTemp
chmod -R ug+rwXs /home/p2p/downloaded /home/p2p/aMuleTemp
setfacl -x /home/p2p/downloaded /home/p2p/aMuleTemp
setfacl -m default:owner::rwx /home/p2p/downloaded /home/p2p/aMuleTemp
setfacl -m default:group::rwx /home/p2p/downloaded /home/p2p/aMuleTemp
setfacl -m default:other::--- /home/p2p/downloaded /home/p2p/aMuleTemp | beh se così non vuol saperne non so cosa dirti.
Controlla bene perchè in genere qualche cretinata la metto sempre. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
Shocker580 Tux's lil' helper
Joined: 19 Nov 2005 Posts: 108 Location: Italy
|
Posted: Wed Feb 16, 2011 7:20 pm Post subject: |
|
|
Ho risolto diversamente.. i diritti ACL vengono applicati solo ai file creati nella cartella quindi non vengono applicati se copiati. Evidentemente aMule da Temp a Incoming fa proprio una copia, quindi alla fine è bastato impostare gli stessi diritti ACL anche in Temp!
Grazie DjinnZ, finalmente posso mettere un RESOLVED |
|
Back to top |
|
|
|