Eingeschränktes Linux-Administratorkonto nur zur Bereitstellung einer VM-Festplattenlaufwerkerweiterung

Eingeschränktes Linux-Administratorkonto nur zur Bereitstellung einer VM-Festplattenlaufwerkerweiterung

Der Titel der Frage fasst es irgendwie zusammen. Ich stelle ein Netzwerkgerät als VM basierend auf Debian 9 bereit, möchte dem Benutzer aber die Möglichkeit geben, bei Bedarf zusätzlichen Speicherplatz hinzuzufügen. Allerdings möchte ich nicht, dass er über die Befehlszeile vollen Systemzugriff hat. Wie kann ich ein Konto erstellen, das nur auf die Ausführung von Aktivitäten des Typs fdisk beschränkt ist? Außerdem möchte ich ihren Dateisystemzugriff beschränken, damit sie die Festplatte nicht durchsuchen können.

Antwort1

Sie sollten stattdessen einfach die Aufgabe der Größenänderung der virtuellen Festplatte und des Dateisystems automatisieren.

Beispielsweise kann cloud-init so eingerichtet werden, dass es automatischErweitern Sie die Partitionen(und Dateisysteme) von VM-Instanzen und ist bereits auf VM-Instanzen von großen Cloud-Anbietern wie Amazon AWS und Google Cloud eingestellt. Sie können cloud-init selbst verwenden, um diese Aufgabe zu automatisieren. In diesem Fall würde der Endbenutzer die Größe der virtuellen Festplatte in seinem Hypervisor ändern, dann die Instanz neu starten und cloud-init würde automatisch alle notwendigen Schritte ausführen.

Das Beispiel aus der Dokumentation:

#cloud-config
#
# growpart entry is a dict, if it is not present at all
# in config, then the default is used ({'mode': 'auto', 'devices': ['/']})
#
#  mode:
#    values:
#     * auto: use any option possible (any available)
#             if none are available, do not warn, but debug.
#     * growpart: use growpart to grow partitions
#             if growpart is not available, this is an error.
#     * off, false
#
# devices:
#   a list of things to resize.
#   items can be filesystem paths or devices (in /dev)
#   examples:
#     devices: [/, /dev/vdb1]
#
# ignore_growroot_disabled:
#   a boolean, default is false.
#   if the file /etc/growroot-disabled exists, then cloud-init will not grow
#   the root partition.  This is to allow a single file to disable both
#   cloud-initramfs-growroot and cloud-init's growroot support.
#
#   true indicates that /etc/growroot-disabled should be ignored
#
growpart:
  mode: auto
  devices: ['/']
  ignore_growroot_disabled: false

Antwort2

Sie können die sudoers-Datei ( /etc/sudoers, aber am besten mit dem Tool bearbeiten visudo) verwenden, um einer Gruppe von Benutzern die Verwendung von sudo(8) beschränkt auf einen bestimmten Befehl zu gestatten. Sie können sogar die zulässigen Argumente hinzufügen, damit Benutzer fdisk nicht auf einer nicht zugehörigen Festplatte aufrufen können.

Der Eintrag in der Datei könnte etwa so aussehen:

%yourgroup ALL=(ALL) NOPASSWD: /sbin/fdisk /dev/sdb

man sudoersenthält weitere Informationen zur Befehlssyntax und möglichen Optionen.

verwandte Informationen