GNU/Linux >> Linux Esercitazione >  >> Linux

Come personalizzare gli ambienti utente Linux

La sicurezza del sistema è una delle principali preoccupazioni. Come amministratore di sistema, come ho affermato prima, è la tua preoccupazione principale. L'aggiunta di utenti a un sistema riduce la sicurezza. Il tuo compito è creare un ambiente utilizzabile ma sicuro per i tuoi utenti. Hai risorse aziendali da proteggere, sistemi da mantenere e utenti da soddisfare. C'è spesso un conflitto tra questi tre aspetti dell'amministrazione del sistema, come ben sai. Un modo per soddisfarli tutti e tre è personalizzare gli ambienti dell'utente implementando e applicando uno standard aziendale. Trovare un equilibrio tra produttività degli utenti e sicurezza del sistema non è facile. Non posso scrivere specifiche per la tua situazione particolare, ma posso mostrarti dove apportare le modifiche necessarie in modo che tu possa farlo.

Questo articolo illustra la personalizzazione degli ambienti dell'utente utilizzando i file trovati in /etc/skel e /etc/profile.d directory. Con una nuova installazione di sistema, troverai tre file in /etc/skel: .bash_logout , .bash_profile e .bashrc . Quando si crea un nuovo account utente su un sistema, questi tre file vengono copiati nella home directory dell'utente e sono di proprietà dell'utente. Nel caso non lo sapessi, il cosiddetto punto i file (quelli denominati con un punto precedente (.) sono nascosti dagli elenchi di file standard. Per vederli, devi usare il -a passare con il comando ls.

-rw-r--r--.  1 root root   18 Mar 31 21:17 .bash_logout
-rw-r--r--.  1 root root  193 Mar 31 21:17 .bash_profile
-rw-r--r--.  1 root root  231 Mar 31 21:17 .bashrc

Come puoi vedere, questi file sono di proprietà di root e possono essere modificati o modificati solo dall'utente root.

.bash_profile

Il .bash_profile file è il più importante dei tre file elencati. È molto importante perché è l'unico file "richiesto" nell'elenco. Viene eseguito ogni volta che l'utente accede a un sistema, lancia il .bashrc file e definisce ed esporta la variabile PATH. Le sue impostazioni predefinite sono semplici.

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

Il .bash_profile può anche essere utilizzato per definire un prompt della shell personalizzato, definire il proprio editor di scelta o qualsiasi altra cosa che si desidera inserire nel file per l'utente.

[ Potrebbe piacerti anche: Suggerimenti e trucchi per le variabili di ambiente Linux ]

.bashrc

Il contenuto del file .bashrc, per impostazione predefinita, chiama solo /etc/bashrc file. Il /etc/bashrc file è costituito da impostazioni che possono essere configurate per tutti gli utenti.

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

È possibile chiamare anche altri file configurati per determinati gruppi di utenti. Ad esempio, se un utente è un membro del gruppo finanziario, puoi richiamare un file per impostare un particolare insieme di variabili per tutti gli utenti nel gruppo finanziario.

/etc/bashrc e /etc/profile

L'elenco per /etc/bashrc è troppo lungo per questo luogo, ma puoi guardarlo e vedere cosa fa. Il /etc/bashrc il file fa riferimento a /etc/profile file per più variabili e impostazioni di ambiente. Entrambi i file vengono forniti con il seguente avviso.

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

Quindi, vedi, personalizzare un ambiente utente non è così semplice come pensavi.

/etc/profile.d

Se elenchi i file in /etc/profile.d , vedrai quanto segue:

