Como posso configurar o Samba para compartilhar (ler / escrever) qualquer pasta com permissões de root?

6

Eu tenho um convidado do VirtualBox do CentOS 5 em um host Win7x64. Eu estou tentando configurar um compartilhamento de leitura / gravação em um diretório de propriedade de root com meu host do Windows usando o Samba, mas não estou tendo sorte depois de correr em círculos. Para simplificar, desativei meu Firewall ( /etc/init.d/iptables stop ). Como a segurança e as permissões são irrelevantes para esse propósito, eu prefiro não ter que configurar outro usuário / grupo / senha.

Aqui está a saída de testparm

Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[Guest Share]"
Loaded services file OK.
Server role: ROLE_STANDALONE

e a origem de /etc/samba/smb.conf :

[global]
        workgroup = WRKGRP
        netbios name = SMBSERVER
        security = SHARE
        load printers = No

[Guest Share]
        comment = Guest access share
        path = /root/src
        read only = No
        guest ok = Yes

A execução de /etc/init.d/smb restart mostra um status OK. No entanto, no meu host do Windows, só consigo ver a pasta de compartilhamento no guest \IPv4 , mas não posso entrar em "Guest Share":

Amensagemdeerro"O nome da rede não pode ser encontrado" é um comum erro , com uma causa provável:

The user you are trying to access the share with does not have sufficient permissions to access the path for the share. Both read (r) and access (x) should be possible.

Estou tentando usar o root como um convidado Samba sem senha? Eu gostaria, é possível? Como posso configurar o Samba para compartilhar (ler / escrever) qualquer pasta com permissões de root?

    
por Mike T 10.10.2011 / 13:07

5 respostas

4

Eu posso fazer isso. Para comparação, aqui está uma entrada de um dos meus compartilhamentos:

[Music] ; user="jlacroix"
force user = jlacroix
path = /home/jlacroix/Music
writable = no
public = yes

Lembre-se de substituir "jlacroix" pelo nome de usuário que você usa. Ele deve forçá-lo a usar esse usuário apesar do usuário estar realmente usando o arquivo. Então você pode precisar mudar "jlacroix" para root. No entanto, eu não aconselho compartilhar dessa forma, porque você deve ter cuidado com o que pode acessar os arquivos permissivos da raiz.

    
por 28.06.2012 / 21:06
0

Você pode conseguir isso com duas etapas ( pela sua configuração atual) :

  1. Edite seu arquivo de configuração do Samba:

    vi /etc/samba/smb.conf

  2. Altere o seguinte:

    [Guest Share]
       comment = Guest access share
       path = /root/src
       browsable = yes
       writable = yes
       read only = no
       public = yes
       create mask = 0644
       directory mask = 0755
    

Nota:

Você não mencionou a versão do Samba que está usando, mas para explicar:

writeable = yes é um alias para read only = no usado no Samba 3.

Esse alias foi removido no Samba 4.

Leitura relacionada para este assunto:

O principal arquivo de configuração do Samba com exemplos

Páginas de manual do Samba de www.samba.org

    
por 28.06.2012 / 22:08
0

Parece bastante simples.

Basta alterar as permissões da sua pasta para refletir os requisitos de leitura / gravação. No seu caso, uma vez que a pasta será de propriedade de root, você precisa dar aos "outros" a permissão de rw.

Chmod 776 Convidado Compartilhar

Isso dá root full rwx e todo mundo rw.

Uma abordagem melhor seria criar um grupo para usuários da rede e alterar o grupo no seu compartilhamento de raiz para o que você acabou de criar.

Uma observação final: acho que você pode precisar das permissões de execução definidas em qualquer pasta que você queira percorrer. Você pode ter permissões rw definidas dentro da própria pasta, mas, para entrar na permissão de execução, talvez seja necessário configurá-la. Experimente também isso.

    
por 23.07.2013 / 19:43
0

Você verificou o SELinux?

Se a saída de getenforce não for permissiva ou desativada, você deverá aplicar os contextos ao seu compartilhamento. Há também um booleano que você pode definir para contornar isso, eu encontrei essa pergunta tentando Google o que era era.

Você pode depurar para confirmar se é o SELinux usando o comando: setenforce 0

    
por 18.05.2014 / 22:09
0

1. faça conta de convidado como ninguém

guest account = nobody

2. não faça ninguém como usuário admin do samba

admin users = nobody

3. talvez o smbd precise ser executado como root

veja também

man 5 smb.conf link

    
por 29.03.2016 / 13:01

Tags