O Ubuntu Server Samba Permissions best practice

0

Estou tendo alguns problemas para acessar meu Ubuntu Server 14.04 sobre o Samba. Eu estou tentando acessar do meu desktop Ubuntu Gnome 14.04 e outros desktops Linux. Eu gostaria de ter controle de acesso bem no servidor onde alguns usuários podem ler e gravar em compartilhamentos e outros usuários só podem ler, mas não gravar / excluir arquivos. Não tenho certeza se estou fazendo o caminho certo, mas percebo que geralmente há muitas maneiras de fazer algo no Linux. Eu criei as pastas através da linha de comando e estou usando o Samba através do Webmin para compartilhá-las.

Acredito que a ACL no nível do arquivo é o meu problema atual. Por exemplo, eu tenho duas pastas no servidor que eu posso ler e escrever e uma que não consigo escrever, mas que consigo ler.

O Getfacl lista as suas propriedades da seguinte forma:

john@Server:~$ getfacl /exports/Stuff

getfacl: Removing leading '/' from absolute path names

file: exports/Stuff

owner: root

group: root

user::rwx

group::r-x

other::r-x

default:user::rwx

default:user:john:rw-

default:user:wife:rw-

default:user:daughter:rw-

default:group::r-x

default:group:users:r--

default:mask::rwx

default:other::r-x

john@Server:~$ getfacl /exports/Photos

getfacl: Removing leading '/' from absolute path names

file: exports/Photos

owner: john

group: root

user::rwx

group::r-x

other::r-x

default:user::rwx

default:user:john:rw-

default:user:wife:rw-

default:group::r-x

default:group:users:r--

default:mask::rwx

default:other::r-x

Agora vejo que sou o proprietário de Photos e root é o proprietário da pasta Stuff que parece ser a maior diferença entre eles.

Outro usuário na rede que também usa o Ubuntu Gnome pode acessar a pasta Fotos, mas não pode escrever, esse é o comportamento que eu queria e imagino que o Samba esteja controlando isso, pois ela não está listada na ACL, mas está listada na segurança do Samba. / p>

A melhor abordagem seria excluir o sistema de arquivos acls com o setfacl e depois usar o samba para controlar o acesso do usuário ou eu deveria configurá-lo para ambos?

Eu estou indo sobre isso no caminho certo? Qual é a melhor prática para lidar com algo assim? Todos os clientes estão no Linux, então se você tivesse compartilhamentos que alguns visualizariam e nunca gravariam, enquanto outros liam e escreviam, como você controlaria o acesso?

    
por user255190 05.11.2014 / 23:45

1 resposta

0

O Webmin está desatualizado e tem problemas de segurança e não deve ser usado.

Eu tive o mesmo problema em 14.04. Muitas pessoas responderam à minha pergunta e disseram que o Samba não estava tão ferrado nas versões anteriores do Ubuntu. Mas esta é uma função e um alias que eu adiciono ao meu $ HOME / .bashrc.

####################
# $1 is parameter for function
function fAdduser
{
if [ -z $1 ]; then
    echo "ERROR: No user given.";
    echo "Usage: cradduser USER";
    echo "Sets permissions and groups for home dir of user.";
    echo "Also sets up samba for user.";
    echo " ";
    return;
fi

# Add new user $1 and add to group 'users'.
# -m = make home dir
# -G GROUP = assign to group
sudo useradd -m -G users $1 || { echo "Error in useradd"; return 1; };
sudo usermod -p $1 $1;
echo "fAdduser: Their password is now the same as their username."
sudo passwd -u $1;
echo "fAdduser: Now enter their password.";
sudo passwd $1; 

# Now add to samba users. This linux user uses this password for Samba.
# The user is the same, the Samba password is not. 
# -a = add user
# -e = enable user
sudo smbpasswd -ae $1;

# Now change permissions for Samba on their home dir.
TDIR=/home/$1;
echo "Changing permissions and group on $TDIR files for Samba...";
sudo chmod a+rw $TDIR;
sudo chmod -R a+rw $TDIR/*;
sudo chgrp users $TDIR;
sudo chgrp -R users $TDIR/*;
echo "These are the users in group 'users'";
getent group users;
echo "Added user $1";
}


alias myadduser='fAdduser'
alias mysambareset='sudo restart smbd; sudo restart nmbd; sudo service smbd restart'

Edite e salve seu .bashrc e faça isso: source $HOME/.bashrc para ativar as alterações. A função fAdduser adiciona um novo usuário e os configura para o Samba. Revise os passos aqui e veja se você fez todos eles.

Para configurar um usuário do Samba, faça isso: myadduser USERNAME .

Se você alterar o arquivo de configuração do Samba, salve-o e faça o seguinte: mysambareset .

Depois de muitos conselhos conflitantes e muitas tentativas e erros, isso é o que funciona para mim.

    
por Bulrush 06.11.2014 / 20:20