Por que é chamado sudo?


30

Por que usamos sudopara executar um comando de terminal como administrativo? Por que não é adminou algo mais? Existe uma razão para sudo?


19
Leia sudo lscomo "superusuário, faça ls" (e não, não é bobagem, a mnemônica é importante para lembrar os comandos) (e não, provavelmente significa o que você faz e faz , dado que susignifica mudar de usuário. Mas acho o mais agradável; -))
Rmano

1
superusuário muito melhor que admin :) obrigado por responder.
Mohammad

2
É esse sudo vodu que você faz. :)
Shadur

14
Curiosidade: em italiano sudosignifica (I) suor . Gosto de interpretar sudo Xcomo suar por medo de dar o comando errado e limpar todos os meus dados . Isso ajuda a ter em mente que você deve adicionar sudoapenas os comandos à frente dos comandos quando 1) É necessário 2) Você sabe o que está fazendo 3) Você escreveu e leu cuidadosamente a linha de comando para evitar erros de digitação (especialmente espaços ruins e difíceis de corrigir) capturar e pode resultar em resultados inesperados realmente terríveis).
Bakuriu

2
@Rmano su originalmente significava “superusuário”, “usuário substituto” veio mais tarde .
Gilles 'SO- stop be evil'

Respostas:


32

Da Wikipedia :

sudo é um programa para sistemas operacionais de computador tipo Unix que permite que os usuários executem programas com os privilégios de segurança de outro usuário (normalmente o superusuário ou root). Seu nome é uma concatenação de "su" (usuário substituto) e "do" ou executa uma ação.

Diferentemente do comando su, os usuários normalmente fornecem sua própria senha ao sudo, em vez da senha root. Após a autenticação, e se o arquivo de configuração / usr / local / etc / sudoers (às vezes encontrado em / etc / sudoers) permitir o acesso do usuário, o sistema chamará o comando solicitado. O arquivo de configuração do sudoers permite uma grande quantidade de configurabilidade, incluindo, entre outros: ativar comandos raiz apenas a partir do terminal de chamada; não exigindo uma senha para determinados comandos; exigindo uma senha por usuário ou grupo; exigindo a reinserção de uma senha sempre ou nunca exigindo uma senha para uma linha de comando específica. Também pode ser configurado para permitir a passagem de argumentos ou vários comandos e até suporta comandos com expressões regulares.

É um comando único temporário com privilégios de superusuário (administrador) sem login raiz direto.


11
A parte do wiki está correta. O comentário sobre "Mac é Su" não está correto. Macs têm ambos sudo, e su, assim como BSD e Linux.
Daviewales

@Virusboy Olá, desculpe-me por tentar neste tópico. Mas eu tenho que saber É fácil usar o ubuntu 14.04 com o Toshiba M840 i3-3110M. Obrigado.
Bonn

É fácil em qualquer PC
Virusboy

21

xkcd: Sandwich

Antes do sudo , a maioria dos administradores fazia login como usuário root, porque é uma maneira fácil de configurar seu sistema, pois você tem todos os direitos. No entanto, um pequeno erro ou um link incorreto da Internet e todo o seu sistema podem ser afetados ou até comprometidos.

Devido a esse problema, o sudo apareceu . O objetivo era usar privilégios administrativos apenas por um curto período de tempo e somente quando necessário. Além disso, isso evitaria que o usuário se conectasse a outra conta. Obviamente, isso aumentaria a segurança do sistema .

No Ubuntu , eles optam por aumentar a segurança do seu sistema. Assim, eles decidiram seguir o caminho do 'sudo'. O usuário root está desativado; não há necessidade e, especialmente, não há risco de um usuário efetuar login através da interface X com o usuário root. Além disso, eles permitiram que todos os comandos fossem lançados com o sudo para usuários autorizados. O legal é que os usuários avançados podem acessar a conta root.

Desvantagens de sudo:

  • Quais comandos você permite via sudo
  • Você precisa escrever sudoantes de cada comando que requer privilégios administrativos
  • De vez em quando você precisa digitar novamente a senha .

O que sudosignifica isso ? Seu nome é uma concatenação de "su" (usuário substituto) e "do".

Porque sudonãoadmin ? Eu acho que sudosignifica adminpara um tempo específico e somente quando você precisar.

As pessoas que são provenientes do ambiente Windows devem entender por que não é admin :)

Referências: Imagem do site
: xkcd


então por que não se chama rodo?
27414 JamesRyan

3
Seu parágrafo "antes do sudo" está errado. Não há diferença entre sue a sudoesse respeito, a única diferença entre os dois é que credenciais são usadas. Usar em sudovez de sunão ser mais seguro (na verdade, é um pouco menos seguro); o principal benefício do sudo (e a razão pela qual o Ubuntu o escolheu) é a simplicidade para o usuário (apenas uma senha para lembrar).
Gilles 'SO- stop be evil'

11

No Linux.com, um produto da Linux Foundation:

Sudo significa " usuário substituto " ou " superusuário usuário " (dependendo de como você deseja vê-lo). O que o sudo faz é incrivelmente importante e crucial para muitas distribuições Linux. Efetivamente, o sudo permite que um usuário execute um programa como outro usuário (geralmente o usuário root).

[A ênfase é minha.] Fonte


3

superusuário fazer

Existe um comando, su, para se tornar o superusuário, então você pode dizer

$ su
# apt-get install somehorror
# exit
$

O sudo permite fazer isso de uma só vez, e você não precisa se lembrar de renunciar aos seus poderes mágicos.

