Linux e o misterioso caso de desaparecimento (e reaparecimento) de diretórios

Linux e o misterioso caso de desaparecimento (e reaparecimento) de diretórios

Configurei meu primeiro servidor Ubuntu e loguei imediatamente (como myuser) para começar a personalizá-lo. Eu vou /opte corro mkdir sandbox.

mkdir: Não é possível criar o diretório 'sandbox': permissão negada

Permissão negada?!? OK. Então eu corro sudo -ie digito myusera senha do. Execute novamente o mkdircomando e pronto! O diretório é criado. Eu saio.

Eu faço login novamente como myuser, navego /opte executo ls: nada! Nenhum diretório visível dentro /opt! O que!?!?

Então eu sudo novamente sudo -ie executo novamente ls.Agoraele vê sandbox/.

Acho que estou perdendo algum conhecimento fundamental do Linux com relação a usuários e raízes. Durante a configuração/instalação do servidor, ele me pediu para criar um usuário, o que eu fiz ( myuser). EUassumidoeste também seria o usuário root (com privilégios de administrador completos), já que não foi apenas o usuário que criei durante a instalação, é o primeiro usuário no sistema!

Então, por que isso myusernão pode:

  • Criar diretórios fora /home/myusersem sudo?
  • Veja os diretórios criados no "modo sudo"

Também sou vago quanto à diferença entre sudoe suo rootusuário.

Por fim, além de compreender totalmente esses princípios básicos, gostaria de ter vários softwares de servidor instalados /opt/sandbox/que pudessem funcionar 24 horas por dia e interagir com o sistema de arquivos local. Agora não tenho certeza se devo instalar esses aplicativos enquanto estiver logado simplesmente como myuser, sudo como myuserou qualquer outra coisa.

Esses servidores estão dentro de uma LAN doméstica privada e segura, então não preciso de "administrador real" e controles de segurança malucos. Estou apenas configurando um ambiente de desenvolvimento simples para uma pequena ferramenta de software que estou escrevendo. Agradecemos antecipadamente por qualquer ajuda com as perguntas acima.

Responder1

/opt por padrão pertence ao usuário roote ao grupo root.

Experimente l /e você verá que a pasta /opt pertence a " root root" que são o usuário e o grupo respectivamente.

Se você realmente deseja criar e modificar arquivos dentro de /opt com um usuário não root, você precisará criar uma pasta lá e modificar suas permissões para que possa ser acessado livremente por um usuário não root.

Exemplo:

sudo mkdir /opt/sandbox
sudo chown myuser:users /opt/sandbox

O primeiro comando cria a pasta, mas ela pertence roota um grupo. root
O segundo comando altera a propriedade ( chown) do seu usuário nomeado myusere o torna parte do grupo users(do qual myuserfaz parte).

Responder2

Então, por que meu usuário não pode: ...

Tentar

ls -l sandbox
getfacl sandbox

Se o resultado não estiver claro ou não explicar o que você está vendo, recorte e cole o resultado em uma edição da sua pergunta.

Também sou vago quanto à diferença entre sudo, su e o usuário root.

sudooferece privilégios elevados de root (ou seja, administrador) para apenas um comando. Existe um arquivo de configuração para o sudo no qual você pode controlar quais usuários têm permissão para fazer o quê.

suoferece privilégios elevados para vários comandos, fornecendo uma nova sessão de shell com um ID de usuário efetivo root.

O usuário root é um usuário especial chamado root que você pode ver em /etc/passwd. Há cerca de uma dúzia de outros usuários que você sempre encontra em um sistema Unix ou Linux. As pessoas geralmente têm uma conta comum e a usam para todos os trabalhos, exceto para ações que exigem absolutamente privilégios de root (por exemplo, instalação de software para uso de todos os usuários do sistema). Isso torna mais difícil para o malware fazer coisas ruins e torna mais difícil para você cometer erros irrecuperáveis.

Eu gostaria de ter vários softwares de servidor instalados

Acho melhor usar o gerenciador de pacotes do sistema para instalar pacotes. Eu preferiria não criar pastas em /opt manualmente, essa seria minha última escolha.

informação relacionada