Quiero modificar mis capacidades de sudo en mi mac, para evitar solicitudes de contraseña al iniciar postgres, entre otras cosas. Estoy leyendo Sudo Mastery de Michael Lucas y, en general, tengo una buena idea sobre cómo modificar las entradas y usar visudo .
Sin embargo, Michael señala que, independientemente de lo que haga, editar sudoers es intrínsecamente inseguro y puede dejarlo fuera de su máquina. Y hace todo lo posible para advertir a las personas que activen un inicio de sesión raíz, especialmente en macOS. Una vez que su archivo sudoers esté bien y lo haya confirmado con un reinicio, siempre puede deshabilitar la raíz.
Quiero decir, si solo está copiando los sudoers originales y luego, cuando las cosas explotan, arranque seguro, vaya a la Terminal y restaure los sudoers respaldados , está bien. Pero quiero estar 110% seguro de que no me bloquearán.
Nota: Es muy posible que pruebe primero con los sudoers de una máquina virtual Linux, pero aún quiero tener una ruta de escape.
En macOS Mojave, teniendo en cuenta las diversas limitaciones de seguridad intencionales de Apple en torno a arranques seguros y SIP, ¿cuáles son los pasos más simples para crear una puerta trasera de inicio de sesión raíz temporal ?
No se requiere una puerta trasera, de hecho, realmente no se requiere nada (ni siquiera una copia de seguridad) para editar el archivo sudoers . No puede quedarse fuera de su máquina.
Sin embargo, una copia de seguridad ( sudo cp /etc/sudoers /etc/sudoers.bak
) es más conveniente, porque simplemente puede restaurarla con una sola línea.
Razones:
Probado en una máquina virtual Mojave por:
nano
comentando la raíz y la línea %admin , cambiando la propiedad de sudoers a 501:staff y convirtiéndolo en 777Prueba:
rm sudoers
) era un escenario 2. ( nano/chmod/chown sudoers
) era otro escenario.Con el debido respeto a las otras personas que han ofrecido sugerencias hasta ahora, están ofreciendo ideas mucho más complicadas de lo necesario.
Aquí está la simple verdad: desde al menos 10.11 en adelante, no hay necesidad de tocar su /etc/sudoers
archivo. Ninguno. Solo déjalo en paz.
Mire la parte inferior del /etc/sudoers
archivo y verá estas líneas:
## Read drop-in files from /private/etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /private/etc/sudoers.d
Lo que eso significa es que puede colocar archivos /etc/sudoers.d/
y sudo
leerlos como si estuvieran en el sudoers
archivo principal sin tener que tocar el sudoers
archivo oficial.
(En algunas versiones de macOS, es posible que deba crear la carpeta a través de sudo mkdir /etc/sudoers.d/
, pero en versiones recientes, ya existe).
Puede crear/editar el archivo de esta manera:
sudo visudo -f /etc/sudoers.d/foo
Cuando salga del editor, visudo
verificará la sintaxis por usted, pero incluso si ignora las advertencias y lo guarda de todos modos, sudo
ignorará cualquier archivo /etc/sudoers.d/
que no tenga la sintaxis correcta, pero su sudoers
archivo principal permanecerá intacto y funcionando.
Puede ejecutar sudo visudo -c
para verificar la sintaxis de cualquiera/todos sudoers
los archivos y mostrar que se están leyendo/incluyendo.
Los archivos /etc/sudoers.d/
deben ser propiedad de root, deben serlo chmod 440
y no deben tener ninguna extensión de archivo (es decir, "foo" está bien pero no "foo.txt"). Si crea el archivo usándolo, se le visudo
otorgarán automáticamente los permisos correctos.
(Ah, y no es necesario habilitarlo root
en una Mac. He usado uno desde 2003 y he hecho todo tipo de cosas raras, pero nunca lo he necesitado).
Si alguna vez logra arruinar su /etc/sudoers
archivo, puede usar BBEdit para editar el archivo. Le pedirá su contraseña de administrador, pero una vez ingresada, puede editar el archivo y eliminar la línea ofensiva. Pero aún así nunca debe editar el /etc/sudoers
archivo.
macOS es un poco más seguro que la mayoría de los sistemas operativos unixish a este respecto, ya que tiene rutas de acceso a la raíz que no dependen de sudo
. Si estropea /etc/sudoers, hay varias formas de recuperar (incluso sin preparación previa, además de hacer una copia de seguridad de /etc/sudoers):
Ejecute la Utilidad de Directorio (está oculta en /System/Library/CoreServices/Applications, pero Spotlight puede encontrarla). Haga clic en el candado y autentíquese, luego seleccione el menú Editar > Habilitar usuario raíz e ingrese una contraseña raíz. Cuando haya terminado con la raíz, puede desactivarlo de la misma manera.
Puede usar AppleScript do shell script ... with administrator privileges
para ejecutar comandos de shell como root. Abra /Aplicaciones/Utilidades/Editor de secuencias de comandos e ingrese algo como esto:
do shell script "cp /etc/sudoers.bkp /etc/sudoers" with administrator privileges
... y presione el botón ejecutar (triángulo apuntando hacia la derecha) en la barra de herramientas. Autenticar cuando se le solicite.
Luego también está el método simple y universal: antes de jugar con /etc/sudoers, ejecute sudo -s
para abrir un shell raíz y déjelo abierto para que pueda usarlo para recuperarse si es necesario. Obviamente, no sobrevivirá a un reinicio, pero puede realizar pruebas básicas en su nuevo /etc/sudoers antes de reiniciar.
bmike
bmike
JL Peyret
bmike
sin ladera