umask parece variar de usuário

1

Eu tenho um sistema Ubuntu de desenvolvimento para o qual tenho vários usuários: eu (com sudo completo) e cerca de 5 outros usuários. (Eu configurei o sistema para que tudo nesse aspecto ainda esteja em sua configuração padrão)

Estou tentando configurar o sistema para que várias pessoas possam colaborar em um único diretório usando o grouing e quero que as permissões padrão sejam 664. No entanto, quando alguns usuários editam arquivos, as permissões são 644.

Depois de muita investigação, a maioria dos usuários tem umask (marcada no prompt) de 0002 e quando eles criam arquivos, eles são 664 (como esperado), mas há 2 (eu e um outro) que têm 0022 umask os arquivos que saem são 644 e ninguém mais pode escrever para eles).

Procurei em todos os lugares, mas não consigo entender por que alguns usuários acabam com uma umask diferente, por exemplo, não há nada como o .bash_profile ou qualquer coisa assim)

Alguma idéia para a fonte da discrepância?

/ etc / bashrc

if [ $UID -gt 199 ] && [ "'id -gn'" = "'id -un'" ]; then
   umask 002
else
   umask 022
fi

/ etc / profile

if [ $UID -gt 199 ] && [ "'id -gn'" = "'id -un'" ]; then
    umask 002
else
    umask 022
fi

EDITAR:

Meu (ruim) ~ / .bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# User specific aliases and functions


export LANG=en_US.utf8

Outro usuário (bom) .bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# User specific aliases and functions
    
por paullb 26.11.2012 / 08:26

2 respostas

3

A julgar pelos arquivos que você forneceu, a instrução de teste em / etc / bashrc parece avaliar true para a maioria dos usuários, mas é falsa para você e para o outro usuário "ruim". Isso pode ter duas possíveis razões:

  • Você e a outra conta "ruim" têm um UID abaixo de 200
  • Você e o outra conta "ruim" parece estar em um grupo padrão chamado diferentemente do seu nome de usuário.

Você pode testar isso analisando a saída dos seguintes itens:

  • a saída do comando "id -u" (seu ID de usuário) e verifique se a saída está abaixo de 200
  • a saída de "id -un" (seu nome de usuário) e "id -gn" (nome do seu grupo) e verifique se eles diferem
por 26.11.2012 / 10:46
0

O umask provavelmente está sendo definido em

/ etc / bashrc

ou

/ etc / profile

    
por 26.11.2012 / 08:39

Tags