Cal é a diferenza entre sudo e su?

Hai uns días recibín unha consulta de Miguel, un lector habitual de blogs e comentarista compulsivo, sobre cal é exactamente a diferenza entre sudo y su. En particular, a Miguel preocupáballe se un método era máis seguro que o outro. Sucede que lera por aí iso sudo non era o suficientemente seguro e quería saber máis. Esta é outra publicación dedicada a aqueles que pediron máis artigos sobre misterios terminais.

Su

O programa su Permite usar o shell doutro usuario sen pechar sesión na sesión actual. Adóitase usar para obter permisos de root para operacións administrativas sen ter que pechar sesión e volver entrar ao sistema. Algúns ambientes de escritorio, incluído GNOME e KDE, teñen programas que piden graficamente un contrasinal antes de permitir ao usuario executar un comando que normalmente requiriría ese acceso.

O nome su vén do inglés ssubstituto user (usuario substituto). Tamén hai quen o fai derivar ssuperioruser (superusuario, é dicir, o usuario raíz ou administrador) xa que normalmente se usa para adoptar o rol de administrador do sistema.

Cando corre, su Pide o contrasinal da conta á que desexa acceder e, se se acepta, dá acceso a esa conta.

[guy @ localhost] $ o teu contrasinal: [root @ localhost] # saír da sesión [guy @ localhost] $

Ao non poñer un usuario, accédese a el como administrador. Non obstante, tamén é posible pasar outro nome de usuario como parámetro.

[guy @ localhost] $ su mongo Contrasinal: [mongo @ localhost] # saír da sesión [guy @ localhost] $

Unha vez introducido o contrasinal, podemos executar os comandos coma se fósemos o outro usuario. Por escrito saír, volvemos ao noso usuario.

Unha variante moi utilizada é usar su seguido dun trazo. Así, para iniciar sesión como root, ten que entrar o seu - e para iniciar sesión como outro usuario o teu - outro usuario. A diferenza entre usar o script ou non? Recoméndase usar o script porque simula que iniciará sesión con ese usuario; polo tanto, executa todos os ficheiros de inicio dese usuario, cambia o directorio actual a HOME dese usuario, cambia o valor dalgunhas variables do sistema adaptándoas ao novo usuario (HOME, SHELL, TERM, USER, LOGNAME, entre outros) e outros máis cousas.

Un administrador de sistemas debe ter moito coidado ao escoller un contrasinal para a conta root / administrador, para evitar un ataque dun usuario sen privilexios que execute su. Algúns sistemas similares a Unix teñen un grupo de usuarios chamado roda, que comprende os únicos que poden executar su. Isto pode reducir ou non os problemas de seguridade, xa que un intruso pode simplemente facerse cargo dunha desas contas. El su Non obstante, GNU non admite o uso dese grupo; isto fíxose por razóns filosóficas.

Sudo

Un comando relacionado, chamado sudo, executa un comando como outro usuario, pero respectando unha serie de restricións sobre as que os usuarios poden executar que comandos en nome dos cales outros usuarios (normalmente especificados no ficheiro / etc / sudoers).

Por outra banda, a diferenza su, sudo solicita aos usuarios o seu propio contrasinal no canto do usuario requirido; isto permite a delegación de comandos a usuarios noutras máquinas sen ter que compartir contrasinais, reducindo o risco de deixar os terminais desatendidos.

Problemas de Sudo: o período de carencia

A vantaxe de sudo respecto de su é que só executa o comando solicitado finxindo ser o outro usuario, sen cambiar o usuario actual. Isto implica que se pode executar un comando como administrador e, no segundo seguinte, terán os privilexios do usuario que estaban a usar antes ... ou case.

Algúns ven como unha violación da seguridade o feito de que sudo conceder un "período de carencia" que permita ao usuario executar comandos como outro usuario sen necesidade de introducir repetidamente sudo diante do comando e contrasinal despois de executalo. Despois dese "período de carencia", sudo volverá preguntarnos o contrasinal.

Isto é "malo", esencialmente porque alguén podería facerse cargo do noso ordenador despois de introducir o contrasinal sudo e mentres o "período de carencia" está activo, faga un DESASTER.

Afortunadamente, é posible desactivar o "período de carencia", o que mellorará a seguridade do seu sistema. Só ten que engadir unha liña no ficheiro / etc / sudoers:

sudo nano / etc / sudoers

E engade a seguinte liña ao final do ficheiro:

Valores predeterminados: ALL timestamp_timeout = 0

O cambio entra en vigor de inmediato, sen necesidade de reiniciar o sistema.


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