-rw-r--r--.  1 root root  771 Mar 31 21:50 256term.csh
-rw-r--r--.  1 root root  841 Mar 31 21:50 256term.sh
-rw-r--r--.  1 root root  196 Mar 24  2017 colorgrep.csh
-rw-r--r--.  1 root root  201 Mar 24  2017 colorgrep.sh
-rw-r--r--.  1 root root 1741 Aug  6  2019 colorls.csh
-rw-r--r--.  1 root root 1606 Aug  6  2019 colorls.sh
-rw-r--r--.  1 root root   80 Mar 31 23:29 csh.local
-rw-r--r--.  1 root root 1706 Mar 31 21:50 lang.csh
-rw-r--r--.  1 root root 2703 Mar 31 21:50 lang.sh
-rw-r--r--.  1 root root  123 Jul 30  2015 less.csh
-rw-r--r--.  1 root root  121 Jul 30  2015 less.sh
-rw-r--r--.  1 root root   81 Mar 31 23:29 sh.local
-rw-r--r--.  1 root root  164 Jan 27  2014 which2.csh
-rw-r--r--.  1 root root  169 Jan 27  2014 which2.sh

Puoi vedere che molti dei file sono per l'uso nella shell C. Il file più importante per il focus di questo articolo è sh.local . Il contenuto di sh.local è elencato di seguito.

#Add any required envvar overrides to this file, it is sourced from /etc/profile

Come puoi vedere dal messaggio, se desideri sovrascrivere qualsiasi voce di envvar (variabili di ambiente) attualmente configurata con uno standard aziendale, inserisci le voci in questo file per farlo.

Avvertenze

Man mano che gli utenti apprendono di più sui loro ambienti e sulle cose di Google, personalizzeranno i propri, spesso a loro danno. Devi trovare un equilibrio tra l'essere un amministratore di sistema laissez-faire e un amministratore di sistema dittatore dalla mano pesante. Vuoi che gli utenti siano produttivi ma abbiano un controllo limitato sui propri ambienti. Il mio suggerimento per rendere felici entrambe le parti è di impostare tutti i parametri dell'ambiente utente standard aziendali in /etc/bashrc e in /etc/profile.d/sh.local che non vuoi essere modificato o cambiato.

Renditi conto che il /home/user/.bash_profile , .bashrc e .bash_logout sono file modificabili dall'utente. L'unico modo per aggirare questo problema è modificare l'autorizzazione su quei file con uno script utente root dopo aver creato gli account. In altre parole, esegui uno script dopo aver creato un account utente per modificare i permessi su /home/user/.bash* file in root: rw-r--r-- . L'utente non potrà modificare i file.

Se vuoi bloccare l'ambiente modificando .bash* file alla proprietà root, puoi creare un nuovo file in /etc/skel come un .user file che l'utente può modificare e includerlo nel .bash_profile file.

[ Vuoi saperne di più sulla sicurezza? Consulta la checklist di sicurezza e conformità IT. ] 

Concludi

La personalizzazione dell'ambiente di un utente può migliorare la sicurezza del sistema e standardizzare ciò che gli utenti vedono e come interagiscono con un sistema. La concessione dell'accesso shell a un sistema di produzione ha le sue implicazioni, ma è necessario fornire risorse agli utenti per massimizzare la loro produttività e massimizzare la sicurezza del sistema. Se trovi l'equilibrio perfetto, scrivilo in un articolo per Enable Sysadmin. Secondo la mia esperienza, ogni utente ritiene di essere un'eccezione allo standard aziendale e, molto presto, avrai un sacco di eccezioni e nessuno standard aziendale.


Linux
  1. Come elencare o ordinare tutti i file per dimensione in Linux

  2. Come impostare i privilegi di Sudo per l'utente in Linux

  3. Come aggiungere un utente a un gruppo in Linux

  4. Come disabilitare l'accesso remoto per l'utente root su una macchina Linux

  5. Come eseguire Elasticsearch 2.1.1 come utente root nella macchina Linux

Hai dimenticato la password Linux su WSL? Ecco come ripristinarlo facilmente

Come cambiare utente su Linux

Come limitare l'utente root in CentOS

Come disabilitare l'accesso SSH per l'utente root in Linux?

Come aggiungere un utente al gruppo su Linux

Come aggiungere un utente a un gruppo Linux