Permitir a los usuarios de un determinado grupo ejecutar un comando sin sudo

11

Sé cómo editar / etc / sudoers para poder ejecutar un comando como sudo sin tener que ingresar mi contraseña, sin embargo, hay una manera de permitir que un programa se ejecute completamente sin sudo, por todos los usuarios de un grupo. (Los programas que quiero ejecutar son "mount" y "umount").

w4etwetewtwet
fuente
¿Cuál es tu sistema operativo? ¿Está intentando montar una partición NTFS, una partición EXT o una unidad óptica?
nate

Respuestas:

13

Supongamos que quisiera agregar un grupo de usuarios a los que se les permite ejecutar mounty umountsin contraseñas. Así que primero quiero agregar un grupo llamado "anyname"

sudo groupadd anyname

A continuación, debemos editar /etc/groupy agregar los usuarios.

anyname:x:407:

estará presente, por lo tanto, agregue los usuarios que desea agregar a los usuarios separados por comas.

anyname:x:407:user1,user2,...

Ahora necesitamos configurar sudo para permitir que los miembros del grupo "anyname" invoquen los comandos mounty umount.

Solo necesita agregar las siguientes líneas a / etc / sudoers

%anyname ALL=NOPASSWD: /sbin/mount, /sbin/umount

Ahora sudo mountno pedirá contraseña, pero dado que es una molestia en el sudo escribiendo sudo todo el tiempo, podemos evitarlo haciendo lo siguiente:

Puedo crear el siguiente script llamado "/ usr / bin / mount" (y un script similar para umount)

#! /bin/sh
sudo /sbin/mount $*

Para hacer esto un poco más seguro, es posible que queramos cambiar la propiedad de estos scripts al grupo "anyname".

chgrp anyname /usr/bin/mount /usr/bin/umount

y luego hacerlos ejecutables solo para el grupo "anyname"

chmod g+x /usr/bin/mount  /usr/bin/umount

EDITAR : Dependiendo del sistema operativo que esté utilizando, compruebe dónde se encuentran los comandos mount y umount. Puede estar en / bin / en lugar de /sbin, por lo que puede que tenga que hacer los cambios necesarios

IMPORTANTE : por cierto, no ejecute el script en sistemas basados ​​en Arch donde todas las carpetas bin están enlazadas entre sí.

Stormvirux
fuente
1
Gracias. De hecho, lo he implementado usando un .bashrc global, que contiene una función de montaje similar a esta: mount {sudo mount $ *}
w4etwetewtwet