25 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   helk dixo

    De feito, se podes entrar con dereitos de administrador con sudo e permanecer alí como o fas con su -, para iso tes que escribir: sudo -s cambiando así o usuario actual e deixando o tempo de graza como unha broma (xa que Podes permanecer así o tempo que queiras, coma o teu)

  2.   Miquel Mayol i Tur dixo

    Grazas pola mención, pero o verdadeiro mérito recae no chat de Sabayon - que xa non uso porque o meu disco duro rompeu e preferín volver a Ubuntu -.

    A razón pola que me deron foi que ás veces ao facer sudo certas configuracións non obteñen permisos absolutos e seguen mal configurados. E que, ao "iniciar sesión" con su como root para tarefas de actualización e mantemento, evitará que isto ocorra.

    Entón enviei un correo electrónico porque prometín compartir este achado que me pareceu non trivial.

    Dado que Ubuntu está instalado por defecto sen usuario root, só tes que executalo

    "Sudo root paswd"

    introduza o contrasinal, confírmao e despois
    "Su raíz"
    para operacións de mantemento, ademais de evitar poñer sudo con cada pedido.

    En principio, en Ubuntu elimínase a conta raíz para que non sempre inicies sesión con esta conta, pero dado que me deron o consello case co ton de que usar sudo era sacrilexio, por se o seguía.

  3.   Punteiro Nill dixo

    Podería acceder ao ficheiro / etc / shadow e cambiar o hash do contrasinal root ao hash normal do contrasinal do usuario e despois facer un cambio de contrasinal para root ??? Noutro momento intento o mesmo ...

  4.   imos usar linux dixo

    Claro. Non é exclusivo de Fedora.

  5.   mfcollf77 dixo

    ¿Despois das dúas pódense instalar? Pensei que «SU» só estaba en FEDORA.

  6.   Diego Kisai Alba Gallart dixo

    Moi boa información, con isto seguramente desaparecerán as dúbidas de moitos, porque coñezo a varios que teñen esa dúbida.

  7.   Alex dixo

    En ubunto creo recordar que non pode usar o comando su (para entrar como usuario root)

  8.   Hazan Pérez dixo

    Ben, para "recuperar" o contrasinal de root (de feito, calquera outro contrasinal), podería facer un "ataque" ao ficheiro de contrasinal do sistema con John The Ripper. Non vou dicir máis sobre isto.

    Quizais haxa outros métodos ... Quizais cambie o contrasinal introducindo con "sudo su" e despois o comando "passwd". Sería interesante ver o que responden outras persoas ...

  9.   imos usar linux dixo

    Exacto!

  10.   imos usar linux dixo

    É certo ... teño que agradecerlle a Miguel Mayol i Tur ... foi el quen tivo a idea. 🙂
    Ánimo! Paul.

  11.   Patrón dixo

    Grazas, coma sempre, unha gran contribución. Agradecémoslla.

  12.   imos usar linux dixo

    Grazas Xefe! Unha aperta! Paul.

  13.   Xerónimo Navarro dixo

    A diferenza entre "su" e "sudo" é "facer"

  14.   Erick dixo

    Esquecín o contrasinal de root, por sorte podo usar sudo, e para usar su, uso 'sudo su' e non pide pasar (?)
    Alguén sabe como descubrir o contrasinal de root (teño acceso a root mediante sudo)?

    1.    marvergarab dixo

      sudo passwd

  15.   imos usar linux dixo

    Ha! Moi listo!

  16.   Fabián Pais dixo

    o que queira recuperar o contrasinal de root sería "sudo passwd root" e alí pediralle que introduza un novo

  17.   alex-pilloku@hmail.com dixo

    ola como está a túa vida

  18.   SynFlag dixo

    Sentímolo pero, usando o comando su, así:

    su -c "comando", é o mesmo que usar sudo sen o período de graza. Non vexo a necesidade de sudo.

    O uso REAL de sudo, é dar a determinados usuarios a posibilidade de usar tal ou cal comando, úsase máis nas empresas, para non ter que facer chroot, algo que non se pode facer con su.

  19.   xacardis dixo

    Estimado, teño que facer un Linux TP e teño que responder a algunhas preguntas sinxelas. Quizais me poidan axudar. Grazas desde agora:

    Que comando é o que nos permite instalar / eliminar / modificar paquetes debian?
    Cal é o comando que nos permite xestionar máis facilmente a instalación
    paquetes en debian?
    Cal é o comando para poder instalar os paquetes rpm?
    Que opción empregamos para desinstalar un paquete?
    Cal é o directorio onde están os repositorios yum?
    Para que serve yum?
    Que opción empregamos para buscar un paquete con yum?
    Que opción empregamos para eliminar un paquete?
    Que opción podemos usar para actualizar o sistema?
    Que letras identifican os permisos?
    Que significan cada un deles?
    Que comandos enumeran os permisos dun ficheiro?
    Cales son os tres grupos nos que se dividen os permisos?
    Que formas hai de implementar permisos?
    Que sistema de números utilizan os permisos?
    Que peso teñen estas letras?
    Que son os permisos especiais?
    Cales son os permisos especiais existentes e para que serven os usuarios?
    Que comandos uso para cambiar os permisos?
    Que parámetros uso para dar permisos de execución a un ficheiro?
    Que parámetros se usan para dar permisos de lectura só a un grupo?
    Que parámetros se usan para dar permisos de lectura / escritura aos outros grupos e eliminar a escritura do usuario propietario do ficheiro?
    Que permisos se crean por defecto para ficheiros e directorios?
    Que comando empregamos para verificalo?
    Como cambiamos a máscara predeterminada?
    En que diferenciamos a máscara usada? (Use unha máscara predeterminada que só deixe aos propietarios todos os permisos.)
    Que comando enumera os procesos? Menciona diferentes parámetros e o seu uso.
    Cal é o proceso que inicia todo?
    Enumere os procesos que corresponden ao usuario conectado.
    Enumere todos os procesos do sistema.
    Que opcións uso para obter información adicional?
    Enumere todos os procesos que se están a usar nun terminal
    Que opción enumera os procesos e as súas dependencias?
    Explica que é un proceso pai-fillo e como identificalo
    Que comando enumera os procesos en forma de árbores?
    Que comando controla os procesos en tempo real?
    Supervisa só un proceso
    Que comando mostra o uso da memoria?
    Que parámetro mostra a memoria en megabytes?
    Que parámetro fai a intervalos?
    Que comando mostra información sobre o tempo no que un equipo está morto?
    Que comando uso para matar procesos?
    Que manexan estes procesos para finalizar?
    Que tipos de sinais son os máis comúns?
    Enumere os tipos de sinais admitidos.
    Nun terminal, faga a proba vi e, a continuación, diríxase a outro terminal, busque o proceso e mátelo cun sinal 15. Ídito pero cun sinal 9.
    Cal é a diferenza entre o sinal 9 e 15?
    Cal funciona por defecto?
    Por que se executa un proceso en segundo plano? E en primeiro plano?
    Executa a proba vi e despois presiona ctrl + z, que pasou?
    Repita a proba vi, ctr + z, 4 veces, como podo rematar o que fallei?
    Pasa un dos procesos a primeiro plano e pecha vi.
    Que parámetro dun comando executamos para que non ocupe o shell?
    Que comando modifica as prioridades dun proceso que xa está en execución? Como cambiarías a prioridade do terminal que se está executando?
    Que valores de nivel hai e cal é a súa xerarquía?
    Abra o ficheiro / etc / passwd e vexa que nivel de prioridade ten.
    Cambia o nivel de prioridade a 4 e despois a 25 ¿Podería asignar os dous? Por que?
    Enumere os procesos cos seus valores prioritarios.
    Que comando supervisa todos os procesos en execución?

  20.   etc. dixo

    Ola, quero desactivar sudo, como o fago. Recibo isto:
    [sudo] contrasinal para xxx:
    xxx non está no ficheiro sudoers. Este incidente será denunciado.

    mentres o desactivo, xa que uso su en debian

    1.    usemos linux dixo

      Ola ecc!

      Creo que sería mellor que formulase esta pregunta no noso servizo de preguntas e respostas chamado Pregunta a Linux para que toda a comunidade poida axudarche co teu problema.

      Unha aperta, Pablo.

  21.   Berthold dixo

    Ola. Eu usei o comando de temperatura do disco duro en Linux Mint: 'sudo hddtemp / dev / sda', pide o contrasinal e dame o resultado esperado.
    pero, ao executar no mesmo terminal 'hddtemp / dev / sda', dime que se denegou o permiso.
    Entón, o período de carencia non funciona en min, por que é así?

  22.   Berthold dixo

    Ola blog.
    Tamén descubrín que cando se instala a distro (por exemplo: ubuntu, linux mint), pide un contrasinal de administrador.
    E na interface gráfica do centro de control, usei a opción para cambiar o contrasinal do meu usuario.
    Entón, agora usando "su -" pide un contrasinal, que non é o do meu usuario actual, senón o que usei cando instalei a distro, que segue sendo o usuario root ou administrador.
    Isto faría que moitos usuarios esquecesen o contrasinal de administrador real.

  23.   Kendall Davila dixo

    Ola, a túa explicación é excelente, moi clara, breve e concisa. Grazas pola entrada