# utente x senza shell?

## federico

e' possibile avviare una macchina direttamente in x, con gdm o simili, e fare in modo che l'utente non abbia accesso shell con ctrl alt f* ? vorrei che questo mio utente entrasse in x e non potesse utilizzare un login da shell.

c'e' un sistema?

fede

----------

## randomaze

 *federico wrote:*   

> e' possibile avviare una macchina direttamente in x, con gdm o simili, e fare in modo che l'utente non abbia accesso shell con ctrl alt f* ? vorrei che questo mio utente entrasse in x e non potesse utilizzare un login da shell.
> 
> c'e' un sistema?
> 
> fede

 

Le shell da 2 a 6 le disabiliti commentando le linee apposite nell' /etc/inittab.

Per quanto riguarda la 1 forse serve a gdm, ti conviene fare delle prove...

----------

## GiRa

Si può vietare la combinazione Ctrl+Alt+F?

 *man xorg.conf wrote:*   

> 
> 
>        Option "DontVTSwitch"  "boolean"
> 
>               This disallows the use of the  Ctrl+Alt+Fn  sequence  (where  Fn
> ...

 

----------

## djinnZ

puoi benissimo non avere nessuna shell attiva, apri inittab e lasci il respawn solo per i runlevel s12 (altrimenti se hai problemi come fai ad accedere?!) ma non è una buona idea secondo me.

L'opzione di X non disabilita le funzioni del comando chvt quindi l'utonto può sempre avviare una sessione xterm, lanciare un chvt 1 e loggarsi da shell. Se vuoi che non possa loggarsi devi usare pam (sconsigliato, l'ultima volta che ci ho provato ho bloccato tutte le shell al primo aggiornamento) o un banale [ -z $DISPLAY ] || exit o qualcosa del genere (puoi anche farla più complicata e metterci un chvt 7 prima di uscire così lo riporti al login grafico) nel .bashrc (dell'utonto, o ti blocchi tutto).

Ovviamente stiamo parlando di utonto con un minimo di conoscenze e tanta voglia di prender mazzate, per il deficiente ordinario basta quanto ti ha detto gira.

----------

## Cazzantonio

per avviare direttamente in X bypassando gdm puoi usare uno script del genere in local.start:

```

NOMEUTENTE=pippo

source /etc/profile

chown $NOMEUTENTE:wheel /var/log/Xorg.*.log

sbin/su - $NOMEUTENTE -c 'source /etc/profile;startx 2>/dev/tty10 &' 2>/dev/tty10
```

Non ti consiglio di usare un initscript perché se getty si avvia per puro caso dopo X, allora ti ruba la tastiera e non riesci più a usarla sotto X. Dovresti usare un inistscript che sia avvia immediatamente prima di local (contando che local si avvi in un tempo minore di X), ma come ben sai sotto gentoo è molto difficile impostare esattamente la sequenza di boot degli initscript. Questa è una delle poche cose dove altre *nix si comportano meglio.

Se modifichi il .bashrc dell'utente ricordati di mettere il proprietario root e di mettere il bit "sticky" chmod +t sulla directory dell'utente altrimenti lo potrà modificare comunque in seguito.

Per consentirgli di impostare comunque degli alias (un utente normale dovrebbe fare questo col bashrc) puoi mettere queste due righe:

```
if [ -f ~/.bash_aliases ]; then

    source ~/.bash_aliases

fi
```

Per consentirgli di fare le modifiche su un file a cui può avere accesso.

----------

## federico

Mi avete dato un sacco di ottimi consigli penso, durante i prossimi giorni li metto in pratica e vi indico quale ha funzionato meglio ^_^ Grazie!!!

EDIT

Da alcune prove che sto effettuando sul mio pc, pare che questo chvt (del quale neanche conoscevo l'esistenza) funzioni solo da root...

----------

## djinnZ

 *Cazzantonio wrote:*   

> Non ti consiglio di usare un initscript perché se getty si avvia per puro caso dopo X

 

Fai prima a modificare/sostituire startDM.sh (la inittab è letta sempre sequenzialmente quindi i getty sono eseguiti dopo rc e prima di startDM, sempre, a meno che non usi einit/init-ng).

Una volta usavo direttamente avviare "respawn" X ed il *dm da inittab, è molto più unix come impostazione, ovviamente servono degli script appositi per gestire l'avvio per i limiti di sintassi e per gestire il timeout ai crash(immagina che ti si stoppa per una sciocchezza tipo monitor non connesso e mentre sta chiudendo il teminale parte una nuova istanza, console bloccata senza possibilità di appello)

l'init non è fatto solo dagli rc anche se vorrebbero farci credere il contrario   :Twisted Evil: 

 *Cazzantonio wrote:*   

> Se modifichi il .bashrc dell'utente ricordati di mettere il proprietario root e di mettere il bit "sticky" chmod +t sulla directory dell'utente altrimenti lo potrà modificare comunque in seguito.

  già, tu ne sai qualcosa...  :Laughing: 

----------

## Cazzantonio

 *djinnZ wrote:*   

>  *Cazzantonio wrote:*   Se modifichi il .bashrc dell'utente ricordati di mettere il proprietario root e di mettere il bit "sticky" chmod +t sulla directory dell'utente altrimenti lo potrà modificare comunque in seguito.  già, tu ne sai qualcosa... 

 

Yes!   :Very Happy: 

----------

