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.