Die Systemsicherheit ist ein wichtiges Anliegen. Als Systemadministrator ist es, wie ich bereits erwähnt habe, Ihr Hauptanliegen. Das Hinzufügen von Benutzern zu einem System verringert die Sicherheit. Ihre Aufgabe ist es, eine nutzbare, aber sichere Umgebung für Ihre Benutzer zu schaffen. Sie müssen Unternehmensressourcen schützen, Systeme warten und Benutzer zufriedenstellen. Wie Sie wissen, gibt es oft einen Konflikt zwischen diesen drei Aspekten der Systemadministration. Eine Möglichkeit, alle drei Anforderungen zu erfüllen, besteht darin, die Umgebung Ihrer Benutzer anzupassen, indem Sie einen Unternehmensstandard implementieren und durchsetzen. Es ist nicht einfach, ein Gleichgewicht zwischen Benutzerproduktivität und Systemsicherheit zu finden. Ich kann keine Spezifikationen für Ihre spezielle Situation schreiben, aber ich kann Ihnen zeigen, wo Sie die notwendigen Änderungen vornehmen müssen, damit Sie dies tun können.
Dieser Artikel behandelt das Anpassen der Umgebung Ihrer Benutzer mithilfe von Dateien in /etc/skel
und /etc/profile.d
Verzeichnisse. Bei einer Neuinstallation des Systems finden Sie drei Dateien unter /etc/skel: .bash_logout
, .bash_profile
, und .bashrc
. Wenn Sie ein neues Benutzerkonto auf einem System erstellen, werden diese drei Dateien in das Home-Verzeichnis des Benutzers kopiert und gehören dem Benutzer. Falls Sie es nicht wissen, der sogenannte Punkt Dateien (die mit einem vorangestellten Punkt (.) benannten Dateien werden aus Standarddateilisten ausgeblendet. Um sie anzuzeigen, müssen Sie den -a
verwenden wechseln Sie mit dem ls-Befehl.
-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
Wie Sie sehen können, gehören diese Dateien root und können nur vom root-Benutzer bearbeitet oder geändert werden.
.bash_profile
Das .bash_profile
Datei ist die wichtigste der drei aufgeführten Dateien. Es ist am wichtigsten, weil es die einzige "erforderliche" Datei in der Liste ist. Es wird jedes Mal ausgeführt, wenn sich der Benutzer bei einem System anmeldet, es startet die .bashrc
Datei und definiert und exportiert die PATH-Variable. Die Standardeinstellungen sind einfach.
# .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
Das .bash_profile
kann auch verwendet werden, um einen benutzerdefinierten Shell-Prompt zu definieren, den Editor seiner Wahl zu definieren oder irgendetwas anderes, das Sie für den Benutzer in die Datei einfügen möchten.
[ Das könnte Ihnen auch gefallen:Tipps und Tricks zu Linux-Umgebungsvariablen ]
.bashrc
Der Inhalt der .bashrc-Datei ruft standardmäßig nur /etc/bashrc
auf Datei. Die /etc/bashrc
Datei besteht aus Einstellungen, die für alle Benutzer konfiguriert werden können.
# .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
Sie können auch andere Dateien aufrufen, die für bestimmte Benutzergruppen konfiguriert sind. Wenn ein Benutzer beispielsweise Mitglied der Finanzgruppe ist, könnten Sie eine Datei aufrufen, um einen bestimmten Satz von Variablen für alle Benutzer in der Finanzgruppe einzurichten.
/etc/bashrc und /etc/profile
Die Auflistung für /etc/bashrc
ist viel zu lang für diesen Veranstaltungsort, aber Sie können es sich ansehen und sehen, was es tut. Die /etc/bashrc
Datei bezieht sich auf /etc/profile
Datei für weitere Umgebungsvariablen und Einstellungen. Beide Dateien enthalten die folgende Warnung.
# 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.
Sie sehen also, das Anpassen einer Benutzerumgebung ist nicht so einfach, wie Sie dachten.
/etc/profile.d
Wenn Sie die Dateien in /etc/profile.d
auflisten , sehen Sie Folgendes:
-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
Sie können sehen, dass viele der Dateien für die Verwendung in der C-Shell bestimmt sind. Die wichtigste Datei für den Fokus dieses Artikels ist sh.local
. Der Inhalt von sh.local
ist unten aufgeführt.
#Add any required envvar overrides to this file, it is sourced from /etc/profile
Wie Sie der Meldung entnehmen können, müssen Sie, wenn Sie alle derzeit konfigurierten envvar-Einträge (Umgebungsvariablen) mit einem Unternehmensstandard überschreiben möchten, entsprechende Einträge in dieser Datei vornehmen.
Warnhinweise
Wenn Nutzer mehr über ihre Umgebung und Google-Dinge erfahren, passen sie ihre eigenen an – oft zu ihrem Nachteil. Sie müssen ein Gleichgewicht zwischen einem Laissez-faire-Systemadministrator und einem hartnäckigen Diktator-Systemadministrator finden. Sie möchten, dass Benutzer produktiv sind, aber eine begrenzte Kontrolle über ihre eigenen Umgebungen haben. Mein Vorschlag, um beide Seiten glücklich zu machen, ist, alle Standard-Benutzerumgebungsparameter des Unternehmens in /etc/bashrc
festzulegen und in /etc/profile.d/sh.local
die nicht bearbeitet oder geändert werden sollen.
Beachten Sie, dass /home/user/.bash_profile
, .bashrc
, und .bash_logout
sind vom Benutzer bearbeitbare Dateien. Die einzige Möglichkeit, dies zu umgehen, besteht darin, die Berechtigung für diese Dateien mit einem Root-Benutzerskript zu ändern, nachdem Sie die Konten erstellt haben. Mit anderen Worten, führen Sie ein Skript aus, nachdem Sie ein Benutzerkonto erstellt haben, um die Berechtigungen für /home/user/.bash*
zu ändern Dateien in root: rw-r--r--
. Der Benutzer kann die Dateien nicht ändern.
Wenn Sie die Umgebung sperren möchten, indem Sie die Datei .bash*
ändern Dateien in den Root-Besitz zu übertragen, könnten Sie eine neue Datei in /etc/skel
erstellen B. ein .user
Datei, die der Benutzer bearbeiten und in .bash_profile
einfügen kann Datei.
[ Möchten Sie mehr über Sicherheit erfahren? Schauen Sie sich die Checkliste für IT-Sicherheit und Compliance an. ]
Abschluss
Das Anpassen der Umgebung eines Benutzers kann die Systemsicherheit verbessern und standardisieren, was Benutzer sehen und wie sie mit einem System interagieren. Das Gewähren von Shell-Zugriff auf ein Produktionssystem hat seine eigenen Auswirkungen, aber Sie müssen Ressourcen für Ihre Benutzer bereitstellen, um ihre Produktivität zu maximieren und die Systemsicherheit zu maximieren. Wenn Sie das perfekte Gleichgewicht finden, schreiben Sie es bitte in einen Artikel für Sysadmin aktivieren. Meiner eigenen Erfahrung nach hat jeder Benutzer das Gefühl, die Ausnahme vom Unternehmensstandard zu sein, und ziemlich bald gibt es eine Reihe von Ausnahmen und überhaupt keinen Unternehmensstandard.