¿Por qué no puedo hacer un chmod para hacer un archivo ejecutable sin sudo?

1

En OS X 10.6.8, hice un pequeño archivo de script en mi directorio de inicio e intenté hacerlo ejecutable. Sorprendentemente, encontré que chmod no tuvo efecto hasta que lo ejecuté como superusuario. Soy propietario y tengo acceso de escritura al directorio de mi directorio principal y al script, ¿qué impide que funcione chmod?

my_mac:~ crowding$ ls -dle ~
drwxr-xr-x+ 214 crowding  staff  7276 Jul 28 16:30 /Users/crowding
 0: group:everyone deny delete
my_mac:~ crowding$ ls -le ~/my_script 
-rw-r--r--  1 crowding  staff  22 Jul 28 16:25 /Users/crowding/my_script
my_mac:~ crowding$ chmod a+x ~/my_script 
my_mac:~ crowding$ ls -le ~/my_script 
-rw-r--r--  1 crowding  staff  22 Jul 28 16:25 /Users/crowding/my_script
my_mac:~ crowding$ sudo chmod a+x ~/my_script 
Password:
my_mac:~ crowding$ ls -le ~/my_script 
-rwxr-xr-x  1 crowding  staff  22 Jul 28 16:25 /Users/crowding/my_script
my_mac:~ crowding$
    
pregunta crowding 30.07.2012 - 04:44

1 respuesta

0

Resulta que había otro ejecutivo "chmod" en el camino, ocultando mi propio chmod.

Lo que hizo que esto fuera difícil de ver era que había usado el metacarácter "~" en mi variable PATH. Sólo algunas cosas interpretarán una tilde en el PATH. El programa which no expande la tilde, por lo que which chmod me dijo que /bin/chmod era el chmod en la ruta, pero bash expandía la tilde, por lo que trató de ejecutar el otro chmod (que no hizo nada). Mientras tanto, sudo no expande la tilde para que funcione, y da la impresión de un problema de permisos.

Resolución: cuando agregue subdirectorios de su directorio de inicio a su PATH, use $HOME en lugar de ~ .

    
respondido por el crowding 02.08.2012 - 06:23

Lea otras preguntas en las etiquetas