Node:Acceso anonimo, Next:Estructura del repositorio, Previous:El servidor de autentificacion de contrasen~as, Up:Administracion del Repositorio
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.