AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 535936
Accepted
Altay_H
Altay_H
Asked: 2019-08-17 11:27:47 +0800 CST2019-08-17 11:27:47 +0800 CST 2019-08-17 11:27:47 +0800 CST

Por que o su world é executável?

  • 772

Eu tenho um servidor headless que está conectado remotamente por vários usuários. Nenhum dos outros usuários está no arquivo sudoers, então eles não podem obter root via sudo. No entanto, como as permissões suestão -rwsr-xr-xativadas, não há nada que os impeça de tentar forçar a senha do root.

Pode-se argumentar que, se um usuário souber a senha do root, ele pode comprometer o sistema de qualquer maneira, mas não acho que seja esse o caso. O OpenSSH está configurado com PermitRootLogin noe PasswordAuthentication no, e nenhum dos outros usuários tem acesso físico ao servidor. Até onde eu sei, a permissão de execução do mundo /usr/bin/sué o único caminho para os usuários que tentam obter root no meu servidor.

O que é mais intrigante para mim é que nem parece útil. Ele me permite executar sudiretamente em vez de precisar fazer sudo su, mas isso dificilmente é um inconveniente.

Estou negligenciando alguma coisa? A permissão de execução do mundo está suapenas lá por razões históricas? Existem desvantagens em remover essa permissão que ainda não encontrei?

sudo su
  • 6 6 respostas
  • 4555 Views

