Os arquivos do usuário ainda são privados quando existem dois usuários do sudo no Ubuntu?

31

Estou compartilhando meu PC Ubuntu pessoal com um de meus colegas.

Criei outro usuário com uma senha diferente (ele sabe, é claro) e a adicionei à sudoerlista.

Dado que existem dois sudousuários em um único sistema Ubuntu:

  • Os arquivos particulares (especificados pelos proprietários e permissões) de algum desses usuários ainda são particulares?

  • Posso modificar os arquivos do meu colega via sudocomando, even sudo suou vice-versa?

Jizhou Huang
fonte
6
O Ubuntu permite criar uma pasta pessoal criptografada ao criar o usuário. Esse pode ser exatamente o recurso necessário aqui.
Thorbjørn Ravn Andersen
Relacionado:   É possível manter um servidor refém se alguém tiver acesso root?
G-Man Diz 'Reinstate Monica'
@ ThorbjørnRavnAndersen Depois de criptografar a pasta pessoal, ainda consigo acessar os arquivos dentro da forma mais conveniente possível antes?
Jizhou Huang
3
Por que você não remove o acesso sudo do outro usuário e se torna o único administrador? Qualquer motivo as outras necessidades do usuário sudo para, você pode corrigir para que eles não precisam sudo (montagem, impressão, atualizações automáticas, etc.)
Xen2050

Respostas:

51

Se o seu colega está na lista de sudoers, ele tem raízes tanto quanto você, se ele quiser (e ele também pode se passar por você), e então ele pode ver tudo.

Essa é a pior configuração que você pode ter se quiser privacidade do usuário. Você deve ler definitivamente como funciona o gerenciamento de usuários no Linux. Aqui estão alguns artigos com os quais você pode começar:

E mesmo assim, se alguém tiver acesso físico à máquina em questão, não há privacidade, ele poderá entrar na inicialização em um shell raiz e ver tudo, não importa o quê, e se isso estiver protegido por senha, ele ainda poderá usar um dispositivo USB e siga por esse caminho.

Portanto, a melhor coisa nesse caso é o gerenciamento adequado do usuário, a senha para a raiz e a unidade criptografada e / ou os diretórios pessoais criptografados.

Videonauth
fonte
2
Embora make certeza sudo -inão funciona :)
Wilf
3
Embora a configuração mais simples e comum dos sudoers seja permitir que uma lista de usuários tenha privilégios de root temporariamente, o sudoers permite um controle refinado do acesso. Por exemplo, você pode especificar que um usuário possa executar apenas determinados comandos específicos como raiz. Se você tomar o cuidado de permitir apenas que um usuário execute comandos que não permitam criar um shell raiz ou criar acesso raiz persistente além do escopo dos comandos que você deseja permitir, evite conceder a ele acesso root em geral.
bgvaughan
19

Uma alternativa simples é manter seus dados privados em um arquivo criptografado (pode ser um arquivo tar, que você criptografa, por exemplo, com gpg). Lembre-se de substituir e remover os arquivos de texto não criptografado depois de examiná-los.

Outra alternativa para todos vocês que compartilham um computador e acesso ao sudo (root) é usar a casa criptografada e a troca criptografada.

Mas isso não ajudará, se você estiver conectado ao mesmo tempo. Por uma questão de fato, você precisa reiniciar o computador para se livrar de seus arquivos em formato de texto não criptografado, mesmo com a casa criptografada.


Em geral, a segurança é muito difícil, e um sistema de usuário único com disco criptografado (LVM com criptografia) seria a maneira mais simples de manter as coisas seguras.

  • Não armazene dados particulares confidenciais em um computador compartilhado
  • Não armazene dados particulares em um computador que pertença ao seu empregador
sudodus
fonte
3
Um contêiner dm-crypt / LUKS não precisa se preocupar em sobrescrever arquivos de texto não criptografado (exceto os arquivos e trocas temporários de qualquer aplicativo) ou um único diretório ~ / ecryptfs-mount-private
.Private
6
Isso nem sequer protege você de ataques de empregada doméstica malvada: o outro usuário do sudo pode alterar o sistema para induzi-lo a fornecer sua senha. Essa pergunta deve ser lida como "Suspeito que meu colega seja um espião russo. Devo dar a ele direitos de sudo no meu computador?"
sleblanc
Que tal uma máquina virtual com imagem de disco criptografada? blogs.oracle.com/scoter/...
leftaroundabout
11
Se você precisar de privacidade, precisará de um sistema de usuário único, ou seja, nenhum outro usuário, definitivamente nenhum outro usuário sudo. O Ubuntu LVM com sistema de criptografia é vulnerável a ataques de empregadas domésticas. Ainda acho que é melhor do que as outras alternativas fáceis, incluindo a casa criptografada. Obviamente, se desejar, você pode ter disco criptografado, casa criptografada e um sistema de usuário único, para tornar as coisas mais difíceis para um invasor, por exemplo, de acordo com este link, iso.qa.ubuntu.com/qatracker/milestones / 363 / builds / 126342 /…
sudodus
Tudo o que o novo usuário root precisa fazer é instalar um rootkit de espaço no kernel, como diamorfina. Nem precisa se preocupar em mexer com os LD_PRELOADhacks do usuário : basta criar um logger de pressionamento de tecla simples e jogá-lo em alguns scripts python para fazer uma segmentação difusa de K-means com base no tempo / agrupamento da digitação e em algumas análises de texto, e feito. Agora você tem a senha para o usuário e provavelmente pode acessar seus dados pessoais.
Cloud
8

