Conta de administrador Linux limitada apenas para fornecer extensão de unidade de disco VM

Conta de administrador Linux limitada apenas para fornecer extensão de unidade de disco VM

O título da pergunta resume tudo. Estou implantando um dispositivo de rede como uma VM baseada no Debian 9, mas quero dar ao usuário a capacidade de adicionar espaço em disco adicional, se necessário, mas não quero que eles tenham acesso total ao sistema na linha de comando. Como posso criar uma conta limitada a realizar apenas atividades do tipo fdisk? Também quero limitar o acesso ao sistema de arquivos para que eles não possam navegar no disco.

Responder1

Você deve apenas automatizar a tarefa de redimensionar o disco rígido virtual e o sistema de arquivos.

Por exemplo, o cloud-init pode ser configurado para automaticamenteaumentar as partições(e sistemas de arquivos) de instâncias de máquinas virtuais e já está configurado para fazer isso em instâncias de VM dos principais provedores de nuvem, como Amazon AWS e Google Cloud. Você mesmo pode usar o cloud-init para automatizar essa tarefa. Nesse caso, o usuário final redimensionaria o disco virtual em seu hipervisor, reinicializaria a instância e o cloud-init executaria automaticamente todas as etapas necessárias.

O exemplo da documentação:

#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

Responder2

Você poderia usar o arquivo sudoers ( /etc/sudoers, mas é melhor editar com a visudoferramenta) para permitir que um grupo de usuários use o sudo(8) limitado a um comando específico. Você pode até adicionar os argumentos permitidos para que os usuários não possam chamar o fdisk em um disco não relacionado.

A entrada no arquivo pode ser semelhante a esta:

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

man sudoerstem mais informações sobre a sintaxe do comando e opções possíveis.

informação relacionada