Para algún propósito especial, quiero evitar que los usuarios no root del servidor Linux cambien o cambien el nombre de los archivos. Sin embargo, pueden modificar y escribir en el contenido del archivo. Cómo hacer esto desde la línea de comando.
Respuesta1
Para cambiar el nombre de un archivo, los permisos de escritura en el archivo no importan, cambiar el nombre de un archivo es un cambio en el directorio, no en el archivo. Eso es cambiar la entrada del directorio para que tenga un nombre diferente que apunte al archivo.
Entonces todo lo que necesitas hacer es cambiar los permisos del directorio. Por ejemplo:
chown root: .
chmod 755 .
Eso evitará que los usuarios cambien el nombre de los archivos allí, pero también que creen o eliminen archivos. Si aún desea que puedan hacer eso, puede hacer que se pueda escribir en el directorio pero también configurar el t
bit. Con ese bit configurado, los usuarios (excepto el propietario del directorio que no está restringido) solo pueden eliminar o cambiar el nombre de los archivos que poseen.
chown root:people-who-can-create-file-here .
chmod 1775 .
chown root:people-who-can-modify-the-files file1-that-must-not-be-rename ...
chmod 664 file1-that-must-not-be-rename ...