como fornecer a todos os usuários a permissão de leitura / gravação para arquivos em um diretório comum

1

Instalei o sistema Ubuntu em um disco SS e desejo que os usuários acessem as partições do segundo disco (mecânico) como repositórios comuns com permissões completas de leitura / gravação / exclusão para cada arquivo. E eu desejo que cada usuário veja tal partição (digamos / dev / sdb7) como um diretório com um nome fixo (digamos / home / the_user / F). Fui aconselhado ( É possível montar uma partição como um repositório comum para usuários com o mesmo caminho relativo? ) para montar a partição durante a inicialização e para ligar simbolicamente esse ponto de montagem a algum lugar na casa do usuário. No entanto, no manual para

link
Eu vejo uma opção
‘-d’
‘-F’
‘--directory’
     Allow users with appropriate privileges to attempt to make hard
     links to directories.  However, note that this will probably fail
     due to system restrictions, even for the super-user.
Eu tenho medo disso. Por favor me avise um exemplo de um link apropriado; e o grupo correspondente ou comandos bindfs a serem usados no login do usuário ou uma vez para sempre pela raiz. Obrigado!     
por Tomáš Pečený 27.08.2017 / 23:39

3 respostas

1

Você não precisa usar links físicos; na verdade, não podemos criar um link físico para um diretório porque ele cria um loop na hierarquia do sistema de arquivos.

Você tem que usar a opção -s para criar um symlink (link simbólico):

Digamos que eu montei /dev/sda7 on /media/some/mount/point . Para criar um link para esse caminho, tenho que executar:

ln -s [target] [symlink]

Como:

ln -s /media/some/mount/point  /home/username/F

A permissão do link seria 777 mas, no entanto, um link simbólico é um arquivo diferente do seu diretório real, ele só concede acesso ao symlink e o usuário deve ter permissões corretas para poder trabalhar com os arquivos em /media/some/mount/point .

    
por Ravexina 28.08.2017 / 00:35
0

Em relação à sua preocupação com a vinculação ao diretório montado, parece que você pode simplesmente ter tropeçado no programa errado. De acordo com sua postagem, você foi aconselhado a criar links simbólicos (por exemplo, links simbólicos). No entanto, o comando link cria apenas links físicos. Para criar links simbólicos, você pode usar o comando ln , por exemplo:

ln -s /path/to/mount/point  /home/the_user/F

Com relação ao acesso compartilhado, você pode configurá-lo usando ACLs (listas de controle de acesso), por exemplo:

sudo setfacl -Rm g:mount-group:rwx /path/to/mount/point
sudo setfacl -Rdm g:mount-group:rwx /path/to/mount/point

Para demonstrar como isso pode parecer e fornecer um ponto de partida para a experiência, aqui está um exemplo mais longo que vincula a montagem de um diretório (você substitui isso pela montagem real que deseja), define sua propriedade e suas permissões (usando listas de controle de acesso) e, em seguida, cria um link simbólico dentro de outro diretório:

# Create a group to own the shared mount
sudo groupadd mount-group

# Create a user that belongs to this group
sudo adduser mount-user
sudo usermod -a -G mount-group mount-user

# Create a directory to mount
mkdir /tmp/mount-source

# Create the mount-point
mkdir /tmp/mount-target

# Bind-mount the directory onto the mount point
sudo mount --bind /tmp/mount-source /tmp/mount-target

# Set the group owner for the mounted volume
sudo chown :mount-group /tmp/mount-target

# Set the group permissions to match the user permissions
sudo chmod -R g=u /tmp/mount-target

# Set the setgid bit on the mounted volume
sudo chmod g=u,g+s /tmp/mount-source

# Set the ownership and permissions for the mounted volume using an ACL
sudo setfacl -Rm g:mount-group:rwx /tmp/mount-target

# Set the default ownership and permissions for files created inside the mount-point
sudo setfacl -Rdm g:mount-group:rwx /tmp/mount-target

