problema para controlar acceso de usuarios en samba

Forums: 

Un cliente quiere migrar su servidor de archivos y pasarlo a linux pero este cliente constantemente vive cambiando de parecer al compartir archivos entonces siempre me pide que le de solo lectura a la carpeta principal a la secretaria o al contador en windows es facil solo en control de usuarios le digo el recurso compartido tiene acceso secretaria y contador y le doy solo lectura en ese momento no pueden escribir nada ni modificar nada menos borrar. en linux creo los grupos y agrego los usuarios al grupo pero como hago para que secretaria que esta en el grupo empleados para el recurso compartido en linux llamado OFICINA solo pueda leer sin afectar al grupo total.

estos son mis problemas.

1- grupo EMPLEADOS tiene 6 usuarios registrados ellos tienen control total de la carpeta OFICINA.
2- deseo que el 4 usuario del grupo EMPLEADOS deje de tener control total de la carpeta OFICINA solo pueda leer.
3- no quiero que el usuario 4 modifique los archivos que el ha creado en esa carpeta OFICINA.

ya tengo mas de 2 horas de estarle dando vueltas al asunto y o lo dejo fuera y no puede accesar a la carpeta o accesa a la carpeta. el problema esc que si yo saco al usuario del grupo y lo pongo normal el no puede leer debido a que los archivos tienen el grupo registrado y el no pertenece al grupo por lo cual no puede hacer nada menos leer ni ver.
que estoy haciendo mal ya me queme el cerebro no se me vienen ideas a la cabeza. gracias por sus comentarios.

Muéstranos el contenido del

Imagen de jcyepez

Muéstranos el contenido del smb.conf.

en el smb.conf viene esto:

[quote]# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; read only = yes
; write list = @staff[/quote]

Saludos

Juan Yépez
093681879

Saludos

Juan Yépez
0993681879
Dj - Discomovil Quito

el contenido de mi smb es este

Imagen de juandarcy2000


#grep -v "#" /etc/samba/smb.conf |sed -e '/^$/d'


[global]
workgroup = WIFI
server string = Samba Server
hosts allow = 192.168.1. 192.168.2. 127.
printcap name = /etc/printcap
load printers = yes
; printing = cups
cups options = raw
; guest account = pcguest
log file = /var/log/samba/%m.log
max log size = 50
security = share
; password server =
; password level = 8
; username level = 8
encrypt passwords = yes
; smb passwd file = /etc/samba/smbpasswd
; unix password sync = Yes
; passwd program = /usr/bin/passwd %u
; passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
; username map = /etc/samba/smbusers
; include = /etc/samba/smb.conf.%m
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
; interfaces = 192.168.12.2/24 192.168.13.2/24
; remote browse sync = 192.168.3.25 192.168.5.255
; remote announce = 192.168.1.255 192.168.2.44
; local master = no
; os level = 33
; domain master = yes
; preferred master = yes
; domain logons = yes
; logon script = %m.bat
; logon script = %U.bat
; logon path = \\%L\Profiles\%U
; name resolve order = wins lmhosts bcast
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
dns proxy = no
; preserve case = no
; short preserve case = no
; default case = lower
; case sensitive = no
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
winbind use default domain = no
[homes]
comment = Home Directories
browseable = no
writable = yes
; [netlogon]
; comment = Network Logon Service
; path = /home/netlogon
; guest ok = yes
; writable = no
; share modes = no
;[Profiles]
; path = /home/profiles
; browseable = no
; guest ok = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = yes
guest ok = yes
writable = no
printable = yes
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes
[public]
comment = Public Stuff
path = /home/samba
public = yes
read only = yes
write list = @administradores
;[fredsprn]
; comment = Fred's Printer
; valid users = fred
; path = /homes/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes
;[fredsdir]
; comment = Fred's Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no
;[pchome]
; comment = PC Directories
; path = /usr/pc/%m
; public = no
; writable = yes
;[public]
; path = /usr/somewhere/else/public
; public = yes
; only guest = yes
; writable = yes
; printable = no
;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765
[juan_carlos]
comment = Carpeta juan carlos
path = /juan_carlos
valid users = @administradores
public = no
writable = yes
printable = no
create mask = 0765
browseable = yes
[nicaspeed]
browseable = yes
writeable = yes
printable = no
path = /var/www/html/nicaspeed
comment = Carpeta juan carlos
valid users = @administradores
user = administrador
create mode = 0765
directory mode = 0765
[musica]
comment = Carpeta de musica
path = /home/musica
valid users = @administradores
public = no
writable = yes
printable = no
create mask = 0765
browseable = yes
[testing]
browseable = yes
comment = Carpeta prueba
writeable = yes
admin users = administrador
path = /testing

