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 / 443226
Accepted
Brian Dobby
Brian Dobby
Asked: 2018-05-12 06:23:16 +0800 CST2018-05-12 06:23:16 +0800 CST 2018-05-12 06:23:16 +0800 CST

O que determina quais comandos do Linux requerem acesso root?

  • 772

O que determina quais comandos do Linux requerem acesso root? Entendo as razões pelas quais é desejável que, digamos, apt-getexija rootprivilégio; mas o que distingue esses comandos do resto? É simplesmente uma questão de propriedade e permissões de execução do executável?

linux root
  • 3 3 respostas
  • 9567 Views

3 respostas

  • Voted
  1. DopeGhoti
    2018-05-12T06:40:49+08:002018-05-12T06:40:49+08:00

    É principalmente uma questão do que a ferramenta ou programa faz . Tendo em mente que um não-superusuário só pode tocar nos arquivos que possui ou aos quais tem acesso, qualquer ferramenta que precise ser capaz de colocar os dedos em tudo exigirá acesso de superusuário para fazer o que faz. Uma amostra rápida de coisas que podem exigir acesso de superusuário inclui, mas não está limitada a:

    • Abrindo um soquete TCP de escuta em uma porta abaixo de 1024
    • Alterar as configurações do sistema (por exemplo, qualquer coisa em /etc)
    • Adicionando novas bibliotecas acessíveis globalmente ( /libe /usr/lib) ou binários ( /bin, /usr/bin)
    • Tocar em qualquer arquivo que não pertença ao usuário que está fazendo o toque e que não tenha um modo suficientemente permissivo
    • Alterar a propriedade dos arquivos de outros usuários
    • Acelerando as prioridades do processo (por exemplo renice)
    • Iniciando ou parando a maioria dos serviços
    • Configuração do kernel (por exemplo, ajustando swappiness)
    • Ajustando as cotas do sistema de arquivos
    • Gravando em discos "cheios" (a maioria dos sistemas de arquivos reserva algum espaço para o usuário root)
    • Executar ações como outros usuários
    • 34
  2. Best Answer
    JoL
    2018-05-12T09:54:48+08:002018-05-12T09:54:48+08:00

    No linux, os privilégios de root foram divididos em um ponto em "capacidades", então você pode obter uma lista completa dos privilégios especiais de root examinando a documentação: man 7 capabilities.

    Para responder à sua pergunta, um comando exigirá a execução como root quando precisar de um desses privilégios e seu executável sem script não tiver o recurso relevante definido em seus metadados de arquivo (por exemplo, se um script python exigir o recurso, o recurso precisaria estar no interpretador python especificado na linha shebang).

    Observe que alguns comandos que precisam de acesso root não precisam de algo como sudoporque eles têm o bit SUID definido em seu executável. Este bit faz com que o executável seja executado como o proprietário (geralmente root) quando executado por qualquer pessoa que tenha acesso de execução. Um exemplo é sudoa própria mudança de usuários é uma ação privilegiada que ele precisa fazer.

    EDIT: Observo pela sua pergunta que você pode ter a ideia de que pode determinar se um comando precisará de acesso root antes de executá-lo. Esse não é o caso. Às vezes, um programa pode exigir privilégios de root e outras vezes não, e isso pode ser uma decisão tomada pelo programa devido aos dados fornecidos durante o tempo de execução. Tomemos, por exemplo, chamando vim, assim sem argumentos e, em seguida, pressionando e colando uma série de teclas, dizendo-lhe para gravar algo em um arquivo que não tem permissão para gravar, ou talvez executando outro comando que exija privilégios de root. Nada sobre o comando antes da execução poderia indicar que eventualmente exigiria acesso root. Isso é algo que só pode ser determinado no momento em que tenta fazer algo que o exija.

    De qualquer forma, aqui estão alguns exemplos da página de manual referenciada dos privilégios de root:

    • Faça manipulações arbitrárias de UIDs de processo (setuid(2), setreuid(2), setresuid(2), setfsuid(2));
    • Ignore as verificações de permissão de leitura, gravação e execução de arquivos. (DAC é uma abreviação de "controle de acesso discricionário".)
    • Ignore as verificações de permissão para enviar sinais (consulte kill(2)). Isso inclui o uso da operação ioctl(2) KDSIGACCEPT.
    • Execute várias operações relacionadas à rede:
      • configuração de interface;
      • administração de firewall IP, mascaramento e contabilidade;
      • modificar tabelas de roteamento;
    • Vincule um soquete às portas privilegiadas do domínio da Internet (números de porta menores que 1024).
    • Carregar e descarregar módulos do kernel (consulte init_module(2) e delete_module(2));
    • Definir relógio do sistema (settimeofday(2), stime(2), adjtimex(2)); definir o relógio em tempo real (hardware).
    • Execute uma variedade de operações de administração do sistema, incluindo: quotactl(2), mount(2), umount(2), swapon(2), swapoff(2), sethostname(2) e setdomainname(2);
    • Use reboot(2) e kexec_load(2).
    • Use chroot(2).
    • Aumente o valor de nice do processo (nice(2), setpriority(2)) e altere o valor de nice para processos arbitrários;
    • 16
  3. Aldridge
    2018-05-12T18:30:13+08:002018-05-12T18:30:13+08:00

    Acho que é de acordo com a identidade do usuário verificar as permissões, não de acordo com a ordem de divisão das permissões. Arquivos e usuários são privilegiados e os comandos não devem ser divididos.

    • 0

relate perguntas

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

Sidebar

Stats

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

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

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 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

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 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
    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
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +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
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +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