Deshabilitar el permiso sudo para el usuario desde la línea de comandos


18

He activado el usuario root en ubuntu y quiero usar ubuntu como servidor sin DE. Para esto quiero deshabilitar el privilegio sudo otorgado al primer usuario. ¿Cómo puedo hacer esto desde la línea de comandos? Sé que puedo usar una GUI, pero ¿cómo hacerlo desde la línea de comandos?


Dependiendo de cómo configure sus grupos, escriba visudo
wojox

Respuestas:


14

El usuario en cuestión tiene privilegios de sudo porque está en el admingrupo. Como comentó Wojox, podría usar visudoy eliminar los privilegios de sudo del grupo de administración, pero eso eliminaría las capacidades de sudo de todos los miembros del grupo de administración, no solo de un usuario.

Alternativamente, puede eliminar al usuario del grupo de administración. Si la pantalla orientada vise considera suficiente línea de comandos, ejecute vigry elimine el nombre de usuario de la línea correspondiente.

Para una solución de línea de comando "pura", intente gpasswd, ya que administra / etc / group y puede agregar y eliminar usuarios de los grupos.

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare
                                         # ^- the group to remove
root@toki:~# gpasswd -d username admin
Removing user username from group admin

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin sambashare
                                        # ^- username not a member
root@toki:~# gpasswd -a username admin
Adding user username to group admin
root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare

A continuación se muestra mi primera respuesta antes de darme cuenta de que había una manera menos tonta de hacerlo.

Si desea una forma más complicada de hacer esto, puede usarla usermod.

Aquí hay una cita de la usermodpágina del manual:

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
    A list of supplementary groups which the user is also a member of.
    Each group is separated from the next by a comma, with no intervening
    whitespace. The groups are subject to the same restrictions as the
    group given with the -g option.

    If the user is currently a member of a group which is not listed, the
    user will be removed from the group. This behaviour can be changed via
    the -a option, which appends the user to the current supplementary group
    list.

Por lo tanto, debe especificar todos los grupos para el usuario, excepto admin.

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),122(sambashare)

root@toki:~# usermod -G 4,20,24,46,111,122 username

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),122(sambashare)

Finalmente, viola el espíritu de la pregunta, pero se podría escribir users-admindesde la línea de comandos para modificar usuarios y grupos.


Parece que el grupo que se eliminará en Precise ahora está en su sudolugar
Joril

2

Cualquier sabiduría que se pueda encontrar en las respuestas anteriores, he resuelto el problema de habilitar la cuenta raíz y deshabilitar sudo para un usuario específico de la siguiente manera.

Primero habilite la cuenta raíz:

$ sudo passwd root

Más información en la Documentación de Ubuntu .

Luego:

  • convertirse en root
  • copia de seguridad y luego editar / etc / group
  • volver a ser usuario para probar los cambios

Es decir:

$ su
# cp /etc/group /etc/group.bak
# nano /etc/group               # find a line like 'sudo:x:27:guest', remove the
                                # user name (i.c. 'guest') and save the file
# exit,
$ [try any sudo command]

El usuario 'invitado' ahora se elimina del archivo sudoers. Si todo salió bien, cualquier comando sudo debería devolver un mensaje como este:

guest is not in the sudoers file.  This incident will be reported.

Un invitado que inicie sesión en esta computadora ya no puede meterse accidental o voluntariamente con el sistema, ya que debe ser root para hacerlo. Por supuesto, si agrega un nuevo usuario, deberá repetir la edición de / etc / group.

¡Salud!

- linuxrev

(Ubuntu 12.04)


1

Advertencia

¡Cuidado, puedes cerrarte de nuestro sistema de esta manera! Siempre asegúrese de que el usuario root conserve sus derechos y que pueda acceder a ellos. Mantenga abierto un terminal raíz de antemano para que pueda deshacer los cambios. ¡Pruebe la configuración en otro terminal antes de cerrar su terminal raíz!

soduers

Como se describe en otra respuesta . Edite /etc/sudoersinvocando visudo en shell:

sudo select-editor # this is optional. it will allow you to select your default editor in shell
sudo visudo

Luego cambie la línea que dice algo similar a esto:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

a esto:

# root may gain root privileges
root ALL=(ALL) ALL

O elimine la línea, si está seguro, su cuenta de usuario root está habilitada.

grupo

El usuario predeterminado es miembro del grupo 'admin'. Si lo prefiere, también podría revocar la membresía de los usuarios en ese grupo. Hacer que siguiendo mi último eslabón o eliminar su nombre de la línea admin:x:120:defaultuseren el /etc/grouparchivo:

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)/\1\2/g' /etc/group

1
@psusi: No, estás EQUIVOCADO. Él PUEDE borrarlo. Como dijo "he activado el usuario root en ubuntu", siempre puede INICIAR SESIÓN como USUARIO RAÍZ PARA GANAR ACCESO. Por favor, corrija su voto negativo de mi publicación.
con-f-use
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.