Perché non riesco a chmod per rendere eseguibile un file senza sudo?

1

In OS X 10.6.8, ho creato un piccolo file di script nella mia home directory e ho cercato di renderlo eseguibile. Sorprendentemente, ho scoperto che chmod non ha avuto effetto finché non l'ho eseguito come superutente. Possiedo e ho accesso in scrittura alla mia directory home directory e allo script, quindi cosa impedisce a chmod di funzionare?

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$
    
posta crowding 30.07.2012 - 04:44
fonte

1 risposta

0

Si scopre che c'era un altro exec "chmod" sul percorso, che oscurava il mio chmod.

La cosa che rendeva questo difficile vedere era che avevo usato il metacarattere "~" nella mia variabile PATH. Solo alcune cose interpretano una tilde nel PERCORSO. Il programma which non espande la tilde, quindi which chmod mi ha detto che /bin/chmod era il chmod sul percorso, ma bash fa espande la tilde, quindi ha provato a eseguire l'altro chmod (che non ha fatto nulla). Nel frattempo, sudo non espande la tilde, quindi ha funzionato e ha dato l'impressione di un problema di autorizzazioni.

Risoluzione: quando aggiungi sottodirectory della tua home directory a PATH, usa $HOME invece di ~ .

    
risposta data 02.08.2012 - 06:23
fonte

Leggi altre domande sui tag