Hoje volto com outra dica que, pessoalmente, uso muito: ser capaz de ter um diretório compartilhado entre vários usuários em um Linux. Eu os coloquei em uma situação, com minha esposa em casa, nós dois usamos o mesmo PC com Arch Linux mas cada um com seu próprio usuário. Então, percebemos o problema com aquelas pastas que compartilhamos como música ou fotos, já que cada uma tinha seus próprios arquivos, duplicando coisas.
Foi então que pensamos fazer uma pasta compartilhada, mas esse é o problema das permissões. Se a pasta é minha ela não vê, se o arquivo é criado por mim, ela não apaga e assim por diante. No início, o patch era dar 777 permissões para esses arquivos toda vez que editávamos algo para o outro acessar até encontrarmos a solução, Permissões de grupo!
O que são permissões de grupo?
Isso é o melhor, atribuir a esse diretório compartilhado e todo o seu conteúdo um grupo especial com permissões de leitura e gravação, com o qual todos os membros do grupo terão acesso ao referido diretório. Isso permite que, simplesmente adicionando nossos usuários àquele grupo, já possamos interagir naquele diretório.
E como faço para configurá-lo?
Esta é a melhor parte e continuo contando como fiz isso com minha esposa. A primeira coisa é criar esse diretório, que no exemplo chamarei de «compartilhado".
sudo mkdir /home/compartido
Eu crio dentro de / home e fora de nossas contas, para evitar que os diretórios superiores se incomodem com suas próprias permissões. Agora devemos criar o grupo, que colocaremos «compartilhado»
sudo groupadd compartidos
E atribuímos este grupo ao diretório que criamos antes e também alteramos as permissões, de forma que tudo o que criamos dentro, sejam diretórios ou arquivos, também pertença a este grupo.
sudo chgrp -R compartidos /home/compartido
sudo chmod g+s dirname
Além disso, temos que adicionar nossos usuários a ele. Então devemos repetir este comando para cada um:
sudo usermod -G compartido sebastian
sudo usermod -G compartido mimujer
Até agora, temos o diretório «/ home / shared»Que pertence ao grupo«compartilhado«, Com o que todos os utilizadores membros do mesmo podem aceder e tudo o que se cria no directório, pertencerá ao grupo com o que qualquer um de nós os poderá ver.
Agora precisamos apenas de um último passo, que pode ser opcional, mas é mudar o umask dos usuários, para garantir que cada novo arquivo que criamos seja modificável pelos outros membros do grupo. Isso afeta todo o usuário, não apenas o diretório, então eles precisam ver se funciona para eles ou não. No meu caso, como só eu e minha esposa usamos o sistema, isso não nos incomoda e nos atribuímos um umask de 002, o que significa que todo arquivo criado começa com 775 permissões.
Editando o umask
Para editar o umask, em cada usuário você deve editar o arquivo .profile ou .bashrc que está dentro da casa do usuário e modificar o valor de umask pelo número desejado. Se a opção não estiver lá, devemos adicioná-la.
Então, no console, colocamos:
sebastian@multivacs ~> vim .profile
E veremos algo assim:
Então, vamos para a linha que diz umask, pressionamos a letra i para editar e remover o # para remover o comentário. Mudamos o número para 002. Se a linha não aparecer, eles devem adicioná-la.
Assim que terminar, pressionamos a tecla Esc para sair do modo de edição e então escrevemos :+q+w. O que nos faz salvar as alterações e sair do Vi.
Será semelhante a esta imagem:
E é isso! Se eles fecharem sua sessão de usuário e reabri-la, as alterações serão realizadas, então o diretório compartilhado estará funcionando.
Ótima dica.
Genial.
Alguns anos atrás eu vi a necessidade de fazer isso sozinho, o que eu não sabia era o umask ... ao invés disso coloquei uma tarefa no crontab 🙂
Obrigado pela dica
Sim, o crontab também é bom. O que você colocou para atribuir 775 permissões ao conteúdo?
Ótima dica .. ..salve se necessário;) ..
Ok, você cria a pasta / home / shared e atribui o grupo "shared" a ela, mas
A qual usuário esta pasta pertence? Ou seja, quem é o dono? Eu, a outra pessoa ou o usuário root cuja conta está desabilitada desde que uso o sudo?
Por outro lado, encontro-me com o seguinte problema: Os arquivos que eu crio não podem ser excluídos pela outra pessoa e os arquivos que a outra pessoa cria não posso excluir eu mesmo.
O que eu fiz de errado?
Ao criar a pasta com o sudo, você deve deixar o root como proprietário. Você também pode modificar isso com o comando chown para atribuir outro usuário.
Por outro lado, verifique se os arquivos que você cria o fazem com 775 permissões (o que dá umask 002). Se eles não tiverem essas permissões, pode haver algumas configurações incorretas.
Da mesma forma, vale esclarecer que o umask afeta cada novo arquivo que é criado no diretório, mas se mover ou copiar conteúdo de outro local, as permissões originais são mantidas e não aquelas que definimos para o diretório.
Ei Tem razão.
Estive procurando e o problema é causado por aquela última coisa que você diz: Ao mover um arquivo de outro local para a pasta compartilhada, as permissões originais são mantidas.
Existe uma solução para isso?
Eu poderia usar pérolas.
Nesse caso, a melhor coisa seria colocar um crontab como KZKG ^ Gaara disse, no qual você poderia colocar um comando para atribuir o grupo e as permissões ao conteúdo da pasta a cada X vez.
Isso quer dizer algo assim no crontab:
sudo chgrp -R compartidos /home/compartido/*
chmod -R 775 /home/compartido/*
Para tudo novo, vá para o grupo Compartilhado com permissões 775.
Ignore o * no final de cada linha, estava pensando em outra coisa quando coloquei 😛
Amigo obrigado.
Postagem muito boa, mas prefiro ter uma partição separada, na qual posso colocar tudo o que desejo compartilhar. Tenho um generoso disco de 500 GB, no qual utilizo 100 GB com Linux e uma partição de 400 GB (ntfs) na qual estão todas as músicas, fotos, etc ... No meu pc somos dois usuários e cada um pode acessar a partição ntfs e colocar e remover o que quisermos, quando quisermos. Se eu não quiser compartilhar nada, tenho alguns itens em meu nome de usuário. 🙂
Já é outra maneira de fazer, mas o problema não é onde colocar os arquivos, mas sim configurar as permissões e controlar o acesso dos diferentes usuários.
Você pode tê-lo em uma partição NTFS, correto, mas você também tem fragmentação, mais lento que EXT4 e menos segurança, embora se for bom para você tê-lo dessa forma é igualmente válido.
OK! Boa dica, mas eu ainda adicionaria uma tarefa para alterar as permissões de 775 dos novos arquivos a cada login, e resolver o problema de arquivos movidos de outra pasta.
Além disso, muito obrigado por compartilhar!
Interessante, obrigado!
Estou levantando algo relativo ao grupo de compartilhamento primário de algumas distribuições GNU / Linux. Algumas distros criam o usuário com os usuários do grupo primário e não usando um grupo primário igual ao nome do usuário.
A diferença é que usando os usuários do grupo primário, por padrão, tudo está sendo compartilhado com os usuários do grupo ao qual todos os usuários criados nessa distro pertencerão, se em vez disso forem criados com o mesmo grupo do nome do usuário, por padrão não nada será compartilhado.
Exemplo:
$ ls -l /home/user/*.txt
-rw-r - r– 1 carlos carlos 126 25 de março de 2012 notes.txt
$ ls -l /home/user/*.txt
-rw-r - r– 1 usuários carlos 126 25 de março de 2012 notes.txt
Eu não recomendo usar os usuários do grupo primário, melhor criar seu próprio grupo primário ao criar o usuário.
#groupadd carlos
# useradd -g carlos -G lp, wheel, uucp, audio, cdrom, cdrw, usb, lpadmin, plugdev -m -s / bin / bash carlos
O -g carlos indica o uso do grupo pai carlos.
Você pode mudar o grupo primário de um usuário com # usermod -g, mas isso não mudará o grupo primário de todos os arquivos e pastas que já estão em / home / carlos, você terá que mudar todos eles.
Exemplo: mude os usuários do grupo primário de usuário carlos para o grupo primário carlos e, em seguida, mude
todas as permissões de arquivo e pasta do usuário carlos para que permaneçam de carlos carlos.
#groupadd carlos
#usermod -g usuários carlos
# cd / home
# chown -R carlos: carlos carlos
Com relação ao compartilhamento, você pode criar um usuário chamado compartilhado com seu grupo primário compartilhado e, para que não haja problemas de permissão ao copiar, primeiro você altera o usuário
com "$ su - shared" então o que você deseja é copiado para / home / shared, com isso as permissões do que é copiado passam a ser do usuário compartilhado.
Se já houver arquivos de cópia pertencentes a outros usuários e grupos primários, você deve alterar todos eles.
# cd / home
# chown -R shared: shared shared
Resta apenas algo no limbo, que eu não sei fazer para copiar graficamente como o usuário compartilhado, ou seja, sem ter que fazer $ su - shared
Copiar graficamente foi uma coisa muito boba, hehe, eu utilizo o pcmanfm aqui no openbox, mas você pode usar o gerenciador de arquivos que você tem ou deseja, ele só é executado como usuário compartilhado e não como usuário root.
$ su - compartilhado
$pcmanfm
$ golfinho
$mc
etc etc
Eu estava prestes a responder a isso. Se não, o outro é um crontab que muda o dono dos arquivos a cada x vez com um
chown -R compartido:compartido compartido
Parece-me que o comando "usermod -G the new group the user" basicamente muda o grupo do usuário para "the new group". Para adicionar um usuário existente a um novo grupo, acho que o correto seria "usermod -aG elnuevogrupo elusuario"
Outra coisa é que vejo aqui que várias pessoas recomendam fazer um "chmod -R 775", mas isso não afeta apenas os diretórios, mas também todos os arquivos (tornando-os executáveis), o que apresenta um risco desnecessário. Melhor fazer algo como «find / home / shared -type d -print0 | xargs -0 chmod 755 "e se necessário com os arquivos você pode fazer algo semelhante, mas usando" -type f "e concedendo permissão 664.
Finalmente, uma maneira de fazer com que várias contas tenham acesso a um arquivo ou pasta, independentemente de quem seja o proprietário ou grupo, é usando o comando "setfacl" que está no pacote acl (se bem me lembro). Seu uso é bem explicado na página do manual.
Eu tenho o seguinte problema. Criei 4 usuários (web1, web2, web3, web4) e desejo criar uma pasta de grupo de acesso para os usuários do grupo web. Quando crio o arquivo .htaccess sei que tenho que colocar require valid-user, mas se eu colocar require valid-user web1 web2 web3 web4 para que eles possam acessar a pasta com sua senha, quando tento acessar a pasta ele me pede o usuário e senha de cada um. Como faço para solicitar apenas o nome de usuário e senha de quem deseja entrar? porque se presume que um não sabe a senha do outro.
Olá.
O 4º terminal deve ter o plural "compartilhado":
sudo usermod -G compartilhado sebastian
sudo usermod -G compartilhou minha mulher
Saudações.
Gustavo
Felicidades :
Estamos migrando do Windows Server para o CentOs 6 e ainda estamos em processo de adaptação. Minha consulta: Existe uma interface gráfica no CentOs para compartilhar pastas e dar acesso aos usuários para modificar, editar e / ou excluir arquivos?, Ou devo fazer todo o procedimento acima.
Obrigado pela ajuda.
Também estou instalando um centos 6 e quero usá-lo com samba que me permite compartilhar arquivos de linux e windows, sei um pouco, não uso muito linux, mas no trabalho me perguntam como faço para compartilhar pastas mas em modo gráfico ??.
Oi. Por favor me ajude! ... Acontece que ao fazer isso em minha mente de usuário Linux, agora perdi privilégios. Não consigo executar nada parecido com o sudo. Recebo a seguinte mensagem "Com licença, o usuário" nome de usuário "não está autorizado a executar" command_to_run "como root em" nome de usuário ""
Acho que quando mudei meu usuário para o grupo compartilhado, tirei os privilégios, e agora como faço para restaurá-los ???
Ei, amigo, há alguma maneira de fazer o mesmo, mas compartilhando arquivos com outras pessoas na LAN da Internet
Para isso você deve usar o SAMBA como Servidor de Arquivos. Felicidades
Oi. Quando cheguei ao comando sudo chmod g + s dirname, ele me disse que o arquivo ou diretório não existe. Você sabe qual é o problema?
Como faço para criar um grupo em outro grupo?
A linha:
sudo usermod -G compartilhado sebastian
deveria ser:
sudo usermod -a -G compartilhado sebastian
a primeira forma remove o resto dos grupos do usuário.
e se você está suado, você perde seus privilégios