Eu abusei sudo
.
Criei um diretório temporário de vida muito curta que gostaria de compartilhar entre alguns usuários por algumas horas ... e nomeei esse diretório /some/path/tmp
Infelizmente, eu lancei em sudo chown 777 -R /tmp
vez de sudo chown 777 -R tmp
, então meu /tmp
arquivo agora é completamente público.
Eu uso o comum com /tmp
bastante frequência (todos os dias, quase todas as horas) pessoalmente para arquivos de vida curta, scripts, muitos scripts.
É uma preocupação de segurança agora que está completamente definida para o público? Devo alterá-lo de volta para configurações mais seguras ou como configurações padrão comuns para uma distribuição Debian ou Ubuntu - (não sei quais eram)? Quais são as permissões corretas para /tmp
?
permissions
chown
tmp
Stephane Rolland
fonte
fonte
chown
ouchmod
?chmod
. chown (como ch - own), é sobre propriedade de arquivos, cujo usuário possui um arquivo. chmod (como ch - modifify) é mais sobre quem pode executar, escrever dentro ou ler o conteúdo de um arquivo.chown 777
que define a propriedade de um arquivo para o usuário com o ID 777. No entanto, todas as respostas, incluindo a aceita, funcionamchmod
. Como todos eles definem a permissão com o mesmo valor para todos os usuários (proprietário, grupo, outros), a maioria dos efeitos da propriedade do arquivo se torna irrelevante. No entanto, o comando correto para corrigir o resultadosudo chown 777 -R /tmp
deve sersudo chown root -R /tmp
.Respostas:
As configurações normais para
/tmp
1777 sãols
mostradas comodrwxrwxrwt
. Ou seja: bem aberto, exceto que apenas o proprietário de um arquivo pode removê-lo (é o que esset
bit extra significa para um diretório).O problema com o
/tmp
modo 777 é que outro usuário pode remover um arquivo que você criou e substituir o conteúdo de sua escolha.Se você
/tmp
é um sistema de arquivos tmpfs, uma reinicialização restaurará tudo. Caso contrário, executechmod 1777 /tmp
.Além disso, muitos arquivos
/tmp
precisam ser privados. No entanto, pelo menos um diretório precisa criticamente ser legível pelo mundo:/tmp/.X11-unix
e possivelmente outros diretórios similares (/tmp/.XIM-unix
, etc.). O comando a seguir deve principalmente corrigir as coisas:Ou seja, torne todos os arquivos e diretórios privados (remova todas as permissões para grupos e outros), mas torne os soquetes X11 acessíveis a todos. O controle de acesso nesses soquetes é imposto pelo servidor, não pelas permissões de arquivo. Pode haver outros soquetes que precisam estar disponíveis ao público. Corra
find /tmp -type s -user 0
para descobrir soquetes de propriedade raiz que talvez você precise tornar acessíveis ao mundo. Também pode haver soquetes pertencentes a outros usuários do sistema (por exemplo, para se comunicar com um barramento do sistema); explore comfind /tmp -type s ! -user $UID
(onde$UID
está seu ID de usuário).fonte
go-rwx
: sem permissões para grupos e outros. Isso define as permissões pararwx------
(exceto que os arquivos criados desde ochmod
final podem ter menos permissões, por exemplorw-------
). Em outras palavras, os arquivos serão acessíveis apenas pelo proprietário./tmp/.[!.]*
é incluir arquivos de ponto, que geralmente existem no/tmp
./tmp
e/var/tmp
deveria ter lido, gravado e executado direitos para todos; mas você também adicionaria o sticky-bit (o+t
), para impedir que os usuários removam arquivos / diretórios pertencentes a outros usuários. Entãochmod a=rwx,o+t /tmp
deve funcionar.Quanto à alteração recursiva das permissões ... Enquanto o proprietário / grupo permanecer como é para os arquivos e diretórios, isso não deve ser um problema. Mas você pode alterar a permissão de tudo em
/tmp
(não o / tmp propriamente dito) para garantir a privacidade dos usuários, removendo osrx
direitos de outras pessoas e talvez do grupo.Encontrar é uma boa maneira de fazer isso. Como root, faça:
fonte
/tmp/.X11-unix/*
legível para o mundo ou não será mais possível iniciar aplicativos X.chmod a=rwX,o+t /tmp -R
deve fazer afind
mágica.De uma máquina CentOS 5.9.
fonte