Identificare i file eseguiti all'accesso e come gestire un nuovo ambiente utente su Linux


0

Sto cercando di identificare i file eseguiti all'accesso, in ordine. Sto pensando in particolare di file come ~/.*shrc( .bashrc, .tcshrc, ecc), ~/.profileo /etc/profile.

Sto correndo su un sistema diverso da quelli a cui sono abituato e trovo che un numero di comportamenti di base sono diversi (ad es. Il tasto Home sulla mia tastiera ora inserisce una tilde invece di andare all'inizio della riga, gli alias sono diversi , diversa shell predefinita). Quindi sto attraversando il processo per saperne di più su come funzionano tutti gli script di avvio, quali impostazioni dovrebbero essere fatte dove, ecc. Finora ho fatto una buona dose di lettura su questi argomenti, tuttavia i collegamenti alle discussioni correlate sono molto benvenuto.

EDIT : titolo modificato per riflettere accuratamente il resto del testo sopra.

Risposte:


0

I file eseguiti all'avvio dipendono dall'ambiente e dall'interprete dei comandi. Dovrai risolverlo leggendo le rispettive pagine man. Ad esempio per bash:

  • determinare quale SHELL usi. login (1) e getusershell (3) ti aiuteranno.
  • determinare il tipo di sessione - login / interattivo?

quando li conosci, leggi la pagina man della shell e cerca il suo comportamento all'avvio. Come esempio per bash (1):

INVOCATION The following paragraphs describe how bash executes its startup files. :-)

bash (come la maggior parte delle altre shell) ha --verboseun'opzione. Se vuoi divertirti, fai in modo che la shell di accesso esegua la shell con le sue impostazioni dettagliate, come

shiny:bin root# cat vbash 
exec /bin/bash -v

e imposta /bin/vbashcome shell di accesso. Non è nemmeno necessario essere nella lista bianca /etc/shellsperché funzioni ...

quindi, dopo aver ottenuto i file, correggere le impostazioni del terminale ...


0

Quando ho bisogno di controllare l'ordine di esecuzione per ogni file di avvio, aggiungo semplicemente un echo "{filename}"all'inizio di ogni file di avvio. Sostituisci semplicemente {filename}con il nome del file di avvio. Quando si accede quel comando echo viene eseguito e stampa il nome del file a cui si è avuto accesso. Il /etc/profileè probabilmente radice protetta, in modo da non essere in grado di modificare il file.


Ma come posso trovare tutti i file in primo luogo? Pollo vs. uovo.
TTT
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.