Estás usando -664
, solo usa 664
en su lugar. Y nunca lo use sudo
cuando no lo necesite. Si ese es su archivo, no necesita sudo
:
chmod 644 my_file
Cuando corres chmod
con un -
antes del modo, eliminarás ese modo. Ver man chmod
(énfasis mío):
El operador + hace que los bits de modo de archivo seleccionados se agreguen a los bits de modo de archivo existentes de cada archivo; - hace que se eliminen ; y = hace que se agreguen y hace que se eliminen los bits no mencionados, excepto que los bits de ID de grupo y usuario de grupo no mencionados no se ven afectados.
Los números son:
- 1: ejecutar
- 2: escribir
- 4: leer
Por lo tanto, un archivo con 777
permisos significa que todos tienen derecho a hacer los tres, ya que 1 + 2 + 4 = 7, y por lo tanto, establecer los permisos en 7 significa permitir leer, escribir y ejecutar.
Si comienza con un archivo cuyo modo es 777
:
$ ls -l my_file
-rwxrwxrwx 1 terdon terdon 0 May 28 13:45 my_file
Y ahora ejecute chmod -644
, eliminará los bits 644
y terminará con un archivo cuyo modo es 133
:
$ chmod -644 my_file; ls -l my_file
---x-wx-wx 1 terdon terdon 0 May 28 13:45 my_file
Esto se debe a que eliminó 6 (lectura (4) + escritura (2)) de los permisos del propietario, dejando solo 1 conjunto (ejecución) y 4 (lectura) del grupo y otros permisos. El resultado es un archivo con solo permisos de ejecución (1) para el propietario, y escribe y ejecuta (desactiva 4, dejando 1 y 3) permisos para el resto.
Debido a que su archivo presumiblemente tenía los permisos predeterminados para los archivos nuevos, entonces 644
, cuando ejecutó chmod -644 my_file
, eliminó todos los bits de permisos establecidos y obtuvo un archivo sin permisos para nadie.
$ ls -l my_file
-rw-r--r-- 1 terdon terdon 0 May 28 13:45 my_file
$ chmod -644 my_file
$ ls -l my_file
---------- 1 terdon terdon 0 May 28 13:45 my_file
-
frente de 644? Tratarsudo chmod 644 my_file
.-644
eliminará los derechos.