$ sudo apt-get install somehorror

2
su("usuário substituto") permite que você se torne qualquer usuário: você pode especificar um nome de usuário como argumento.
David Richerby

1
Na verdade, os dois não são exatamente iguais, mas são semelhantes na maioria dos casos. Mas o sudo apenas permite executar um programa com privilégios de superusuário, mas mantém o seu ambiente normal o mesmo. su realmente faz de você um super usuário, com o ambiente do super usuário.
Marty Fried

3

Com relação ao motivo de não ser "admin" - ou mais indiretamente, por que su não é "switchUser" ou algo parecido - os comandos tradicionais do Unix tendem a ser abreviações mínimas por razões históricas relacionadas às origens do Unix.

Pelo motivo mais básico, precisamos voltar ao mesmo motivo que se chama Unix. Grande parte do Unix foi inspirada em um dos sistemas operacionais multitarefa mais antigos, o Multics do MIT. (O Unix recebe o nome de "o singular de Multics" ou "Multics castrado", dependendo de quem você perguntar e do humor deles no momento.)

Entre as outras inovações de Multics, ele introduziu o conceito de separar o local real do arquivo das informações do diretório, permitindo que um único arquivo tivesse vários nomes. ("Links", em termos de Unix.) Multics aproveitou (excessivamente) toda a vantagem disso; a maioria dos comandos do Multics possui ALongNameThatIsImpossibleToType e ASNTOECR (um nome abreviado que somente os especialistas podem lembrar). A experiência mostrou que os nomes longos realmente não adicionavam muita facilidade ao usuário, pois, realisticamente, naquela época todos os usuários eram ou rapidamente se tornaram "especialistas" e quase ninguém nunca usou os nomes longos. Quando o Unix adotou parte do design de Multics, uma de suas simplificações foi descartar os nomes longos não utilizados e manter apenas os nomes abreviados para especialistas.

Isso também se encaixa bem na filosofia do Unix de reduzir o sistema operacional e seu conjunto de comandos básicos ao essencial, permitindo que ele funcione com eficiência em sistemas menores. Naqueles dias, os programadores ainda conservavam todos os bytes e ciclos possíveis. Os processadores eram tremendamente mais lentos, as velocidades dos terminais eram tremendamente mais lentas e a memória era tremendamente mais cara (e mais lenta, e tinha pequenos caches, se houver). Manter os comandos do sistema em um tamanho mínimo pode não ter economizado muito (se houver) recursos reais, mas "parecia certo" para a mentalidade da época.

Se você realmente insistir em nomes de comando fáceis de usar, a resposta do Unix seria "Você sabe como escrever um script de shell; implemente-o. Se você não sabe como escrever um script de shell, precisa aprender como fazer Se você não gosta de aprender e / ou codificar, não ficará feliz com o Unix e deve usar outra coisa. "


3

Se " superusuário " é o que su originalmente derivou, é impreciso, pois o nome de usuário que você atribui não precisa ser um superusuário. O mesmo vale para a execução de comandos como outro usuário usando sudo -u.

" Usuário substituto " é mais preciso, mas soa desajeitado. Isso me faz pensar em um professor substituto.

Portanto, prefiro pensar susimplesmente como "alternar usuário" e, sudoportanto, como "alternar usuário e fazer".


1
sempre tot é super usuário fazer, mas o som de usuário substituto mais direito
BeyondProgrammer

1

No site do Sudo :

"O que é Sudo?

Sudo (su "do") permite que um administrador de sistema delegue autoridade para dar a certos usuários (ou grupos de usuários) a capacidade de executar alguns (ou todos) comandos como root ou outro usuário, fornecendo uma trilha de auditoria dos comandos e seus argumentos . "

"O Sudo foi concebido e implementado pela primeira vez por Bob Coggeshall e Cliff Spencer por volta de 1980 no Departamento de Ciência da Computação da SUNY / Buffalo. Ele rodava em um VAX-11/750 com 4.1BSD. Uma versão atualizada, creditada a Phil Betchel, Cliff Spencer , Gretchen Phillips, John LoVerso e Don Gworek, foram postados no grupo de notícias net.sources Usenet em dezembro de 1985. "

Dito isto, embora eu não acredite que exista alguma prova, sempre acreditei firmemente que o nome era uma espécie de piada nerd de programador. Você tem o comando "su" (superusuário) "do", mas na verdade não é um super usuário - transforme o "doo" em um "doh" e "sudo" se parece muito com "pseudo" (falso , farsa, falso).


-2

A maioria das pessoas respondeu que é um mashup de "super usuário faz". Eu gosto disso, mas pode ser mais correto dizer que é um mashup de "usuário substituto", porque você pode escolher qual usuário "faz" como com o sinalizador -u.

Eu também penso nisso como uma brincadeira com a palavra psuedonym, porque você pode fingir ser outra pessoa, root ou qualquer outro usuário usando a bandeira -u.


3
Bem, a pergunta era por isso que ele é chamado a forma como ela é, e não para backronyms e / ou mnemônicos, então ... [carece de fontes?]
derobert

Além disso, o usuário de destino padrão não tem que ser root(embora faz sentido para que seja ou pelo menos um com uid 0 e geralmente é), consulte o runas_defaultno sudoers.
Stéphane Chazelas

@derobert +1 pelo uso de "backrônimos" e por manter o site limpo de respostas incorretas.
three-cups

@chs obrigado, eu não sabia disso.
three-cups
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.