Quando você conseguir obter rootpermissões (por exemplo sudo, usando su, etc).
Você tem acesso total a todos os arquivos do sistema.

Portanto, os dois usuários que têm sudopermissão e podem ser rootusados sudo bashterão acesso total a todos os arquivos do sistema

De acordo com estas perguntas e respostas em SE-Security: Você pode modificar SELinux(o que não é o Ubuntu) para limitar o rootacesso:

Se sua pergunta for "posso fazer isso com facilidade e segurança agora?" a resposta é não. Se a sua resposta for "Estou preparado para aprender sobre o SELinux, fique tranquilo com a minha distribuição e atue com muitas coisas que não estão funcionando", a resposta é que é possível restringir a raiz muito mais do que a instalação média. Dito isto, isso não o torna invulnerável a explorações - não torna impossível para um usuário contornar esse controle de acesso extra, seja em software ou fisicamente.

Yaron
fonte
2
Você pode limitar o root com o apparmor e o selinux, no entanto, alguém com acesso root completo ou acesso através do shell de recuperação ou de um CD ao vivo, com o sistema (apparmor ou selinux) pode alterá-lo novamente.
Panther
11
Mesmo se você usar o SELinux para limitar o que o root pode fazer diretamente, eles ainda poderão modificar os utilitários que os usuários executam. E se eles deveriam ser capazes de executar quaisquer upgrades, eles vão precisar de acesso para modificar binários no sistema de ...
ilkkachu
5

Para deixar bem claro o que as outras respostas já declararam perfeitamente: esse outro usuário não é apenas "root tanto quanto você" (resposta da Videonauth), mas também pode se tornar você (alterne para a sua conta de usuário) .

Isso ocorre porque, com privilégios de superusuário, é possível alternar para qualquer conta.

Você provavelmente sabe

sudo su

que é uma opção de abrir um shell raiz se o root não tiver uma senha definida (portanto, você não pode simplesmente fazer login diretamente como root).

sué a abreviação de "alternar usuário". Para qual usuário ele alterna? Nada é afirmado, certo? Mas, na página de manual, podemos aprender que:

Chamado sem um nome de usuário, su assume como padrão o superusuário.

Então isso efetivamente é

sudo su root

se você não renomeou rootpara outra coisa.

Se você acabou de executar su <someuser>, será solicitada uma senha. Portanto, se você executar su root, será solicitada a senha de root (que não existe no Ubuntu por padrão, portanto, não é possível efetuar login). diferente da senha, sendo a sequência vazia)). Mas se você executar sudo su root, será solicitada sua própria senha. E você é solicitado apenas por sudo. Depois de sudoreceber sua senha, ele executa o comando recebido como parâmetros com privilégios de superusuário. Como é possível alternar para qualquer conta ao ter privilégios de superusuário, um prompt de senha não é necessário.

Então, executando

sudo su <yourusername>

, o outro sudoer pode efetuar login como você.

UTF-8
fonte
+1; Sim, eu não mencionei isso por não causar confusão, o campo de proteger uma máquina corretamente é amplo e cheio de pedras pelas quais você pode lutar. Ainda é uma boa adição ao que já foi dado como resposta.
Videonauth 30/11
Não tenho certeza, mas nem sudo susempre o padrão é UID 0 e GUID 0? Se sim, não importa como você nomeou 'root'.
Videonauth 30/11
@Videonauth Você está certo com a segunda frase do seu segundo comentário. Esta, no entanto, é a mesma razão pela qual incluí a frase que você está criticando. Se você renomear rootpara john, sudo suagora é equivalente a sudo su johne não mais sudo su root.
UTF-8
3

É possível limitar os programas que podem ser executados usando a escalação de privilégios sudo editando o arquivo sudoers ( /etc/sudoers).

Veja a resposta aceita para esta pergunta no Superusuário para obter mais detalhes e também aqui no Unix e Linux . Veja a resposta do slm para obter uma sugestão sobre a limitação de privilégios no /etc/sudoers.

Verifique também a manpágina sudoers digitando man sudoerse não se esqueça de testá-la. Lembre-se de que, com acesso irrestrito ao sudo, um usuário pode personificar totalmente qualquer outro usuário. por exemplo, se o usuário fooexecutar o comando

sudo exec su - bar

eles seriam capazes de agir como usuário bar, com todos os privilégios desse usuário.