# Login as the test user
su -l mount-user

# Link a subdirectory inside the user's home folder to the mounted volume
ln -s /tmp/mount-target ~/link-to-mount-target

# Create a new file inside the mounted volume
echo 'Hello world!' > ~/link-to-mount-target/hello.txt

# Check the permissions on the new file
getfacl ~/link-to-mount-target/hello.txt
    
por igal 28.08.2017 / 01:22
0

Acho que sua pergunta precisa de uma resposta dupla: em primeiro lugar, na montagem do dispositivo no sistema de arquivos e, em segundo lugar, na vinculação de um local de destino.

Antes de começar

As seguintes explicações requerem um programa terminal (atalho do teclado: Ctrl + Alt + t ) para digitar os comandos em.

Você também precisará de privilégios de superusuário. Normalmente (como o primeiro usuário após a nova instalação), você obtém os privilégios digitando sudo à frente do comando. Depois disso (normalmente, se você for o primeiro usuário após a nova instalação), é necessário fornecer sua própria senha antes que o comando seja executado.

Seu disco rígido (o disco "mecânico") precisa estar conectado ao seu computador e formatado corretamente com um sistema de arquivos (como o ntfs ou o ext4).

Cuidado! Ao alterar seu arquivo fstab, você trabalha com elementos internos que podem impedir o seu computador de inicializar. Isto não é um dano permanente, mas precisará de habilidade e tempo para consertar. Trabalhe com cuidado.

Se tiver dúvidas sobre qualquer um dos pré-requisitos acima, por favor, pergunte no comentário.

Montando o disco no momento da inicialização

A montagem de discos no tempo de inicialização é feita no arquivo /etc/fstab . Para isso, você precisa saber o UUID do seu disco "mecânico" ou pelo menos seu nome no diretório /dev .

Encontre o UUID e o nome (semelhante a /dev/sdb5 ) do seu disco:

ls -l /dev/disk/by-uuid

Ele será listado aqui. Agora determine o sistema de arquivos. Ele será listado na última coluna da linha apropriada de

sudo fdisk -l | less

Em seguida, decida o caminho de montagem e crie-o:

sudo mkdir -p /media/shareddrv

Conhecendo o UUID, o nome e o tipo de sistema de arquivos do disco, sua linha de configuração para /etc/fstab é semelhante a:

UUID=481aba75-c8a7-4b70-bdc4-fab4de7c1410  /media/shareddrv  ext4  errors=remount-ro  0  2

onde UUID=481aba75-c8a7-4b70-bdc4-fab4de7c1410 pode ser algo como /dev/sdb5 se você tiver problemas para estabelecer o que é o UUID. A parte /media/shareddrv é o local que você escolheu e ext4 é o tipo de partição, e será diferente dependendo do seu disco. O resto permanece de preferência como é aqui.

Você precisa adicionar essa linha inteira ao seu /etc/fstab . Como há muitas maneiras de fazer isso, é muito conveniente usar sudo nano /etc/fstab e digitar / colar a linha no final do arquivo.

Agora, faça as alterações funcionarem para você: a maneira mais simples é reiniciar o computador (por exemplo, sudo init 6 ou sudo shutdown -h now ). Se tudo funcionar, você verá seu disco "mecânico" e seu ponto de montagem depois de digitar: df -h no terminal.

Vinculando o disco em diretórios de usuários

Esta parte pode ser feita usuário após usuário, semi-manualmente. Para um usuário "alice", execute:

TMPUNAME=alice;  sudo -u $TMPUNAME ln -s /media/shareddrv /home/$TMPUNAME/F

E repita isso para cada usuário. No final, você poderia unset TMPUNAME , mas não necessariamente.

Espero que tudo funcione para você. Se você acha este mini-tutorial útil, por favor vote minha resposta e a marque como útil. Obrigado! Também faça mais perguntas se algo não estiver claro ou não funcionar!

    
por Patryk Mazurkiewicz 28.08.2017 / 01:28