No se puede chown recursivamente

No se puede chown recursivamente

Estoy usando este comando:

chown root:www-data /var/www/example.com -R 

pero recibo un mensaje de error que indica que el directorio no aparece en la lista.

¿Lo que está mal?

Respuesta1

Hay que poner la -Ropción delante.

chown -R root:www-data /var/www/example.com 

(Siempre uso un punto en lugar de dos puntos entre usuario y grupo, pero las páginas de manual dicen que se deben usar dos puntos).

Respuesta2

La versión GNU coreutils de chown, que es estándar en Ubuntu, acepta opciones colocadas en cualquier lugar (siempre que --no se utilice). Eso es:

chown foo:bar some/location -R
chown -R foo:bar some/location

ambos trabajan. Esto se debe a cómogetopt_long()obras. En mi libro, esto es un error, ya que debería resultar en un error o estar documentado, lo cual, por lo que pude encontrar, no es así.

chown foo:bar some/location -- -R

buscaría el directorio llamado -R.


Sin embargo, si se establece una variable de entorno, POSIXLY_CORRECTel primer ejemplo fallaría si no hay un directorio llamado -Ry nunca se repetiría.

$ export POSIXLY_CORRECT=
$ chown -v :foo a/ -R
ownership of `a/' retained as foo:foo
chown: cannot access `-R': No such file or directory

En mi humilde opinión: siempre trate de ajustarse a la forma POSIX, ya que un día ingresa ese comando en otro sistema donde se aplica un POSIX, lo que se rompe.

También tenga en cuenta que el valor de POSIXLY_CORRECTno tiene ningún efecto. Esto no lo desactivaría:

export POSIXLY_CORRECT=0
export POSIXLY_CORRECT=no
export POSIXLY_CORRECT=false
export POSIXLY_CORRECT=...

Sería necesario unset.


Podría ser que su sistema esté configurado con otra chownherramienta o POSIXLY_CORRECTesté configurado.

Corregido por:

export | grep POSIX
chown --version
# etc.

Como nota al margen, el uso del punto, .para separar grupo y usuario quedó obsoleto a partir dePOSIX 2001( info coreutils 'chown invocation'), pero aún se admite por compatibilidad con versiones anteriores, aunque no se recomienda.

información relacionada