¿Hay alguna forma de ocultar todas las subcarpetas en el patrón de coincidencia de recursos compartidos para uno (o todos menos uno) usuario?
Me gustaría tener un subdirectorio (llamémoslo _private_data
) que debería ser visible para , user1
pero no para user2
. Pero no puedo saber dónde estará este directorio de antemano. Puede ser que user1
cree un directorio ShareThis/LookHere
y luego cree el directorio ShareThis/LookHere/_private_data
. 'usuario2' también tiene permiso para leer ShareThis/LookHere
todos los subdirectorios, pero no debería poder ver el _private_data
subdirectorio.
¿Es de alguna manera posible hacer eso? Ya encontré las hide files
opciones veto files
y dont descend
. Que se ven bastante similares a lo que quiero, pero no tengo idea de cómo asignarlos solo a algunos usuarios y cómo hacer que coincidan en cualquier subdirectorio del recurso compartido.
Respuesta1
Finalmente encontré una solución. Funciona incluyendo un archivo basado en el nombre de usuario. Tienes que crear (o vincular simbólicamente) un archivo para cada usuario al que quieras permitirle navegar en el directorio _priv, pero eso está bien para mí.
El siguiente es un ejemplo de un recurso compartido llamado "Imágenes".
smb.conf:
[Images]
comment = Shared Images
path = /path/to/images
write list = user1, user2
valid users = user1, user2
# make sure the _priv directory cannot be accessed
hide files = /_priv/
veto files = /_priv/
# The following line allows to revert hide and veto options so that
# specific users are allowed to view private directories
include = /etc/samba/allowprivate.conf.%U
y luego, para cada usuario que debería poder acceder a los directorios, cree un enableprivate.conf. (por ejemplo, enableprivate.conf.user1) con el siguiente contenido:
# This reverts the settings from smb.conf, so that this user
# can access all files
hide files =
veto files =
Incluso funciona en subdirectorios, por lo que los usuarios "privilegiados" pueden simplemente crear un _priv
directorio y los usuarios sin privilegios no podrán acceder a ese directorio.
Respuesta2
Supongo que, como el directorio debería estar oculto, tampoco debería ser legible para los demás usuarios. Es posible que desees consultar el parámetro hide unreadable
que esencialmente oculta archivos y directorios que el usuario no puede leer. Puede configurar esto por acción.
Respuesta3
Aquí está mi solución:
- crear usuarios y grupos
- Permita que solo
user1
los usuarios deladmin
grupo puedan ver esta carpeta.
[Images]
...
hide unreadable = yes
force user = %U
force group = +smbadmin
# /path/to/images
chmod 770 _priv
chown user1:admin _priv