Montando e modificando um arquivo de loopback sem sudo / root, é possível? [duplicado]

12

Estou tentando adaptar um tutorial em um script fácil de usar link .

Estou tentando reduzir o máximo possível a sudo / root (de preferência, somente para a etapa dd final).

Minhas perguntas são:

  1. Posso montar o sistema de arquivos ext4 sem privilégios sudo / root de alguma forma?

  2. Posso montá-lo de maneira que os usuários / grupos no FS sejam ignorados de alguma forma (para que eu possa executar make install sem sudo)?

O sistema de arquivos está montado no loopback a partir de um deslocamento de um arquivo (por exemplo, -o loop,offset=62914560 ).

Este arquivo é a imagem que será copiada no cartão SD usado para inicializar o Raspberry Pi.

    
por Keyz182 27.08.2012 / 12:10

4 respostas

13

Você quer libguestfs . Você pode usá-lo via guestfish ou guestmount , ou use a biblioteca diretamente por meio de sua interface C ou qualquer uma das muitas vinculações de idioma, como < a href="http://libguestfs.org/guestfs-python.3.html"> Python .

    
por 27.08.2012 / 18:47
2

Sobre isso, vem-me à mente o seguinte.

Você pode adicionar uma linha ao seu /etc/fstab para o dispositivo que deseja montar como um usuário com privilégios normais.

Uma linha de exemplo seria parecida com

/dev/mydevice    /mnt/directory    auto    rw,user    0    0

Com essa linha, um usuário normal pode montar mydevice a /mnt/directory e, além disso, pode ler e gravar no dispositivo. Você só precisa invocar

mount mydevice

ou

mount /mnt/directory

Para uma excelente explicação da sintaxe de /etc/fstab você deve olhar para

www.tuxfiles.org/linuxhelp/fstab.html

Como o raspberry é um dispositivo usb, você pode conseguir isso de maneira mais elegante com udev , adicionando uma regra específica do udev (montagem automática, etc.). Neste caso, deixe-me agora se você quiser ter mais uma explicação.

    
por 27.08.2012 / 12:38
2

Você precisa de privilégios de superusuário para poder montar. Mas esses podem ser dados a você por comandos auxiliares setuid como sudo, mount ou fusermount. Em / etc / fstab, e admin pode conceder alguns meros usuários para montar um FS específico. Alguns usuários podem montar sistemas de arquivos via fusível (por exemplo, se o FS for ext, você pode usar o fuseext.

Ou talvez você possa fazer sem montar, usando aplicativos que podem escrever dentro de um sistema de arquivos. Por exemplo, debugfs pode gravar em uma imagem ext fs (criar diretórios, arquivos, alterar a propriedade ...), debugfs podem ser scripts facilmente Você também pode usar o qemu para executar um kernel Linux e comandos associados para gravar naquela FS.

    
por 27.08.2012 / 14:18
2

Se o seu sistema usa os udisks (e o polkit permite que os udisks sejam montados para usuários não-root), você pode montar o arquivo com:

udisksctl loop-setup -f file.img -o <OFFSET>

<OFFSET> é um valor inteiro para representar o número de bytes no qual iniciar a montagem de loopback. Você pode usar a opção -r se quiser montar somente leitura.

    
por 12.03.2018 / 07:29