Problema al ejecutar el comando como un usuario diferente con sudo -u

12

Cuando intento ejecutar lscomo usuario abccon el siguiente comando me sale un error:

xyz@host:~/temp$ sudo -u abc ls
[sudo] password for xyz:
Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host.

Pero si lo hago su abcy luego ejecuto lsno tengo problema

usuario1678312
fuente

Respuestas:

17

Debe configurar la política de seguridad de sudo para permitir al usuario xyz exec algo como user abc. Lea 'man sudoers' y use el comando visudo para configurar / etc / sudoers.

Por ejemplo, permitamos al usuario xyz exec / usr / bin / whoami como usuario abc sin contraseña. Agregue esta cadena en / etc / sudoers (con visudo, no edite / etc / sudoers directamente):

xyz ALL = (abc) NOPASSWD: /usr/bin/whoami

Y ahora pruébalo:

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc
svq
fuente
¿Le importaría explicar por qué debería evitar editar / etc / sudoers directamente?
Adi Prasetyo
Porque cuando edita / etc / sudoers directamente puede cometer un error, rompe el archivo sudoers y (en el peor de los casos) se bloquea con el uso de sudo. 'Visudo' no es solo un editor, también verifica la sintaxis del archivo sudoers y ayuda a evitar errores, errores tipográficos, etc.
svq
4

Esto es porque sudoes diferente de su. Cuando usted su abc, se convierte en el usuario abcen lo que respecta al sistema. Entonces puede hacer cualquier cosa que abcpueda hacer.

Por otro lado, sudose usa para permitir que otros usuarios ejecuten algunos comandos por proxy. En otras palabras, su sudoconfiguración le permite hacer algunos comandos en nombre de abc. Si el comando que está intentando ejecutar no es uno de ellos, obtendrá el error que informó.

Joseph R.
fuente
0

En caso de que todo se vea bien, pero aún recibes un Sorry user xxx cannot execute...mensaje y sigue pidiéndote una sudocontraseña cada vez.

Puedes hacerlo:

  1. En /etc/sudoerslínea de eliminación con su configuración de usuario
  2. Guardar el archivo
  3. Abra el archivo, escriba (SIN COPIA) sus opciones para ese usuario
  4. Guardar el archivo
  5. Intentalo.

Esto funcionó para mí. Resultó que el final en esa línea era malo porque copié los comandos que necesitaban ejecución desde el correo electrónico.

borbar
fuente
Seguramente si hubieras visudoeditado en primer lugar, ¿te habrían dicho eso?
Auspex
No, no lo harías.
borbar
Ah bueno. Realmente habría pensado ... En cualquier caso, creo que es mucho más probable que obtengas errores al escribir manualmente que copiar y pegar. Solo tenga en cuenta que los extremos de línea difieren.
Auspex