6 respostas

  • Voted
  1. Best Answer
    Jim L.
    2019-08-17T12:42:43+08:002019-08-17T12:42:43+08:00

    Um ponto que está faltando na resposta de ilkkachu é que elevar para root é apenas um uso específico para su. O propósito geral do su é abrir um novo shell na conta de login de outro usuário. Esse outro usuário poderia ser root(e talvez seja mais frequentemente), mas supode ser usado para assumir qualquer identidade que o sistema local possa autenticar.

    Por exemplo, se eu estiver logado como usuário jime quiser investigar um problema que mikefoi relatado, mas que não consigo reproduzir, posso tentar fazer login como mikee executar o comando que está causando problemas.

    13:27:20 /home/jim> su -l mike
    Password:(I type mike's password (or have him type it) and press Enter)
    13:27:22 /home/mike> id
    uid=1004(mike) gid=1004(mike) groups=1004(mike)
    13:27:25 /home/mike> exit  # this leaves mike's login shell and returns to jim's
    13:27:29 /home/jim> id
    uid=1001(jim) gid=1001(jim) groups=1001(jim),0(wheel),5(operator),14(ftp),920(vboxusers)
    

    Usar a -lopção de sufaz com que simule um login completo (por manpágina).

    O acima requer o conhecimento da mikesenha do , no entanto. Se eu tiver sudoacesso, posso logar como mikemesmo sem a senha dele.

    13:27:37 /home/jim> sudo su -l mike
    Password:(I type my own password, because this is sudo asking)
    13:27:41 /home/mike>
    

    Em resumo, a razão pela qual as permissões no suexecutável são como você mostra, é porque sué uma ferramenta de uso geral que está disponível para todos os usuários no sistema.

    • 40
  2. R.. GitHub STOP HELPING ICE
    2019-08-18T13:24:39+08:002019-08-18T13:24:39+08:00

    Historicamente (em unices não GNU), não era, ou pelo menos verificava manualmente se você estava em um grupo chamado "roda" com permissão para su. A versão GNU do sunão reproduziu esta funcionalidade por causa da ideologia do RMS sobre controle de acesso na época:

    Why GNU `su' does not support the `wheel' group
    ===============================================
    
       (This section is by Richard Stallman.)
    
       Sometimes a few of the users try to hold total power over all the
    rest.  For example, in 1984, a few users at the MIT AI lab decided to
    seize power by changing the operator password on the Twenex system and
    keeping it secret from everyone else.  (I was able to thwart this coup
    and give power back to the users by patching the kernel, but I wouldn't
    know how to do that in Unix.)
    
       However, occasionally the rulers do tell someone.  Under the usual
    `su' mechanism, once someone learns the root password who sympathizes
    with the ordinary users, he or she can tell the rest.  The "wheel
    group" feature would make this impossible, and thus cement the power of
    the rulers.
    
       I'm on the side of the masses, not that of the rulers.  If you are
    used to supporting the bosses and sysadmins in whatever they do, you
    might find this idea strange at first.
    

    Você pode encontrar muito mais sobre o assunto pesquisando no Google "wheel group rms" ou similar.

    • 20
  3. ilkkachu
    2019-08-17T12:11:46+08:002019-08-17T12:11:46+08:00

    No entanto, como as permissões suestão -rwsr-xr-xativadas, não há nada que os impeça de tentar forçar a senha do root.

    Sim. Assumindo seu sistema Linux usual, o pam_unix.somódulo atrasa uma tentativa de autenticação com falha em ~ dois segundos, mas não acho que haja algo para impedir tentativas simultâneas.

    As tentativas com falha são registradas, é claro:

    Aug 16 22:52:33 somehost su[17387]: FAILED su for root by ilkkachu
    

    A força bruta de uma senha deve aparecer com destaque nos logs, se você tiver algum tipo de sistema para monitorá-los. E se você tiver usuários locais não confiáveis, talvez devesse. Usuários locais não confiáveis ​​também podem tentar usar qualquer exploração de escalonamento de privilégio somente local, e eles são muito mais comuns do que o escalonamento de privilégio remoto.

    O que é mais intrigante para mim é que nem parece útil.

    Claro que é útil, permite que você se eleve para root, se você souber a senha.

    Ele me permite executar sudiretamente em vez de precisar fazer sudo su, mas isso dificilmente é um inconveniente.

    sudo sué um tanto redundante. Não há necessidade de usar dois programas destinados a permitir que você execute programas como outro usuário, um é suficiente. Basta usar sudo -iou sudo -s(ou sudo /bin/bashetc.) se você quiser executar o shell.

    Estou negligenciando alguma coisa? A permissão de execução do mundo está lá apenas por razões históricas?

    Veja acima. Bem, nem todos os sistemas têm sudocomo alternativa, não tenho certeza se você considera isso histórico.

    Existem desvantagens em remover essa permissão que ainda não encontrei?

    Na verdade, não, até onde eu sei. Acho que alguns sistemas foram suconfigurados para que apenas membros de um determinado grupo (" wheel") possam executá-lo. Você pode fazer o mesmo sudose quiser ( chown root.sudousers /usr/bin/sudo && chmod 4710 /usr/bin/sudo).

    Ou você pode simplesmente remover um ou ambos os programas se não precisar deles. Embora no Debian, suvem com o loginpacote, então provavelmente não é uma boa ideia remover o pacote como um todo. (E emparelhar logine sujuntos assim parece um pouco histórico.)

    • 10
  4. Henrik supports the community
    2019-08-17T15:12:22+08:002019-08-17T15:12:22+08:00

    Você já tem algumas boas respostas, mas há uma parte do seu post que eles não abordam.

    Até onde eu sei, a permissão de execução mundial em /usr/bin/su é o único caminho para os usuários que tentam obter root no meu servidor.

    Essa é uma suposição perigosa. Se você definiu uma boa senha para o root, então na maioria dos casos é muito mais provável que uma escalação de privilégios bem-sucedida seja devido à exploração de um bug no kernel ou um binário setuid (você também pode remover o setuid pouco daqueles, mas passwdé setuid, e se você quiser alta segurança, você também deve oferecer isso aos seus usuários, e negar a eles a opção de alterar sua senha não é compatível com isso).

    • 7
  5. bobsburner
    2019-08-20T07:35:12+08:002019-08-20T07:35:12+08:00

    su precisa ser executável em todo o mundo para que todos possam executá-lo. Em muitos sistemas, pode ser usado para mudar para outro usuário, fornecendo sua senha.

    Se você está preocupado com alguém que força bruta a senha do root, você pode simplesmente desativá-la. (tornar o hash inválido para que nenhuma senha possa corresponder)

    Eu não sei sobre o consenso, mas eu consideraria poder fazer login como root diretamente um problema de segurança por si só.

    • 1
  6. WindowsNT
    2019-08-19T20:39:07+08:002019-08-19T20:39:07+08:00

    As outras respostas estão corretas dizendo que "su" permite que você faça login em outras contas além do root.

    Uma nota sobre "sudo su" embora. Isso realmente permite que você faça login na conta root sem saber a senha root. Você precisa saber a senha da conta com a qual executa o sudo, bem como essa conta estar no arquivo sudoers.

    • -2

relate perguntas

  • O 'zfs send' é um comando somente leitura seguro?

  • Diferença entre sudo nautilus e sudo -E nautilus

  • Execute um único comando como outro usuário; restrições ao sudo

  • Permitir que o usuário execute um comando como root

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve