
Quiero alojar una ruta sobre samba que cualquier usuario pueda leer sin contraseña.
En smb.conf en mi PC host:
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
server role = standalone server
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes
[mystuff]
path = /path/to/my/stuff
read only = yes
public = yes
guest ok = yes
guest only = yes
browseable = yes
En alguna otra computadora si yo
smbclient -L //myhostpc/mystuff
dice
Enter WORKGROUP\myusername's password:
Curiosamente, todavía dice esto si escribo mal mystuff
. La PC host se reinició y nmblookup -S WORKGROUP
enumera las entradas para MYHOSTPC.
También lo intenté (en ubuntu, con cifs-utils instalado)
sudo mount -t cifs //myhostpc/mystuff /tmp/mystuff
pero consigue
Password for root@//myhostpc/mystuff
y si lo intento
sudo mount -t cifs //myhostpc/mystuff -o username=guest,password="" /tmp/mystuff
(como vi en alguna parte), entiendo
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page)
Noto en /var/log/samba/log.
:
[2022/02/12 14:57:23.569070, 0] ../../source3 /smbd/service.c:166(chdir_current_service)
chdir_current_service: vfs_ChDir(/path/to/my/stuff) failed: Permission denied. Current token: uid=65534, gid=65534, 1 groups: 65534
¿Qué necesito hacer [mystuff]
visible en otros ordenadores, para cualquier usuario, sin pedir contraseña?
Respuesta1
La documentación smbclient
menciona esta situación específica:
password
[...] No existe una contraseña predeterminada. Si no se proporciona ninguna contraseña en la línea de comando (ya sea usando este parámetro o agregando una contraseña a la-U
opción (ver más abajo)) y-N
no se especifica la opción, el cliente solicitará una contraseña, incluso si el servicio deseado no requiere uno. (Si no se requiere contraseña, simplemente presione ENTRAR para proporcionar una contraseña nula).
y luego, haciendo referencia a -N
lo que este menciona:
-N
|--no-pass
Si se especifica, este parámetro suprime la solicitud de contraseña normal del cliente al usuario. Esto es útil cuando se accede a un servicio que no requiere contraseña.
¿La solución en tu caso?
smbclient -NL //myhostpc/mystuff
El mismo efecto está disponible para mount
. Aquí de man mount.cifs
(buscando referencias a password
):
password=arg
|pass=arg
especifica la contraseña CIFS. Si no se proporciona esta opción,PASSWD
se utiliza la variable de entorno. Si la contraseña no se especifica directa o indirectamente mediante un argumento para montar,mount.cifs
solicitará una contraseña, a menos queguest
se especifique la opción.
lo que nos lleva a la guest
opción:
guest
no solicitar una contraseña
¿La solución para ti aquí?
sudo mount -t cifs -o guest //myhostpc/mystuff /tmp/mystuff