Sin usar sudo, preferiblemente?
permissions
filesystem
Evan
fuente
fuente
Respuestas:
Tratar:
Sin embargo, al hacer esto, el
root
usuario no podrá recuperar el archivo. Úselo con precaución.fuente
touch test && chattr +i test
arroja un error;chattr: Operation not permitted while setting flags on test
. Necesitassudo
para esto. Además de eso: todavía es posible eliminar el archivo:sudo chattr -i test && rm test
funciona.No, esto no es posible. Imposible que usuarios normales eliminen un archivo: claro.
Deberá
sudo
evitar que los usuarios eliminen archivos. Su administrador siempre podrá eliminar un archivo.sudo chattr +i test
puede evitar la eliminación pero lo requieresudo
. Un simplesudo chattr -i test
hace posible eliminar el archivo. Ningún otro usuario que el administrador pueda usarchattr
.Y ... simplemente reiniciar y entrar en modo de rescate permitirá que esa persona pueda eliminar ese archivo. Sería un riesgo de seguridad si hubiera un método para nunca poder eliminar un archivo.
fuente
Es un poco tosco, pero está cerca: si elimina el acceso de escritura en el directorio, los archivos que contiene no se pueden eliminar. Y no requiere
sudo
si lo posee:Por lo tanto, puede establecer permisos en el archivo como lo desee.
Además, como lo dijo @Rinzwind, ciertamente hay muchas formas de evitarlo.
fuente
Para eliminar un archivo, necesita permiso de escritura en todos los directorios a los que está vinculado ese archivo. Para desvincularlo de un directorio, necesita permiso de escritura en ese directorio.
Por lo tanto, siempre que otorgue permiso de escritura (o incluso propiedad) al archivo pero no al directorio o directorios a los que está vinculado ese archivo, ese archivo no se puede eliminar.
La mejor manera de lograrlo sería vincular ese archivo a un directorio que sea propiedad de root y que nadie pueda escribir. En su lugar, podría hacer que sea propiedad de usted, lo que significaría que tanto usted como root podrían eliminarlo.
Eso aún permitiría a otros usuarios vincular ese archivo a otros directorios y luego desvincularlo de allí, pero aún así no podrían eliminar el archivo ya que podrían desvincularlo de su propio directorio.
Tenga en cuenta que para que funcione completamente, el permiso de escritura de cada componente de ruta al archivo tendría que ser controlado. Porque, por ejemplo, si el archivo es
/a/b/the-file
y usted/a/b
no puede escribirlo, pero todos tienen acceso de escritura/a
, entonces podrían cambiar el nombre/a/b
a otra cosa y recrear el suyo/a/b
y crear el suyo/a/b/the-file
allí.fuente