encantador
fonte
6
Observe que as sudoerslinhas específicas mostradas nas respostas do slm e do mtak não funcionam para dar a capacidade de executar algumas ações e não outras, pois é fácil usá-las para executar qualquer comando. (Veja os comentários em cada uma dessas respostas para obter explicações detalhadas sobre o porquê.) Essa resposta pode não estar estritamente errada, pois às vezes é possível permitir que os usuários sudoexecutem comandos específicos como root sem efetivamente torná-los administradores. Mas é muito difícil fazer isso direito.
Elias Kagan
@EliahKagan Right. Seria necessário garantir cuidadosamente que você não permita que eles atinjam um mecanismo que permita executar qualquer comando. Obviamente, isso depende do nível de confiança que você deposita na outra pessoa.
11
@EliahKagan Daí a exortação a ler a página do manual e testar qualquer implementação. Limitar um usuário com privilégio sudo é factível. No entanto, como você ressalta, não é uma solução totalmente segura e algum nível de confiança deve ser investido nos usuários que recebem direitos de sudo. É interessante ver votos negativos para uma resposta que recomenda o uso do mecanismo (entradas do arquivo sudoers) especificamente projetado para limitar o escopo do comando sudo.
Charmer
Acho que não se trata da recomendação de usar um mecanismo de compilação, então deixe-me chegar ao ponto de qual crítica construtiva eu ​​poderia lhe dar por sua resposta. 1) Ele contém alguns erros de digitação e é mal formatado e parece estranho quando você o lê, o que por si só pode ser corrigido com muita facilidade. 2) se você apontar para outras respostas dadas fora do Ask Ubuntu , aqui você deve pegar as partes essenciais como citações em bloco e publicá-las aqui, tornando seus links uma parte das citações para apontar para as fontes das quais você tirou essas informações. Espero que isso ajude a melhorar sua resposta.
Videonauth 30/11
E como eu fiquei sem personagens no meu comentário anterior: 3) Você pode se aprofundar mais nas explicações, aponte as advertências mencionadas por @EliahKagan.
Videonauth 30/11
0

As respostas anteriores não se aplicam totalmente, se você marcou encrypt home folderao instalar o Ubuntu. Isso garante pastas pessoais criptografadas para todos os usuários; mesmo assim, o root não pode ler os dados sem a senha adequada do usuário / proprietário dessa pasta pessoal. Seu colega precisaria alterar sua senha para ler os arquivos, o que seria notado.

E é claro que as pessoas estão certas, que o compartilhamento de máquinas com dados valiosos ou sensíveis e, além disso, o acesso root aos colegas, não é uma boa ideia.

Dependendo do valor desses dados, sugiro solicitar sua própria máquina.

s1mmel
fonte
11
Isso pode não impedir um usuário root de realizar uma manobra "su -" ou semelhante, assim que a "vítima" estiver conectada e tiver a unidade criptografada montada ... também pode haver um script cron ou outro gatilho esperando por isso acontecer. Além disso, um usuário root pode substituir facilmente o binário que manipula a entrada de senha para desbloquear o diretório inicial criptografado por uma versão que armazena a senha de texto não criptografado e aguardar. Qualquer mecanismo de segurança que interrompa esses ataques ainda pode ser aproveitado alterando alguns binários que a vítima usará para algo que faça como você deseja.
Rackandboneman
5
Estou com o voto negativo desta resposta, pois um diretório inicial criptografado só ajuda se você não estiver conectado no momento. Assim que você faz o login, seus dados são descriptografados e disponíveis para o outro usuário com acesso sudo.
PanteraNov
2
Mas por que eles teriam que ser? Mesmo que logons simultâneos nunca sejam feitos remotamente (por exemplo, SSH) ou com consoles virtuais, dois usuários não podem fazer login graficamente ao mesmo tempo e alternar entre eles? Eu uso o Lubuntu (que tem LXDE) e nunca me conectei graficamente com vários usuários ao mesmo tempo, mas minha impressão foi de que ambientes de desktop mais ricos em recursos o suportam há alguns anos e o habilitam por padrão. Estou enganado sobre isso? Como alternativa, os arquivos não são mais descriptografados e legíveis pela raiz quando a tela está bloqueada?
Elias Kagan
2
As chaves de criptografia do usuário do IRRC são armazenadas abertamente na máquina para fornecer criptografia e descriptografia, de modo sudo su - <username>que uma que não precise da senha de outros usuários, normalmente descriptografaria com êxito o diretório de outros usuários. Mas posso estar errado aqui, preciso testá-lo em uma VM e o farei mais tarde. De qualquer forma, em 99% de todos os casos se resume a isso: "Se eu tenho acesso físico à sua máquina, você está de mangueira!".
Videonauth 30/11
11
Um super usuário pode alterar o procedimento de login para registrar os nomes de usuário e senhas que vê. Aguarde até que o outro usuário efetue login e o problema seja resolvido.
Stig Hemmer