Fórum Ubuntu Linux - PT
Suporte Técnico => Servidores => Tópico iniciado por: g4p em 27 de Setembro de 2013, 10:03
-
Bom dia,
Estou rodando essa .conf simples no Samba aqui da empresa, porém, quando alguém cria um arquivo dentro do Storage1, por exemplo, não vai com permissão 777. Quando o arquivo tem que ser apagado, toda vez tenho que acessar o servidor e apagar pelo terminal..
Tem alguma coisa errada?
[global]
workgroup = WORKGROUP
netbios name = Storage
server string = %h Server
log file = /var/log/samba/log.%m
log level = 1
max log size = 100
debug level = 2
security = share
domain master = false
[NewBackup]
comment = HD de Backup Novo
path = /srv/hd_storage_rede
available = yes
public = yes
writeable = yes
browsable = yes
force create mode = 0777
force directory mode = 0777
[OldBackup]
comment = HD de Backup Antigo
path = /srv/original_hd_storage_rede/
available = yes
public = yes
writeable = yes
browsable = yes
force create mode = 0777
force directory mode = 0777
[Storage1]
comment = HD Interno 3TB - Trabalho ATUAL
path = /srv/storage1
available = yes
public = yes
writeable = yes
browsable = yes
force create mode = 0777
force directory mode = 0777
-
Digita no terminal chmod 777 -R /srv/storage1
-
Permissão 777 normalmente é má idéia. "security = share" também.
Se vc quer que o arquivo seja apagável, force o uso de um grupo em comum no share ("force group = xxxxx"). Assim basta dar permissão de escrita ao grupo no diretório /srv/storage1, não é necessário dar permissões públicas no diretório, nem qualquer permissão extra nos arquivos dentro dele.
-
drwxrwxrwx 9 nobody users 4096 Sep 27 16:38 storage1
Está assim. O dono do diretório é nobody e o grupo é users.
force user = nobody
force group = users
Dessa forma daria certo?
-
Digita no terminal chmod 777 -R /srv/storage1
Estou sempre executando esse comando, porém preciso corrigir esse problema.
-
Sim, o "force user = nobody" resolveria. A menos que mais tarde vc precise diferenciar os usuários.
Mas imagino que neste momento basta pra vc que funcione, certo?
-
Vou testar aqui hoje e te dou uma resposta.
Valeu, zekkerj!
-
Logs de acesso. Ative, acompanhe, traga aqui pra análise.
-
O problema é que os arquivos de repente perde a permissão e vai para 665, digamos. Mesmo eu setando manualmente chmod -R 777 pasta..
-
Isso não é problema, 665 é "rw-rw-r-x". O grupo mantém a escrita, como esperamos.
Como os bits de execução dos arquivos do Samba são usados pra codificar permissões DOS como "archive", "system" e "hidden", você não deve se basear no valor deles pra nada do lado Unix (até pq você não vai executar no Linux nada que foi criado pra ser usado no Windows).
Se isso estiver sendo um problema mesmo pra você, e vc precisar que um usuário que não acessa com o mesmo usuário/grupo que os outros, pode mudar o "create mask" p/ algo como "666" [o default é 744, que corta escrita e execução do grupo e públicas].
-
Em tempo, lembra que eu disse que "security = share" é má idéia? Eis aí pq. Isso simplesmente não funciona da forma como você espera.
Mude para "security = user" e terá mais controle sobre o funcionamento do samba.
-
Entendi! Eu já tava com essa idéia.
Colocando um security = user, eu tenho que setar no profile da pasta de compartilhamento quais usuário terão acesso, né?
Outra coisa, vou ter que mudar dono/grupo de todos arquivos/pasta também.
Correto?
-
eu tenho que setar no profile da pasta de compartilhamento quais usuário terão acesso, né?
Não necessariamente; se vc não diz quais podem acessar um compartilhamento, todos podem.
Outra coisa, vou ter que mudar dono/grupo de todos arquivos/pasta também.
Também não. A partir do momento em que você faz "force user = fulano", todos os acessos no linux são feitos como se fossem feitos pelo usuário fulano, e não pelo usuário samba que está acessando o compartilhamento.
-
A única coisa que você tem que fazer é criar os usuários, no linux e no samba.
Para criá-los no Linux:
adduser fulano
Para criá-los no Samba:
smbpasswd -a fulano
-
Zekkerj,
Como faço pra mudar a senha de um usuário adicionado no samba?
sudo smbpasswd -a usuario está correto?
-
Eu adicionei um usuário no linux e coloquei ele no grupo users.
adduser usuario
usermod -G users usuario
Adicionei esse usuário no samba:
smbpasswd -a usuario
Essa madrugada vou alterar o smb.conf para o seguinte:
[global]
workgroup = WORKGROUP
netbios name = Storage
server string = %h Server
log file = /var/log/samba/log.%m
log level = 1
max log size = 100
debug level = 2
security = user
domain master = false
[Storage1]
comment = HD Interno 3TB - Trabalho ATUAL
path = /srv/storage1
available = yes
writeable = yes
browsable = yes
force create mode = 0777
force directory mode = 0777
Por fim:
chown -R totalle:users /srv/storage1
chmod -R 770 /srv/storage1
Será que dessa forma vai resolver o meu problema?
-
"smbpasswd -a usuario" cria o usuário ("add user to samba").
pra trocar a senha do usuário, use apenas "smbpasswd usuario".
Ou, o próprio usuário pode trocar sua senha com o comando "smbpasswd" [sem passar o usuário, troca a própria senha].
Pode ser trocado a partir do próprio windows , mas acho que pra isso vc precisa configurar seu samba como PDC.
-
UUID=7EB8A22AB8A1E0BF /srv/hd_storage_rede/ ntfs uid=1000,gid=users
UUID=a8f2ec76-95ef-44a5-8c45-15297604a89d /srv/storage1/ xfs rw,users,auto,noatime,allocsize=512m,logbufs=8 0 0
Meus problemas de permissão, que citei em outros tópicos, talvez possa está aqui.
Alguém poderia me detalhar essas opções em negrito? no meu fstab?
-
https://wiki.archlinux.org/index.php/fstab
http://en.wikipedia.org/wiki/Fstab
-
Se é sobre a mesma coisa, faz mas sentido ficar junto, até porque duplicar é contra as regras. Grato.
-
UUID=7EB8A22AB8A1E0BF /srv/hd_storage_rede/ ntfs uid=1000,gid=users
UUID=a8f2ec76-95ef-44a5-8c45-15297604a89d /srv/storage1/ xfs rw,users,auto,noatime,allocsize=512m,logbufs=8 0 0
Meus problemas de permissão, que citei em outros tópicos, talvez possa está aqui.
Alguém poderia me detalhar essas opções em negrito? no meu fstab?
A primeira linha do fstab está incorreta; toda linha desse arquivo precisa terminar com dois números separados por espaços, para ser aceita.
as opções em destaque, eu não conheço todas de cabeça:
uid=xxxx - usado em sistemas de arquivos estrangeiros, que não gravam informação de propriedade dos arquivos que possa ser associada a um usuário Linux. O número indica qual o usuário que vai se tornar dono de todos os arquivos no sistema de arquivos. Se não usado, os arquivos pertencerão ao root.
gid=xxxx - idem ao uid, indica o grupo que é dono dos arquivos no sistema de arquivos estrangeirol.
rw - indica que o sistema de arquivos deve ser montado em modo de leitura/escrita. Não precisa ser indicado pois é default.
users - indica que um usuário diferente do que montou o sistema pode desmontá-lo.
auto - indica que o sistema de arquivos deve ser montado automaticamente no boot.
noatime - indica que o sistema não deve gravar a hora de acesso dos arquivos. Serve pra acelerar o acesso e, em alguns casos, aumentar a vida útil da mídia. Não deve ser usado em sistemas de arquivos estrangeiros, nem em massas de dados que possam precisar ser auditadas.
-
@Zekkerj,
Se eu mudar o uid e gid nessa linha do fstab, no momento que o sistema estiver sendo inicializado pode demorar? Por ele está dando, digamos, um chown -R uid:gid /srv/hd_storage_rede/ ?
-
Não, ele não dá um "chown -R", ele assume que todo o sistema de arquivos pertence a esse fulano, pq é um sistema externo (ntfs ou vfat) que não tem essa informação como um sistema nativo teria (ext2/3/4, reiserfs, xfs). Então não há alteração no sistema, é só uma informação que o Linux vai usar na hora de conceder ou negar acesso.
-
Cara, obrigado pela paciência que estás tendo em me explicar/detalhar.
Me diz uma coisa. Eu criei um usuário no SO e no Samba, porém eu quero que ele se autentique apenas no Samba, não quero que se autentique no SSH/FTP, etc. APENAS no Samba. É possível? Como faria?
Pensei em /bin/false, mas ele não se autentica no shell, porém se autentica em outros serviços.
Valeu.
-
Você pode dar uma senha para o usuário no Samba, ativando o usuário, e desativá-lo no Linux com o comando "chage".
-
Tava pesquisando aqui e vi que o passwd -l usuario tranca a conta.
Esse trancar é o mesmo que inativar a conta?
Outra coisa, se eu trancar esse usuário, ele é trancado no samba também?
A minha idéia é deixar o usuário apenas para se autenticar no samba, como eu disse..
-
man passwd
(...)
-l, --lock
Lock the password of the named account. This option disables a password by changing it to a value which matches no possible encrypted value (it adds a ´!´ at the beginning of the password).
Note that this does not disable the account. The user may still be able to login using another authentication token (e.g. an SSH key). To disable the account, administrators should use usermod --expiredate 1 (this set the account's expire date to Jan 2, 1970).
Users with a locked password are not allowed to change their password.
(...)
-
Parar desativar um usuário no samba, vc usa "smbpasswd -d", que tem registro de usuário separado do sistema.