Alterar grupo principal do usuário - ter novos arquivos criados nesse grupo

6

Estou configurando um ambiente em que estou concedendo a vários usuários acesso SSH em meu servidor. Eles são todos confiáveis, mas eu quero encurralá-los em um segmento do sistema de arquivos. Eu criei os usuários assim:

adduser username -ingroup groupname

que funciona bem o suficiente. Quando eu fizer login como um deles, posso fazer isso e obter as respostas certas:

$id -r -u -n
username
$id -r -g -n
groupname

Eu mudei o grupo principal da minha própria conta de usuário para groupname fazendo isso:

$usermod myuser groupname

Eu fiz o logout e voltei a entrar. Agora os arquivos que eu gostaria que o grupo pudesse acessar estão aqui:

$ls -l / | grep groupname
drwxr-xr-x  3 root     groupname    4.0K 2012-03-26 20:20 groupfiles
$cd /groupfiles
$ls -l 
drwxrwxr-x  2 root groupname    4.0K 2012-03-26 20:32 project

As permissões são por design, os membros do grupo não podem alterar arquivos / pastas em /groupfiles , mas podem adicionar, editar e excluir em /groupfiles/project

O problema que estou tendo é que, quando faço isso, recebo o grupo errado:

$touch test
$ls -l test
-rw-rw-r-- 1 myuser myuser 0 2012-03-26 20:58 test
$id -r -g -n
groupname

Eu preciso fazer com que os arquivos criados pelo vim, touch, etc tenham o grupo correto. Estou ciente de newgrp() e setgid bits. Estes são não o que estou procurando. Isso funciona bem para os novos usuários que criei, , mas não funciona para o meu usuário. Não tenho certeza do que aconteceu, mas está funcionando bem agora. Acabei de deixar esta questão para futuros consertadores.

    
por Huckle 27.03.2012 / 03:04

1 resposta

12

Acredito que o comportamento desejado seja sudo usermod -g groupname myuser .

Nota: esse comando altera a propriedade do grupo para todos os arquivos em $ HOME, mas não fora de casa. Você pode querer alterá-las de volta chgrp -R myuser $HOME

Em seguida, você precisa fazer logoff e voltar às alterações que deseja executar.

Se você não quiser alterar o seu grupo primário 'myuser', o newgrp é o caminho a seguir.

sudo usermod -g admin bodhi

ssh localhost

touch file

newgrp bodhi
touch file2

ls -l file file2
-rw-r--r-- 1 bodhi admin 0 2012-03-26 19:28 file
-rw-r--r-- 1 bodhi bodhi 0 2012-03-26 19:29 file2
    
por Panther 27.03.2012 / 03:21