All Projects → johnae → sambal

johnae / sambal

Licence: MIT License
Ruby Samba Client

Programming Languages

ruby
36898 projects - #4 most used programming language
HTML
75241 projects
Nix
1067 projects

Projects that are alternatives of or similar to sambal

Vagrant Docker Vm
💻 Development Vagrant VM with Docker, Samba and Mail sandbox (customizable)
Stars: ✭ 97 (+169.44%)
Mutual labels:  samba
fapro
Fake Protocol Server
Stars: ✭ 1,338 (+3616.67%)
Mutual labels:  samba
ucsunivention
⚫ Curso GRÁTIS SAMBA-4 UCS Univention Core Free 5.x Domain Controller Active Directory Open Source
Stars: ✭ 29 (-19.44%)
Mutual labels:  samba
Ldap Passwd Webui
Very simple web interface for changing password stored in LDAP or Active Directory (Samba 4 AD).
Stars: ✭ 150 (+316.67%)
Mutual labels:  samba
samba
Development repository for the samba cookbook
Stars: ✭ 30 (-16.67%)
Mutual labels:  samba
ansible-samba
No description or website provided.
Stars: ✭ 30 (-16.67%)
Mutual labels:  samba
Docker Volume Netshare
Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin
Stars: ✭ 1,000 (+2677.78%)
Mutual labels:  samba
samba-operator
An operator for a Samba as a service on PVCs in kubernetes
Stars: ✭ 24 (-33.33%)
Mutual labels:  samba
samba4-l1
🔴 Curso GRÁTIS SAMBA 4 Level 1 REPOSITÓRIO CONGELADO - Esse repositório não irá mais receber atualizações.
Stars: ✭ 60 (+66.67%)
Mutual labels:  samba
smbaudit
Perform various SMB-related attacks, particularly useful for testing large Active Directory environments.
Stars: ✭ 31 (-13.89%)
Mutual labels:  samba
Teamhelper
A robot software that helps a team leader automatically send notifications to QQ group and Emails for weekly meeting.
Stars: ✭ 201 (+458.33%)
Mutual labels:  samba
Avorix-Domain-Controller
A Raspberry Pi based Active Directory Domain Controller developed for business and education.
Stars: ✭ 28 (-22.22%)
Mutual labels:  samba
samba
samba - (servercontainers/samba) (+ optional zeroconf, wsdd2 & time machine) on alpine [x86 + arm]
Stars: ✭ 90 (+150%)
Mutual labels:  samba
Reconfigure
Config-file-to-Python mapping library (ORM).
Stars: ✭ 136 (+277.78%)
Mutual labels:  samba
speedcopy
Patched python shutil.copyfile to allow faster speeds on samba shares.
Stars: ✭ 13 (-63.89%)
Mutual labels:  samba
Xsrv
[mirror] Install and manage self-hosted services/applications, on your own server(s) - ansible collection and utilities
Stars: ✭ 89 (+147.22%)
Mutual labels:  samba
samba
A Dockerfile to build multi-architecture images of Samba, which is the standard Windows interoperability suite of programs for Linux and Unix. This is my personal docker recipe.
Stars: ✭ 60 (+66.67%)
Mutual labels:  samba
mailad
Software to provision a mail server with users from a Windows or Samba 4 Active Directory
Stars: ✭ 21 (-41.67%)
Mutual labels:  samba
cockpit-samba-manager
A Cockpit plugin to manage Samba shares and users.
Stars: ✭ 28 (-22.22%)
Mutual labels:  samba
dash
Server control panel
Stars: ✭ 22 (-38.89%)
Mutual labels:  samba

Test status

Sambal

Sambal is a ruby samba client

Quite a bit of code was borrowed from https://github.com/reivilo/rsmbclient - Thanks!

Installation

Add this line to your application's Gemfile:

gem 'sambal'

And then execute:

$ bundle

Or install it yourself as:

$ gem install sambal

Requirements

A working installation of samba, specifically the "smbclient" command line utility. See http://www.samba.org for more information. On a mac this can be installed through homebrew https://github.com/mxcl/homebrew, like this:

brew install samba

On Linux (Ubuntu) it's as easy as:

apt-get install smbclient

It should be available in a similar way on all major Linux distributions.

If you happen to be running NixOS or at least the Nix package manager you could just use the flake.nix file in this repo. That should also set you up for running the tests (which require samba). Something like this:

nix develop
bundle install
bundle exec rspec

Usage

client = Sambal::Client.new(domain: 'WORKGROUP', host: '127.0.0.1', share: '', user: 'guest', password: '--no-pass', port: 445)
client.ls # returns hash of files
client.put("local_file.txt","remote_file.txt") # uploads file to server
client.exists?("remote_file.txt") # checks if file is on server
client.put_content("My content here", "remote_file") # uploads content to a file on server
client.get("remote_file.txt", "local_file.txt") # downloads file from server
client.del("remote_file.txt") # deletes files from server
client.exists?("some_directory") # checks if directory is on server
client.cd("some_directory") # changes directory on server
client.close # closes connection

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].