Node:Acceso anónimo, Next:, Previous:El servidor de autentificación de contraseñas, Up:Administración del Repositorio



Acceso anónimo

Hasta ahora sólo hemos visto cómo usar el servidor de autentificación de contraseñas para dar acceso total al repositorio (aunque es cierto que se puede restringir ese acceso mediante permisos de fichero Unix cuidadosamente elegidos). Pasar a acceso anónimo y de sólo lectura es un paso simple: sólo hay que añadir un nuevo fichero, o quizá dos, en CVSROOT/. Los nombres de los ficheros son readers y writers - el primero contiene una lista de nombres de usuario que pueden leer el repositorio solamente, y el segundo los usuarios que pueden leer y escribir.

Si lista un nombre de usuario en CVSROOT/readers, ese usuario tendrá acceso de sólo lectura a todos los proyectos del repositorio. Si lista un nombre de usuario en CVSROOT/writers, ese usuario tendrá acceso a escritura, y todos los usuarios de pserver que no estén listados en writers tendrán acceso de sólo lectura (es decir, si el fichero writers existe, implica acceso de sólo lectura para todos los que no estén listados en él). Si el mismo nombre de usuario se encuentra listado en los dos ficheros, CVS resuelve el conflicto del modo más conservador: el usuario tendrá acceso de sólo lectura.

El formato de los ficheros es muy simple: un usuario por línea (no olvide poner una nueva línea en blanco después del último usuario). Un fichero readers de muestra sería:

anonymous
splotnik
guest
jbrowse

Hay que notar que los ficheros se refieren a nombres de usuario de CVS, no de sistema. Si usa alias de usuario en el fichero CVSROOT/passwd (poniendo un nombre de usuario de sistema después de los segundos dos puntos), el nombre de usuario más a la izquierda es el que hay que listar en el fichero readers o writers.

Para ser preciso, hay una descripción formal del comportamiento del servidor para decidir si dar acceso de sólo lectura o de lectura y escritura:

Si existe un fichero readers y este usuario está listado en él, se le dará acceso de sólo lectura. Si existe un fichero writers y este usuario no está listado en él, se le dará también acceso de sólo lectura (esto es cierto incluso si existe un fichero readers pero esa persona no está listada en él). Si esa persona está listada en ambos, se le dará acceso de sólo lectura. En todos los demás casos, a esa persona se le dará acceso completo de lectura y escritura.

Así, un repositorio típico con acceso a CVS anónimo tendrá esto (o algo parecido) en CVSROOT/passwd

anonymous:XR4EZcEs0szik

esto (o algo parecido) en /etc/passwd

anonymous:!:1729:105:Usuario CVS Anónimo:/usr/local/nuevorepos:/bin/false

y esto en CVSROOT/readers:

anonymous

Y, por supuesto, la configuración mencionada anteriormente en /etc/services y /etc/inetd.conf. ¡Y eso es todo!

Hay que remarcar que algunos sistemas Unix antiguos no permiten nombres de usuario mayores de ocho caracteres. Una forma de arreglar esto sería llamar al usuario anon en lugar de anonymous en CVSROOT/passwd y los ficheros de sistema, porque la gente asume a menudo que anon es una abreviatura de anonymous de todas formas. Pero sería mejor poner algo como esto en el fichero CVSROOT/passwd

anonymous:XR4EZcEs0szik:cvsanon

(y luego, por supuesto, usar cvsanon en los ficheros de sistema). De este modo será capaz de publicar una dirección de repositorio que use anonymous, que es más o menos el estándar ahora. La gente que acceda al repositorio con

cvs -d :pserver:anonymous@cvs.foobar.com:/usr/local/nuevorepos (etc...)

realmente ejecutarían en el servidor como cvsanon (o lo que sea). Pero no necesitarían conocer o preocuparse de cómo están configuradas las cosas en el lado del servidor - sólo verían la dirección publicada.