Ubuntu Desktop 24.04LTS. Esta é a minha primeira vez postando no fórum, por favor me diga se eu errei alguma coisa :D
estou começando com o linux em geral, e consegui configurar um compartilhamento samba na minha LAN. Posso logar na conta root ("root") do meu telefone, e funciona perfeitamente. No entanto, quando criei outro usuário chamado gost (guest, id 1001), consegui acessar a pasta root e ver todas as suas subpastas, mas quando tentei entrar em /home, apareceu uma mensagem de acesso negado. Provavelmente um problema smb.conf
anexos: /etc/samba/smb.conf ; testparm output ; systemctl status smbd (log na parte inferior do status)
[global]
workgroup = UserProductions
netbios name = netBiosName
guest ok = no
browseable = yes
read only = no
writeable = yes
public = yes
valid users = root gost
write list = root
read list = gost
[root]
path = /
[HDD]
path = /home/user/Desktop/HDD
[SSD]
path = /home/user/Desktop/SSD
Load smb config files from smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)
Server role: ROLE_STANDALONE
● smbd.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smbd.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-01-27 14:00:45 CET; 1min 3s ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Process: 19351 ExecCondition=/usr/share/samba/is-configured smb (code=exited, status=0/SUCCESS)
Main PID: 19354 (smbd)
Status: "smbd: ready to serve connections..."
*** info cut out for privacy ***
Jan 27 14:01:46 ********** smbd[19410]: [2025/01/27 14:01:46.314913, 0] source3/smbd/smb2_service.c:117(chdir_current_service)
Jan 27 14:01:46 ********** smbd[19410]: chdir_current_service: vfs_ChDir(/home/user/Desktop/HDD) failed: Permission denied. Current token: uid=1001, gid=1001, 2 groups: 1001 100
SOLUÇÃO: este é um problema com permissões de arquivo em geral, não com o samba. Aqui está um
chmod
tutorial rápido para ajudar você a abrir pastas para outros usuários.https://help.ubuntu.com/community/FilePermissions para mais informações.
primeiro, execute
namei -mo /full/path/to/shared/files
(substitua /full/path/... por, por exemplo, uma imagem em uma pasta que você está tentando acessar)você deve obter uma saída parecida com esta: (retirado de howtoforge .com)
olhe para as letras à esquerda e ignore cada "d". Se todos tivessem acesso completo a uma pasta, a saída seria "rwxrwxrwx". as três primeiras letras especificam as permissões para o dono do arquivo, as próximas 3 são para o grupo e as últimas 3 são para os outros.
rwx|rwx|rwx
os r's são permissões de leitura, w's são permissões de escrita, x's são permissões de execução. ( NOTA: para dar permissão de leitura a uma pasta, precisamos dar permissão de execução para abri-la. A leitura por si só não funcionará).
se as últimas 3 letras de uma pasta não tiverem r e x, outras pessoas não poderão entrar na pasta e, portanto, não poderão acessá-la pelo compartilhamento samba.
OBSERVAÇÃO: Enquanto escrevia isso, descobri que esse método de dar acesso é primitivo. Ele funcionará, mas dará a TODOS que puderem se conectar ao seu samba / que tenham um usuário no seu computador acesso para ler essa pasta. Isso pode expor informações privadas. Tudo até este ponto é válido.
USE ACLs EM VEZ DISSO!!! elas darão permissões somente ao usuário especificado.
Exemplo de ACL:
setfacl -m u:guestuser:rx /home/
para adicionar essas permissões, usaremos
chmod {options} filename
. as opções têm 3 partes: o(s) usuário(s), a ação e a(s) permissão(ões)o(s) usuário(s) pode(m) ser "u" para proprietário, "g" para grupo, "o" para outros e "a" para todos. As ações são "+" para adicionar, "-" para remover e "=" para definir. as permissões ainda são r,w,x.
se você quiser abrir toda a página inicial e suas subpastas, use
chmod o+rx -R /home/
não recomendado, em vez disso, ajuste as permissões para cada pasta manualmente como:vote positivamente se isso te ajudou e tenha um ótimo dia!