Quiero que un administrador pueda editar el archivo /etc/fstab pero que un administrador no pueda editar el archivo fstab.
Ambos administradores necesitan acceso a todas las demás tareas administrativas.
es posible?
Supongo que necesitaría configurar de alguna manera a qué archivos les da acceso "sudo". ¿O es posible simplemente crear cuentas no administrativas y luego crear un grupo llamado fstab-access y agregar uno de los usuarios a él y configurar privilegios para ese grupo...? ¿Estoy en el camino correcto?
Respuesta1
Si les das acceso a todo, obviamente todas las apuestas están canceladas. Sin embargo, puede permitir que un usuario edite un archivo en particular y nada más. Por ejemplo:
user ALL = sudoedit /etc/fstab
Permitiría al usuario editar sólo /etc/fstab.
Respuesta2
Si solo desea permitir que un usuario edite /etc/fstab
, puede hacerlo de varias maneras:
- Asegúrese de que las listas de control de acceso estén habilitadas (
acl
opción en la/etc/fstab
entrada para/
) ysetfacl -m user:joe:rw /etc/fstab
. - Agregar una
sudoers
regla: ejecutarvisudo
y agregar una líneajoe ALL = sudoedit /etc/fstab
Recomiendo el método sudo porque facilita auditar quién puede hacer qué.
Sin embargo, si permite que un usuario edite /etc/fstab
, entonces puede obtener raíz indirectamente agregando una entrada que le permita montar un sistema de archivos externo o de bucle en el que haya instalado un binario raíz setuid.
Es bastante extraño permitir que un usuario fstab
solo edite. Si desea permitir a los usuarios montar dispositivos extraíbles, utilicepmount
(o confiar en entornos de escritorio).
Si permite que un usuario ejecute comandos no incluidos en la lista blanca como root (“todas las demás tareas administrativas”), no podrá evitar que edite ningún archivo en particular. En algún momento, tendrás que decidir si confías en estas personas o no. Si no confía en ellos para administrar su máquina, no les dé privilegios (haga que usen otra máquina, tal vez una máquina virtual). Si confía en ellos, déjelos convertirse en root y dígales que ciertos archivos están prohibidos.
Respuesta3
Si intenta enumerar todas y cada una de las utilidades que un administrador puede necesitar, estará sentado frente al teclado por un tiempo.
Técnicamente, este tipo de deseo es la razón por la queCapacidades de Linuxfueron desarrollados. Para hacer lo que desea: puede brindarles a los usuarios capacidades particulares y luego simplemente otorgarle al usuario1 acceso de escritura fstab
(a través de ACL o algo así) y simplemente no otorgarle el mismo privilegio de escritura al usuario restringido2 (asegurándose de que el usuario2 no tenga CAP_CHOWN o CAP_DAC_OVERRIDE), pero dado el estado actual de las capacidades (en términos de qué tan bien desarrollado está el espacio de usuario), probablemente sea más trabajo de lo que vale.
Sin utilizar capacidades para delegar responsabilidades en un escenario de "root como rol de usuario", solo tiene varias permutaciones de uso de la cuenta raíz para hacer cosas. Eso nos lleva al problema antes mencionado de decirle al sistema todas y cada una de las herramientas posibles que el otro usuario necesita (con suerte, una que no pueda usarse indirectamente para manipular fstab
).
Probablemente sea mejor que simplemente decida si puede confiar en que un usuario en particular sea administrador o no.