1 votos

Creando un enlace simbólico no funciona. ¿Cómo lo creo?

Versión del sistema operativo:

Nombre del producto: macOS
Versión del producto: 12.4
Versión de compilación: 21F79

Interfaz de línea de comandos:

zsh 5.8.1 (x86_64-apple-darwin21.0)

Pasos para reproducir

$ cd /usr/bin
$ ln -sf lo_que_existe lo_que_quieras
ln: lo_que_quieras: Operación no permitida
$ sudo ln -sf lo_que_existe lo_que_quieras
ln: lo_que_quieras: Operación no permitida

No sé qué más hacer. Me encantaría cualquier otra cosa.

1 votos

¿Cuál es la justificación para querer acceder a los binarios del sistema por nombres alternativos? Por favor, actualiza tu pregunta si puedes.

4voto

Andy Griffiths Puntos 1

/usr/bin está en el Volumen Sellado Firmado de Monterey. No se puede modificar, ni siquiera por el usuario root. Consulta https://support.apple.com/en-gb/guide/security/secd698747c9/web para obtener más información sobre el SSV. Está ahí para evitar que se manipule el sistema.

Puedes verificar si una carpeta está en el SSV utilizando diskutil apfs list para mostrar todos los volúmenes de APFS, y notando cuáles están etiquetados como sellados. Por lo general, habrá un snapshot del volumen montado en / que está sellado. Los volúmenes no sellados como /System/Volumes/Data serán aquellos donde residen los datos modificables por el usuario.

Puedes verificar dónde se encuentra una carpeta en particular usando, por ejemplo:

% cd /usr/bin
% df ./
Filesystem     512-bloques     Usados Disponible Capacidad iusados      idisponible %iusado  Montado en
/dev/disk3s1s1 1942700360 17243704 220253880     8%  348619 1101269400    0%   /

% cd ../local 
% df ./   
Filesystem   512-bloques       Used Available Capacity iused      ifree %iused  Montado en
/dev/disk3s5 1942700360 1689972040 220245304    89% 2814601 1101226520    0%   /System/Volumes/Data

Como se sugiere en los comentarios, una práctica mejor es crear el enlace simbólico en otro lugar en el $PATH, como /usr/local/bin, que debería estar allí por defecto e incluido exactamente para este propósito.

% cd /usr/local/bin
% ln -sf /usr/bin/my_random_binary random_binary_linked

1 votos

Casi con toda seguridad, junto con esta respuesta, estarás mejor si pones lo que crees que necesitas para anular algo en /usr/bin en otro directorio y prefijas ese directorio a tu ruta de acceso.

2 votos

Sí, exactamente para qué es /usr/local/bin...

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