Fuera de las dos opciones para cambiar los permisos:
chmod 777 file.txt
chmod a+rwx file.txt
Estoy escribiendo un documento que detalla que los usuarios necesitan cambiar los permisos de un determinado archivo. Quiero detallarlo como la forma más común de cambiar los permisos de archivos.
Actualmente se dice:
- Set permissions on file.txt as per the example below:
- chmod 777 /tmp/file.txt
Este es solo un ejemplo, y no cambiará los archivos para tener permisos completos para todos.
permissions
Kevdog777
fuente
fuente
775
o solo755
para archivos ejecutables.chmod 777
es comochmod a=rwx
, nochmod a+rwx
.777
o666
es simple y mucho más fácil de memorizar queugo+rwx
,a+rwx
ougo+rw
que es muy confuso ya queo
es ambiguo y puede significar para usted, ya sea el propietario u otros, usted elige. Entonces, en lugar de cometer el gran error, sigue comprobandoman
para verificar cuál es cuál, o simplemente usa los números.Respuestas:
Google da:
chmod 777
Es aproximadamente 3 veces más popular.Dicho esto, prefiero usar opciones largas en la documentación y los scripts, ya que se documentan automáticamente. Si está siguiendo sus instrucciones con "Ejecutar
ls -l | grep file.txt
y verificar permisos", es posible que desee usarlochmod a+rwx
porque así es como se mostrarán los permisos.fuente
7
significa, etc.chmod 777
es más popular (como se conjeturó antes de ver sus números) es simplemente que escribe 2 caracteres menos :)chmod 777
es un atajo útil para lograr el mismo efecto. Sus lectores apreciarían el elemento educativo en su documentación. 777 es más popular porque es mucho más fácil y rápido golpear 7 tres veces, pero cuando un nuevo usuario ve 777 por primera vez, puede que no sepan exactamente qué significa. Es por eso que es una mala elección como documentación principal. Pero definitivamente vale la pena mencionarlo como un consejo.[Edito para agregar las mejores prácticas, siguiendo la sugerencia de Dotancohen en su respuesta. Espero que no lo aclare menos, y que se tome el buen hábito]
Información adicional importante: no son equivalentes.
chmod a+rwx
: establezca los últimos 3 octales en 777, de modo que se asegure de que Propietario, Grupo y Usuarios tengan el conjunto "rwx". Si hay bits adicionales en el primer octal (setuid, setgid y / o Sticky bit), los deja intactos. Piense en ello como un binario "o 00777".chmod 777
: establezca los derechos en 00777, para garantizar que el propietario, el grupo y los usuarios tengan configurado "rwx", Y NADA MÁS. También se asegura de que los bits adicionales (setuid, setgid y / o Sticky bit) estén establecidos en 0.Por lo tanto, use el primer formulario, si solo desea asegurarse de otorgar acceso a todos (y asegúrese de que sea doble, triple seguro de que es necesario ... abre la puerta a todo tipo de problemas de seguridad, algunos inesperadamente amplios en lo que permiten que lo haga un usuario malintencionado)
Utilice el formulario 777 si también desea asegurarse de restablecer cualquier bit setuid / setgid / sticky, es decir, si los archivos deben ser "00777", lo que probablemente sea más probable en su caso (se conoce el derecho del archivo, y debería ser : 00777). Aquí también, asegúrese de que sea realmente necesario ...
Por lo general, es mejor mantener el acceso al propietario (y a veces al grupo): luego use los grupos para otorgar acceso a algunos usuarios específicos al archivo / directorio. a + rwx es fácil y generalmente la forma incorrecta de otorgar acceso (por supuesto, hay casos muy raros cuando es la única forma ...)
http://en.wikipedia.org/wiki/Chmod es una buena lectura, ya que explica qué representa cada número o letra (incluidos setuid / setgid / sticky)
fuente
others
permiso? Si ha iniciado sesión en la máquina como usuario, ¿entonces seguramente puede usar elusers
permiso?chmod 777
es comochmod a=rwx
.Por lo general, pienso que la diferencia es que establecer los permisos en 0777 los establece explícitamente en 0777. Como se mencionó anteriormente, el 0 inicial se inferirá si solo escribe 777. Mientras que a + rwx agrega lectura / escritura / ejecución dejando el setuid / sticky poco intacto.
Suponga que solo quiere asegurarse de que un archivo es ejecutable, puede usar una + x para poder modificar el privilegio de ejecución sin preocuparse o modificar los otros permisos. Si utilizó la representación octal, necesitaría saber en qué están configurados actualmente los permisos para asegurarse de no modificar los permisos de otra manera además de lo que pretendía.
fuente
Diría que dar los valores numéricos es mucho más común en las "guías de personas simples", como las producidas para los usuarios de alojamiento web económico. Sin embargo, tenga cuidado de especificarlos como valores octales , no decimales:
$ chmod 0777 some_dir
Tenga
0
en cuenta el líder en0777
. Aunque Bash y otros entornos de CLI hacen lo correcto al usar los no acolchados777
, muchos lenguajes de programación como PHP y Perl tienen funciones similares que requieren el liderazgo0
. Así que recomiendo su uso también en Bash, para recordar que se supone que debe estar allí.Nota para los votantes negativos: como se aclara en los comentarios, el
chmod
comando de hecho sabe pasar la directiva como octal incluso si se especifica la notación decimal. Sin embargo, no todos los entornos admiten esto, por lo que es una buena práctica acostumbrarse a especificarlo explícitamente.fuente
chmod
nunca trata el número como decimal.chmod 777 file
ychmod 0777 file
son completamente equivalentes.chmod
comando shell; puedes pensar en los tres dígitos como independientes entre sí, cada uno con un conjunto de permisos.chmod 77
es equivalente achmod 077
.chmod
comando interpreta su argumento de modo en octal. Debe prestar atención si está utilizando la mayoría de los lenguajes de programación (C, Perl, ...), pero en un script de shell es octalchmod
.