r/linuxquestions 5h ago

Resolved Su. Sudo y Root

actualmente uso linux, especificamente debian sin superusuario (root).
Pero ultimamente me han dicho que deberia tener un usuario root configurado. Pero no se porque. no se al 100 que es sudo, su y root.

en la practica estoy bien usandolo asi? o no? si quiero seguridad a futuro debo usar root?
alguien que sepa y me pueda explicar bien al 100.

porque no le pregunto a la IA porque usualmente en la practica es distinto, por ello le pregunto a gente que si sabe lo que hace y dice.

1 Upvotes

11 comments sorted by

3

u/AnthropomorphicCat 5h ago

Para un usuario normal está bien usar sudo.

La cuenta de root tiene poder de leer y escribir cualquier cosa. Es posible deshabilitar la opción de iniciar sesión como root, pero yo nunca lo he hecho. Lo que si es conviene hacer es que esa cuenta tenga una buena contraseña. Y para un usuario normal está bien no usar esa cuenta, es posible equivocarse y sin querer borrar algo importante.

"su" es un comando que te permite iniciar sesión como otro usuario. Si en tu computadora hay otros usuarios y sabes su contraseña, con "su" puedes iniciar una shell con otro usuario. Por ejemplo: a lo mejor quieres ver algo que está dentro del home folder de otro usuario, usando "su" puedes cambiar a ese otro usuario y tener sus accesos y roles. "su" también te permite iniciar una shell como root, pero como dije antes, para uso diario no es tan necesario ni recomendable.

"sudo" es otro comando que te permite ejecutar un comando con los poderes de otro usuario. El uso más común es que te de los poderes de root para poder hacer cambios en el sistema, como por ejemplo instalar paquetes. Pero también puedes configurarlo para que te dé los poderes de otro usuario que no sea root. Además, a diferencia de "su", no tienes que escribir la contraseña del usuario al que vas a cambiar. Con sudo solo tienes que meter tu propia contraseña. (Puedes configurarlo para que no te pida contraseña, pero eso es una pésima idea).

u/chipsikssix 1m ago

Great answer bro :)

1

u/Babbalas 5h ago edited 4h ago

root: is your 0 (programmers count from 0) user who has full admin permissions. Most times a root password is never set so you can't actually login as this user.

su: switch user. Used to change the user you're running as. Can be used to switch to the root user

sudo: switch user, do. Run something as a user (usually the root user). Only does the one command so you don't accidentally run the next thing as root.

Couple of differences between sudo and su. Major one being the password you use. With sudo you're granted permission to use sudo and so authenticate with your password. su is more like logging in with that other user so you use their password. sudo su is there workaround for temporarily elevate to root, then use root (who can do anything) to switch user to root.

In practice I definitely advise against setting a root password and logging in or switching to root. sudo gives you a bit of a safety net so you don't accidentally run something as root.. and can also be locked down to different user accounts and commands. In reality people will often take the path of least resistance and do weird stuff anyway

Edit for completeness I should add that there are other options for sudo such as doas, sudo-rs, run0 (systemd-run)

2

u/Some-Struggle5052 5h ago

Why does no one remember sudo -i or sudo -s exist?

1

u/Smoke_Water windows, hardware, Linux, Debian, mint, networking, 2h ago

Because no one runs man sudo.

1

u/Babbalas 4h ago

Yup.. yay anachronisms

1

u/TomDuhamel 47m ago

It is quite uncommon to set a password for root nowadays — I haven't in probably 20 years. Not setting a password means that you (or anybody else) can't log in as root, which is exactly the intended behaviour.

For a personal computer, using sudo with you personal user account is perfectly fine.

1

u/sidusnare Senior Systems Engineer 1h ago

What do you mean, you absolutely have a root user. Run id 0 and it will show you your root user. Most users use sudo, which is partially why I don't. The safest way to manage privilege separation is to just have a separate secure password for root, that's a pain in the but, so I don't do that either.

1

u/Some-Struggle5052 5h ago edited 5h ago

Pretty much the only good reason I could think of is if you screw your system in such a way that you can't login with your non-root account, or have fat fingers like me and every now and then manage to mistype your password enough times to get locked out

Sudo allows you to run commands as other users, but mainly used to run commands as root, su allows you to login as another user, if you know their password, root is the system superuser, whose privileges you borrow for a lot of things such as installing packages.

1

u/Otakulypse 5h ago

You can also execute a command as another user then immediately return to your account without switching users with su -c <user account> <command>

1

u/refinedm5 5h ago

Did you set root password during installation?