PDA

Visualizza la versione completa : Root e amministratore secondario permessi su file e cron


lu_ozzie
17-12-2009, 10:44
Per ragioni abbastanza complicate che non sto a spiegare dovre riuscire a ottenere il risultato che descriverò a breve, premetto che sto lavorando su una macchina Centos con Samba configurato come PDC per una piccolissima rete di Win Xp (normalmente 2 macchine/2 utenti, a volte, tipo una mattina a settimana 4 macchine/4 utenti).

- non sto usando OpenLDAP, bensi il db interno a Samba, voglio complicarmi la vita il meno possibile e se non è strettamente vitale eviterò di fare questo cambiamento, ho pensato che essendo 2 utenti non ci fosse un evidente miglioramento.
(parentesi: questo forse non c'entra un tubo, ma accetto volentieri consignli)

- ho configurato tutto il dominio correttamente, sto testando e tutto sembra andare bene.

IL MIO OPBIETTIVO SAREBBE:

- riuscire ad avere 2 accessi come amministratore:
- root (default)
- admin1 (che non puo cancellare/sovrascrivere nessun file di proprietà di root)

- vorrei fare in modo che ci fosse un job cron lanciato da root che non possa essere stoppato o fermato da admin1

- vorrei che ci fossero alcuni processi: smb, httpd e penso anche mysql che fossero in esecuzione sempre (già fatto da root con chkconfig), ma che non possano essere stoppati da admin1


Ho trovato tantissimo materiale per tanti di questi punti e la cosa mi sta portando davvero fuori strada, quindi avrei bisogno di un aiuto piu mirato soprattutto tenendo conto del contesto che è super minimale.

Grazie per l'aiuto, come sempre, spero di essermi spiegato bene...

lu_ozzie
19-12-2009, 21:44
:messner:

cacao74
20-12-2009, 10:05
A sistema installato e configurato ad hoc, ti bastera' definire un nuovo untente NON privilegiato chiamato "admin1".

A quest'utente potrai concedere particolari privilegi per operare come se fosse un altro utente (in questo caso root).
Per fare cio', definisci opportunamente delle configurazioni in ambiente SUDO per gestire i servizi cui accennavi.

Quindi, riassumendo, dovrai fare:
- creazione utente NON privilegiato (man useradd)
- configurazione ambiente sudo (man sudoers, man sudo)

ps: non sono necessari piu' accessi come amministratore.

lu_ozzie
21-12-2009, 08:07
Okay perfetto,

sul primo punto avevo già provveduto, ho creato un admin1 (e gli ho anche fatto un gruppo dedicato perchè non sapevo se ci fosse qualcosa in merito alle politiche di gruppo).

Ora mi studio quello che posso configuare per sudo. Grazie mille!!

lu_ozzie
22-12-2009, 14:45
Allora ho studiato e fatto diverse prove, sono abbastanza soddisfatto ma non ho il controllo che vorrei devo aver commesso degli errori, questo è il mio file sudoers:
-----------------
## Networking
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

## Installation and management of software
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

## Services
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

## Updating the locate database
Cmnd_Alias LOCATE = /usr/bin/updatedb

## Storage
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

## Delegating permissions
Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp

## Processes
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

## Drivers
Cmnd_Alias DRIVERS = /sbin/modprobe

## Specials
Cmnd_Alias MYADMIN = !/usr/bin/passwd root, !/usr/bin/su *root*, !/bin/chown /var/www/html/*, !/bin/chown /var/log/secure, !/bin/chmod /var/www/html/*, !/bin/chmod /var/log/secure, !/sbin/service crond stop, !/etc/service httpd stop, !/etc/service syslog, !/sbin/chkconfig httpd off, !/sbin/chkconfig crond off, !/sbin/chkconfig syslog off, !/bin/vi /etc/sudoers, !/bin/vi /etc/contab, !/bin/vi /var/log/secure

Defaults requiretty

Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
_XKB_CHARSET XAUTHORITY"

root ALL=(ALL) ALL

%myadmin ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS, MYADMIN
---------------
Ho tolto un po' di commenti...ho provato a fare un alias MYADMIN con i comandi che non voglio che che vengano eseguiti dagli admin (che fanno tutti parte del gruppo myadmin)

Però se faccio sudo service httpd stop da uno di questi admin (che fanno parte del gruppo myadmin e di nessun altro gruppo) posso ancora stoppare apache.

In pratica non ho i controlli che vorrei, immagino che ci sia un errore evidente...

Ora che ci penso probabilmente manca della roba...devo anche impedire che un nuovo utente (o un utente esistente) possano far parte del gruppo root.

Ho creto uno script e alcune cose ad esso collegate nella cartella /var/www/html
ho impostato i permessi di tutto a 700 solo root puo fare tutto.

Vorrei che quei files non fossereo modificabili o cancellabili se non da root e nessun altro

Vorrei che crond e httpd non fossero stoppabili o disabilitabili da nessuno all'infuori di root

Vorrei che nessun nuovo utente possa venire creato con i privilegi di root (o modificato in seguito)

Quante cose vorrei...potrei provare con una letterina a Babbo Natale :)


Ma inanzittutto mi basterebbe capire dove ho sbagliato cosi da potere almeno fare dei tentativi...

Grazie

Loading