Montar diretório para usuários não administradores em uma configuração de inicialização dupla

5

Eu tenho um PC de inicialização dupla (Ubuntu 12.04 com gnome, windows Vista) e admin usa todas as unidades, incluindo a unidade C do Windows.

Eu gostaria que os usuários com privilégios padrão pudessem ler (não escrever, acessar apenas um documento) um único subdiretório chamado A da unidade C.

Portanto, no arquivo /etc/fstab , /media/123.../A ( C:\A no Windows) deve estar vinculado ao diretório documents / A dos usuários ( /home/user/Documents/A ), somente para usuários padrão (não administradores).

Isso deve incluir também os subdiretórios de A e todos os arquivos. Existe uma maneira de fazer isso?
Obrigado antecipadamente!

    
por bob 27.09.2013 / 13:27

3 respostas

5

Você pode definir permissões para uma partição do Windows, mas não pode definir permissões para arquivos / pastas individuais na partição; no momento da montagem, você define as permissões para a unidade whole .

Em sua pergunta, você não mencionou se os usuários com privilégios padrão precisam ter "acesso somente leitura ao subdiretório A e gravar acesso ao restante da partição do Windows ", ou "acesso somente leitura ao subdiretório A e nenhum acesso ao resto da partição ". Infelizmente, ambos os cenários não podem ser realizados exatamente, devido à frase de abertura desta resposta.

Se você quiser conceder a um usuário acesso somente leitura a uma pasta específica na partição do Windows, esse usuário terá acesso somente leitura a toda a partição. Se estiver tudo bem com você, então aqui está uma explicação sobre como fazer isso:

  1. Primeiro, crie um grupo para os usuários que terão acesso somente leitura. Para o exemplo, usaremos WindowsRO . Então, o comando para criar o grupo é:

    sudo groupadd WindowsRO
  2. Em segundo lugar, adicionaremos os usuários (aos quais queremos conceder acesso somente leitura) ao grupo. Supondo que um usuário seja chamado de notadmin , este é o comando:

    sudo usermod -a -G WindowsRO notadmin

    Repita este comando para todos os usuários necessários.

  3. Agora, precisamos obter o GID (ID do grupo) do grupo, porque vamos usá-lo ao montar a unidade. Para fazer isso, execute o seguinte:

    grep WindowsRO /etc/group | cut -d: -f3

    Anote o número que foi gerado, porque precisaremos disso na etapa 5. Para este exemplo, suponho que a saída seja 1003 .

  4. Agora, precisamos obter o UID (ID do usuário) da conta de administrador, porque vamos usá-lo ao montar a unidade. Este exemplo assumirá que a conta de administrador é bob . Para fazer isso, execute o seguinte:

    grep bob /etc/passwd | cut -d: -f3

    Anote o número que foi gerado, porque precisaremos disso na etapa 5. Para este exemplo, suponho que a saída seja 1000 .

  5. Agora vamos editar o arquivo /etc/fstab . Eu suponho que a partição do Windows em questão é /dev/sda2 , que você está montando em /media/123 e que é uma partição ntfs . Esta é a linha que você deve ter:

    /dev/sda2    /media/123    ntfs    rw,gid=1003,uid=1000,dmask=027,fmask=037,#AnyOtherOptions#
    • gid=1003 é o número que recebemos da etapa 3 (o GID do grupo).
    • uid=1000 é o número que recebemos da etapa 4 (o UID da conta de administrador).
    • dmask=027 define as permissões nas pastas como: -rwxr-x--- , o que significa que o proprietário (a conta de administrador) terá acesso total ( rwx ), e o grupo só terá acesso de leitura ( r-x ) e qualquer outra pessoa não terá acesso a todos ( --- ).
    • fmask=037 define as permissões nos arquivos como: -rwxr----- . Isso é semelhante a dmask ; o grupo só terá acesso de leitura aos arquivos.
    • Você deve substituir #AnyOtherOptions# por quaisquer outras opções que tenha. Por exemplo, você pode ter auto , que monta automaticamente a partição na inicialização.
  6. Quando o procedimento acima estiver concluído, use sudo mount -a para aplicar as alterações que fizemos no arquivo fstab . Espero que você não tenha erros.

    Agora você deve testar se os usuários podem acessar a partição. Se sim, vá para a próxima etapa para adicionar esse link A à pasta Documentos.

  7. Supondo que o diretório base da nossa conta notadmin seja /home/notadmin e que essa pasta A esteja em /media/123/some/folder/A , faça o seguinte:

    ln -s /media/123/some/folder/A /home/notadmin/Documents/A

    Agora você deve ver um link em notadmin 's Documents, apontando para A . Ele só terá acesso de leitura a ele (e seus subdiretórios, já que ele tem acesso somente leitura a toda a partição). Siga a mesma coisa para outros usuários.

Todos os itens acima devem atender aos seus requisitos, exceto pelo ponto que mencionei no começo: que tipo de acesso o usuário deve ter para o restante da partição? O acima fornecerá acesso somente leitura a toda a partição, e não apenas à partição A ; não podemos definir permissões para arquivos / pastas específicos ao montar partições do Windows.

    
por Alaa Ali 04.10.2013 / 22:52
1

Simplesmente possível com overlayfs

Guia para montar uma pasta do Windows no modo somente leitura para usuário normal (modo de gravação para raiz ou outro usuário)

  1. Crie um ponto de montagem para o usuário ROOT

    sudo mkdir /root/win
    
  2. Crie um ponto de montagem para o usuário normal

    mkdir /home/$USER/folder
    mkdir /tmp/folder
    
  3. Monta a divisão do Windows no modo de gravação

    sudo mount /dev/disk/by-label/winOS /root/win
    
  4. Monte a pasta da partição do Windows no modo somente leitura

    sudo mount -t overlayfs -o ro,lowerdir=/root/win/folder,upperdir=/tmp/folder  overlayfs /home/$USER/folder
    

Acesse a partição de janelas graváveis como usuário root

sudo nautilus /root/win

Acesso somente à pasta da partição do windows

nautilus /home/$USER/folder
    
por totti 08.10.2013 / 10:44
0

Se você quiser montar um diretório gravável no modo readonly em outro local, poderá usar bind mount .

Por exemplo, monte o diretório home no modo readonly @ / tmp / home

sudo mount --bind ~ /tmp/home
sudo mount -o ro,remount  /tmp/home

Se você quiser acessar apenas uma pasta específica para o usuário normal, monte a partição em um local inacessível (Exemplo / root / abc ).

    
por totti 10.10.2013 / 12:16