2011-01-17 11 views
5

Podría ser un candidato para SuperUser, pero pensé que probaría aquí primero cuando surgiera la pregunta para un proyecto de programación.* nix configuration file storage convention?

¿Existe una convención * nix (dirigida a Solaris, Linux y OS X) para que una aplicación almacene la información almacenada en todo el sistema (actualizable por todos los usuarios)?

+3

En todo el sistema y actualizable por todos los usuarios son, de alguna manera, objetivos competitivos ... las rutas convencionales suelen ser root-grabables, o tal vez por un usuario ficticio específicamente para una aplicación determinada. – Cascabel

+2

Para ampliar el comentario de Jefromi, ¿por qué otro usuario podría modificar mi configuración? – tloach

+0

@Jefromi Indeed. Ese es el problema. :-) Tengo una circunstancia única en la que ciertos elementos se comparten, pero deben ser actualizados por cualquier usuario del sistema. –

Respuesta

2

Bueno, el esquema más común es tener una configuración de todo el sistema en /etc/app_name y el usuario puede crear ~/.app_name que anula la configuración en /etc/app_name. Incluso se puede ir un paso más allá y hacerlo con un concepto de tres capas: por ejemplo, si su aplicación está en /opt/app_name, entonces tiene una configuración predeterminada /opt/app_name/conf, y tanto /etc/app_name como ~/.app_name pueden anularla.

IIRC, KDE utiliza este concepto de tres capas e incluso tiene la posibilidad de marcar secciones o claves como no reemplazables, por lo que un administrador del sistema puede rechazar que el usuario anule e. gramo. la posición de la barra de tareas. Probablemente exagerado para implementar, pero quizás sea algo para pensar.

No importa si la configuración se almacena en un directorio que contiene varios archivos o si solo se trata de un archivo.

4

Principalmente información de configuración almacenada en la carpeta /etc/<app name> o si es una configuración específica del usuario, generalmente se almacena en la carpeta ~/.<app name>.

+1

Creo que '/ etc' puede ser lo más parecido posible al estándar que va a obtener. La expectativa es que se trata de un acceso restringido; al menos podría querer agregar a los usuarios en cuestión a un grupo para su aplicación, y hacerlo en grupo, pero no de escritura mundial. – Cascabel

+0

¿OS X sigue esta convención también, o es la estructura de "Bibliotecas" más apropiada? –

+0

Lo siento, no tengo una experiencia con MacOS, pero básicamente esto es Unix y debería ser casi lo mismo – Elalfer

1

Solaris (SVR4) estándar es para los binarios de la aplicación (archivos que no cambian) para ir en/opt/nombreaplic, archivos con un tamaño variable (por ejemplo. Registros) para ir en/var/opt/nombre de aplicación, y archivos de configuración de todo el sistema para pasar por/etc/opt/nombre de aplicación. La personalización del usuario se realiza tradicionalmente en/bajo ~ /. aplicación nombre.