1 votos

Sudo comando para cambiar propiedad y permiso y muestra `sudo: /usr/local/bin/sudo debe pertenecer al uid 0 y tener el bit setuid configurado`

Hice otra cuenta de administrador en mi MacOS Monterey para mi trabajo de programación. Luego tuve que cambiar la propiedad de los directorios de Homebrew para hacerlo funcionar.

sudo chown -R $(whoami) /usr/local/Homebrew/ /usr/local/var/homebrew /Library/Homebrew/ /usr/local/Cellar

Cuando volví a mi cuenta principal, Homebrew no funcionaba. así que decidí borrar la nueva cuenta y cambiar la propiedad de los directorios de vuelta a mi cuenta principal.

El problema comenzó cuando ejecuté el siguiente comando y necesito revertirlo.

sudo chown -R $(whoami) /usr

después de ese comando sudo no funciona y muestra la siguiente excepción:

  ~ sudo vi x.t
sudo: /usr/local/bin/sudo debe ser propiedad de uid 0 y tener el bit setuid configurado

aquí están los permisos de sudo:

  ~ ls -l /usr/bin/sudo                 
-r-s--x--x  1 root  wheel  1246544  8 Dec 10:39 /usr/bin/sudo

Activé la cuenta de root para cambiar los permisos pero no funcionó. También reinstalé el sistema operativo pero no hubo éxito. Intenté reemplazar el directorio /usr con el directorio /usr de un amigo con el mismo sistema operativo pero el directorio y sus archivos son de solo lectura. No pude cambiar las cosas en el Terminal del Modo de Recuperación.

Por favor, consejos.

2voto

Nate Puntos 220

Has estropeado la propiedad de /usr/local/bin/sudo, pero /usr/bin/sudo está bien, así que puedes usar eso para reparar el otro:

/usr/bin/sudo root /usr/local/bin/sudo

Probablemente hay otros problemas, ya que cambiaste la propiedad de todo /usr en lugar de solo los directorios relevantes. Pero se específico y cuidadoso al hacer reparaciones - parece que estás en un ciclo vicioso donde cada intento de reparar un problema solo crea problemas aún mayores (y si hubieras logrado reemplazar /usr, eso sí que habría creado problemas más graves). No intentes arreglar las cosas golpeándolas con martillos más grandes y más grandes, eso solo crea desastres más grandes y más grandes.

P.d. xkcd relevante: https://xkcd.com/349/

2voto

yoliho Puntos 340

Básicamente, Homebrew está diseñado para una máquina de un solo usuario.

Necesita que su directorio (En Intel /usr/local/bin) sea escribible por ese usuario y las instrucciones de instalación hacen que ese usuario sea propietario del directorio. Ahora, bajo Unix, no se pueden tener dos usuarios siendo propietarios del mismo directorio.

La forma normal de Unix (como se ha hecho durante 40 años) para instalar software a ser utilizado por múltiples usuarios es instalarlo en un directorio propiedad de root o de un usuario especial para la instalación. De esta manera, todos los usuarios pueden ejecutar los ejecutables pero necesitas tener derechos de sudo para actualizar las cosas. (Mi opinión es que actualizas mucho menos a menudo que ejecutas los ejecutables, así que esto no es un problema)

Para Macs hay varios otros gestores de paquetes que siguen la forma normal de Unix y yo usaría uno de ellos, por ejemplo MacPorts, conda, fink, nix

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X