Como sei as permissões de um usuário especificado no Linux com acesso root?

4

Eu tenho acesso root ao meu servidor local. E alguns dias atrás meu colega criou um usuário nesse servidor, me dando o nome e a senha. Mas o usuário tem permissões minimizadas. Como o usuário não pode nem criar um arquivo em seu próprio diretório pessoal.

Existe algum conceito sobre "as permissões de um usuário"? Se houver, como faço para verificar / modificá-lo?

    
por AGamePlayer 17.08.2013 / 04:23

3 respostas

6

Pode ser que o seu colega, ao criar a conta, tenha criado o diretório pessoal "manualmente", o que resultou na propriedade de root . Tente executar o seguinte como root :

chown -R username ~username
chgrp -R $(id -gn username) ~username

Em que username é o nome da conta problemática.

Editar

Se este for o seu problema, para evitar que isso aconteça no futuro, você deseja adicionar a opção -m à linha de comando useradd usada para criar a conta de usuário. Isso garante que o diretório inicial selecionado do usuário seja criado, se não existir. Isso cria o diretório inicial com a propriedade "correta" e as permissões para que você não enfrente esse tipo de problema.

Editar 2

O comando chgrp adicionado acima alterará a propriedade do grupo de todo o diretório inicial do grupo principal username to username . Dependendo do seu ambiente, isso pode não ser exatamente o que você deseja e possivelmente será necessário alterar a propriedade do grupo de subdiretórios específicos dentro do diretório inicial "manualmente", definindo assim a propriedade de grupos diferentes para subdiretórios diferentes. Isso geralmente não é o caso de computadores pessoais, mas desde que você mencionou "um colega", presumo que estamos falando de um ambiente de escritório em rede, no qual a propriedade de grupo é importante para diretórios compartilhados.

    
por 17.08.2013 / 10:44
1

Não há realmente nenhum método para fazer isso no Unix, de maneira sistemática, como você está perguntando. Se você usar o sudo , poderá criar algo parecido com o que está perguntando, mas será completamente artificial e muito limitante na forma como uma lista completa pode ser fornecida. Em sudo você pode criar grupos de comandos e permitir o acesso do usuário (ou grupos de usuários) a esses grupos de comandos.

Exemplo

# /etc/sudoers
someuser ALL=/sbin/service, /sbin/chkconfig

Você pode então usar o comando sudo -l como someuser para ver quais comandos eles podem executar.

$ sudo -l
...

User someuser may run the following commands on this host:
    (ALL) ALL
    (root) /sbin/service, (root) /sbin/chkconfig, (root)
    
por 17.08.2013 / 05:32
1

Como Joseph R. sugere, a explicação provável é que o diretório pessoal não foi criado com a propriedade correta. Em 99% dos casos, os problemas de acesso são apenas uma questão de obter os bits de propriedade e permissão definidos corretamente, usando os comandos chown e chmod , respectivamente. (Em alguns casos exóticos, outros fatores entram em cena, como o SELinux, o AppArmor, as ACLs do sistema de arquivos ou o mapeamento de credenciais do sistema de arquivos da rede. Como eu disse, porém, é altamente improvável que essas situações se apliquem a você.)

Para responder ao resto da sua pergunta ... sim, você pode ver por si mesmo como isso falha. Como root, você pode se tornar temporariamente outro usuário, e você pode fazê-lo sem saber a senha do usuário - basta executar /bin/su - username . Isso executará um shell com o outro usuário, como se você tivesse feito login usando esse nome de usuário e senha. Quando você acabar com esse shell, exit e você voltará para o seu shell de raiz original.

    
por 18.08.2013 / 11:14

Tags