mi confusion es los permisos de la carpeta a compartir he logrado que tenga permisos de usuario 7 groups 7 y otros 5
entonces pongo a los usuarios que no estan en el grupo fuera como usuarios validos y solo pueden leer en la carpeta el problema es que no he logrado hacer que funcione write list y otras opciones de samba seguramente por los permisos que tienen al crear la carpeta que generalmente son 755 y le doy permisos al grupo de administradores realmente estoy confundido y estoy casi seguro de que es por permisos y dueños de las carpetas compartidas. me gustaria saber si hay algo en los permisos para que samba pueda asignar las caracteristicas de la configuracion de samba
por ejemplo


[public]
comment = Public Stuff
path = /home/samba
public = yes
read only = yes
write list = @administradores

puse eso y deja entrar a los administradores como read only aunque la carpeta /home/samba tenga permisos 777 para root y el grupo administradores y otros que hago mal esto me tiene frustrado :). y ahi dice que el grupo administradores tiene permisos de write list ?que hago mal?

esta es la carpeta compartida
/home/samba


drwxrwxrwx 2 root administradores 4096 Feb 8 23:06 samba

La directiva de public=yes

Imagen de acl

La directiva de public=yes puede estarte generando problemas (alguno de los usuarios podría estar accediendo con permisos de guest, y por ello por ejemplo los admins no están pudiendo escribir). Prueba quitándola. Con ello, solamente los usuarios que autentiquen pueden acceder al recurso.

Ahora bien, hay un conflicto entre tu punto 2 y 3. Si el usuario solo tiene acceso de lectura al directorio, ¿cómo va a crear un archivo allí?

Lo que te toca hacer es crear un grupo escribircarpetax y ahí añadir los usuarios que tienen permiso para escribir en ella, y no al que quieres darle acceso de solo lectura.

Te recomiendo tambien montar el sistema de archivos con soporte de acls para que puedas tener mejor control sin tantos grupos.

--
haber != a ver
ha != a

le he dado vueltas

Imagen de juandarcy2000

siempre que no ponga la opcion writable = yes no me deja escribir nada aunque este en el grupo administradores aunque ponga valid users lo que ponga si no pongo writable = yes solo puedo leer ya estoy viendo chispas con esto. hay alguien que tenga algun ejemplo probado para poder verlo y saber si voy por buen camino.
:sick:

Sube el log level de samba y

Imagen de acl

Sube el log level de samba y mira los archivos que genera. Samba genera un log general y un log de cada maquina que se conecta. Muéstranos cualquier cosa que sea interesante cuando intentes conectarte.

--
haber != a ver
ha != a

Es posible que tu servidor

Imagen de acl

Es posible que tu servidor tenga problemas con la autenticación por no encontrar el archivo /etc/samba/smbpasswd (ver aquí). Como dije antes, si el usuario no se puede autenticar, la opción public=yes provoca que entres con permisos de guest (nobody). Es preferible no ponerla, con eso al menos tendrás un indicador de lo que está fallando.

--
haber != a ver
ha != a

ok el problema sigue asi que asumo soy yo en mi configuracion

Imagen de juandarcy2000

pero no veo logica ya que al ver el ejemplo que trae samba el cual es este y dice.

# A publicly accessible directory, but read only, except for people in
# the "administradores" group


[public]
comment = Public Stuff
path = /home/samba
public = yes
read only = yes
write list = @administradores

yo estoy en el grupo administradores

en /etc/passwd = administrador:x:506:544::/home/administrador:/bin/false
en /etc/group = administradores:x:544:juandarcy2000,administrador

