Limitare le volte in cui un utente è autorizzato ad accedere


9

Abbiamo diversi sistemi Backbox 3.13 basati su Ubuntu 12.04. Uno dei miei adolescenti non capisce il concetto di questa cosa chiamata "sonno" e tende ad alzarsi per giocare al computer. Sto cercando di limitare tale azione. Abbiamo provato Nanny che ha funzionato per alcuni giorni. Quindi, anche se le impostazioni erano ancora in atto, stava ancora permettendo a detto teenager di accedere al suo account utente e a Internet.

Dopo alcune ricerche, ho deciso di provare a modificare /etc/security/time.conf. Apparentemente, non lo sto facendo correttamente perché, indipendentemente dai comandi che inserisco nel file, possiamo comunque accedere al suo account utente. Non vogliamo che lei abbia accesso dalle 21:00 alle 6:00. Abbiamo ancora bisogno che io abbia sempre accesso al computer. Ecco alcune sintassi che ho provato:

1. login;*;username;A12100-0600
2. login;*;username;!A12100-0600
3. login;*;username;!A12100-0600
   login;*;my username;A10000-2400
4. login;*;!username;A12100-0600

Sto impazzendo qui cercando di capire come farlo. Sono sicuro che è qualcosa di semplice che mi manca o che sto inserendo in modo errato. Qualsiasi aiuto sarebbe apprezzato.


1
Prova login;*;daughter;A10600-2100. Ciò dovrebbe consentire l'accesso solo tra le 6:00 e le 21:00. Se non funziona, allora forse *;*;daughter;A10600-2100. Se funziona, vorresti anche avere un cronlavoro che uccida le sessioni di tua figlia alle 21:00 in quanto ciò impedisce solo l'avvio di nuove sessioni. Ci sono alcuni dettagli qui
Warwick,

Sfortunatamente, questo non ha funzionato. Ho provato ad accedere; *; figlia; A10600-1900 per testare la soluzione senza risultati. Ho anche provato ; ; figlia; A10600-1900 senza risultati positivi. Questo dovrebbe funzionare, ma non lo fa. È a causa del sistema Unity?
user81117

2
Hai configurato pamper l'uso pam_time? In caso contrario, è necessario account required pam_time.soin entrambi /etc/pam.d/gdme /etc/pam.d/loginappena sotto le authvoci.
Warwick,

Ho aggiunto quelle righe ai file / gdm e / login e poi ho reinserito le informazioni nel file di configurazione. Non abbiamo ancora gioia su questo fine. Ora sto cercando su Google per essere sicuro di aver inserito la riga nel punto corretto nel file / gdm.
user81117

Secondo ask.fedoraproject.org/en/question/7260/… , (Mi dispiace per l'URL lungo) dovrei terminare il comando inserendo una nuova riga. Commento quella linea con un segno #, giusto? Dice anche che l'account richiesto pam_time.so va alla fine del file / gdm. So per certo una cosa. Una volta capito, non dimenticherò più velocemente!
user81117

Risposte:


1

1. Modifica /etc/pam.d/common-auth e aggiungi la seguente riga: account required pam_time.so

2. Modifica /etc/security/time.conf e aggiungi la restrizione: *;*;username;Al0800-2200

L'esempio consente l'accesso con software compatibile con pam tutti i giorni dalle 8:00 alle 22:00 tutti i giorni.


0

È proprio qui che lo fai, o stai usando quelli invece di Ls?

Le restrizioni temporali dovrebbero essere "maiuscola A, piccola L " e poi l'ora ...


Ciao Nigge. Ho provato in entrambi i modi poiché ho visto la documentazione che mostra sia l'Al che l'A1. Nessuno dei due metodi funziona. Mi sto divertendo un mondo cercando di capire perché.
user81117

Mi dispiace sapere che non è stata la causa del tuo problema. Un'altra cosa da controllare, solo per essere sicuri: il tuo sistema utilizza forse un altro DM? Se vuoi in / etc / X11 / default-display-manager ...
Jan

Il sistema utilizza Light DM. Penso che quando ho installato GDM l'ho configurato per Light DM.
user81117

0

Di seguito funziona per me:

*;*;child1|child2|child3;Wk0445-1958|Sa0445-2300|Su0445-1958

La seguente riga /etc/pam.d/common-accountpotrebbe essere qualcosa che ho aggiunto o decommentato.

account required  pam_time.so

Ho anche un cron-job che controlla alle 20:00 se uno dei bambini è connesso e li disconnette in tal caso ... la parte che li disconnette effettivamente è la seguente:

echo 'logging off - Following children are still logged in...'
for n in $active_children ; do echo "  " $n ; done
festival --tts <<EOT
Is is bedtime. Good bye and good night.
EOT
for n in $active_children
do
    killall -HUP -u $n
done
sleep 15
for n in $active_children
do
    killall      -u $n
done
echo "[`date`] - done"

0

Un metodo più generico è usare cron per bloccare e sbloccare l'account. Ciò elimina sia i requisiti specifici di, sia eventuali variabili relative al gestore delle finestre. Questo è destinato esclusivamente ad un computer autonomo, non a un desktop / laptop / tablet collegato a un server di autenticazione centrale.

0 21 * * * /usr/bin/passwd -l childsUserName 0 6 * * * /usr/bin/passwd -u childsUserName'

NOTA: potrebbe essere necessario modificare il percorso per il comando 'passwd'. Determina il percorso corretto con "quale".

Sulla mia scatola CentOS 6:

which passwd

/usr/bin/passwd


Non penso che funzionerebbe. Cosa succede se l'autenticazione non viene eseguita sul database delle password locale ( /etc/shadow)? passwd -lpotrebbe anche non fare nulla in quel caso. Cosa succede se la macchina viene spenta o un cron job non viene eseguito per qualche altro motivo? Quindi l'account potrebbe essere in uno stato indesiderato.
Jayhendren,

Non sono a conoscenza di alcun sistema UNIX o Linux che non esegua l'autenticazione con il database delle password locale, a meno che non sia connesso a un server di autenticazione centrale.
Ragansi,

Il mio commento precedente è stato interrotto prematuramente. Non mi sono reso conto di aver premuto invio ha pubblicato il commento. Comunque. Se la macchina viene spenta, cron può sicuramente lasciare il sistema in uno stato indesiderato. Puoi usare cron per chiamare un piccolo script che controlla l'ora, quindi blocca o sblocca di conseguenza. Eseguilo ogni 5 minuti, o anche @reboot in cron.
Ragansi,

"a meno che non sia collegato a un server di autenticazione centrale". Questo è esattamente ciò che intendo.
Jayhendren,

In tal caso, il server di autenticazione centrale avrà (o dovrebbe ...) disporre delle funzionalità per eseguire le funzioni di blocco sopra menzionate. In tal caso, non è necessario (e non è necessario) eseguire i blocchi degli account utente sul computer locale, a meno che qualcosa non sia configurato al di fuori dell'ambito, con come si intende utilizzare l'autent centrale.
Ragansi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.