Nota: estoy respondiendo 1. , ya que Ignacio ya respondió 2 ..
En la siguiente sudo
entrada:
superadm ALL=(ALL) ALL
hay cuatro campos:
- El primero especifica un usuario al que se le otorgarán privilegios para algunos comandos.
- El segundo rara vez se usa. Es una lista de nombres de host en los que esta entrada de sudo será efectiva. En configuraciones estándar, solo un host es relevante (localhost), por lo que este campo generalmente se deja como
ALL
.
- El cuarto campo es la lista de comandos
superadm
que se podrán ejecutar con privilegios elevados. ALL
significa todos los comandos. De lo contrario, use una lista de comandos separados por comas.
- El tercer campo (el escrito
(…)
que es opcional) especifica qué usuarios (y grupos) el superadm
usuario podrá ejecutar los siguientes comandos como. ALL
significa que pueden elegir cualquier cosa (sin restricciones). Si este campo se omite, significa lo mismo que (root)
.
Ejemplo:
alan ALL = (root, bin : operator, system) /bin/ls, /bin/kill
Aquí, alan
se permite ejecutar los dos comandos /bin/ls
y /bin/kill
como root
(o bin
), posiblemente con privilegios adicionales operator
o system
grupales.
Por alan
lo tanto, puede optar por ejecutarse ls
como el bin
usuario y con operator
los privilegios de grupo como este:
sudo -u bin -g operator /bin/ls /whatever/directory
Si -u
se omite, es lo mismo que -u root
. Si -g
se omite, no se otorgan privilegios de grupo adicionales.