mi equipo en windows se loguea con el usuario administrador
en el archivo /etc/samba/smbpasswd tengo esto = administrador:506:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:

aqui ya puedo entrar al servidor pero como se mira en el ejemplo el parametro write list = @administradores con la opcion que le antecede read only = yes no se segun entiendo si alguien me aclara el titulo del ejemplo dice que solo el grupo administradores puede escribir en esa carpeta incluso la carpeta /home/samba tiene como root de usuario y administradores de grupo he probado todas las opciones de los ejemplo y tiene de chmod 777 ese folder pero el log me dice esto

[2008/02/10 23:38:01, 2] smbd/open.c:open_directory(1578)
open_directory: failing create on read-only share
[2008/02/10 23:38:01, 2] smbd/open.c:open_directory(1578)
open_directory: failing create on read-only share

cuando le pongo la opcion read only = no

deja escribir a todo el mundo
pero observo algo que me dice algo de un usuario llamado nobody y no entiendo porque


[2008/02/10 23:40:42, 2] lib/access.c:check_access(324)
Allowed connection from (192.168.1.12)
[2008/02/10 23:40:42, 2] auth/auth.c:check_ntlm_password(312)
check_ntlm_password: Authentication for user [nobody] -> [nobody] FAILED with error NT_STATUS_WRONG_PASSWORD
[2008/02/10 23:40:42, 2] auth/auth.c:check_ntlm_password(312)
check_ntlm_password: Authentication for user [administrador] -> [administrador] FAILED with error NT_STATUS_WRONG_PASSWORD
[2008/02/10 23:40:42, 2] smbd/open.c:open_file(245)
nobody opened file Nuevo Maletín/Base de datos de Maletín read=Yes write=Yes (numopen=1)
[2008/02/10 23:41:02, 2] smbd/close.c:close_normal_file(270)
nobody closed file Nuevo Maletín/Base de datos de Maletín (numopen=0)

si quito al grupo administrador no me deja entrar al recurso compartido asi que asumo que entro como administrador y no como nobody alguien sabe porque pasa eso sera que ese detalle de nobody me provoca el error. y alguien sabe que puedo hacer para que funcione perfectamente este ejemplo. realmente esta complicado y la documentacion no aclaran eso. gracias.
otra cosa ahora cada vez que creo algo un archivo o carpeta en el recurso compartido tengo que dar refresh ya que no me muestra el cambio hasta que toque refresh (F5) puedo crear 20 archivos y ninguno aparece hasta tocar F5 eso es algo con samba antes estaba bien pero tantos cambios que he hecho que ahora no se porque sucede ese efecto molesto.

El log es clarísimo. El

Imagen de acl

El log es clarísimo. El password de administrador que metiste esta mal (NT_STATUS_WRONG_PASSWORD) y por eso rechaza la autenticación. En un share con public = yes, implica entrar como nobody y nobody no es administrador y ergo no tienes escritura. El ejemplo funcionaría si hubiera sido exitosa la autenticación.

Cambia el password de administrador con smpasswd -a administrador a cualquier otra cosa y vuelve a intentar. Verifica que smb.conf este usando el archivo smbpasswd correcto. Tu problema tiene raíz en que la autenticación de tus usuarios está fallando.
--
haber != a ver
ha != a

¿Por qué tienes activado

Imagen de acl

¿Por qué tienes activado security = share? Según el manual de smb.conf:

[quote]
write list (S)
This is a list of users that are given read-write access to a
service. If the connecting user is in this list then they will be
given write access, no matter what the read only option is set
to. The list can include group names using the @group syntax.

Note that if a user is in both the read list and the write list
then they will be given write access.

By design, this parameter will not work with the security = share
in Samba 3.0.

[/quote]

Usa security = server si tus cuentas están en esa misma máquina.
--
haber != a ver
ha != a

gracias man

Imagen de juandarcy2000

cuando le puse la opcion server funciono perfectamente, ahora ya los parametros valen aunque los tenga en read el grupo administradores puede hacer todo en el equipo. y cambie la clave tambien habia ya que habia puesto de clave administrador 123 y parece que no era admitido por samba. pero ahora con la configuracion que me recomendastes todo funciona excelente.