examples/file_server.rb in ruby_smb-3.1.1 vs examples/file_server.rb in ruby_smb-3.1.2
- old
+ new
@@ -8,10 +8,11 @@
# we just need *a* default encoding to handle the strings from the NTLM messages
Encoding.default_internal = 'UTF-8' if Encoding.default_internal.nil?
options = {
allow_anonymous: true,
+ allow_guests: false,
domain: nil,
username: 'RubySMB',
password: 'password',
share_name: 'home',
share_path: '.',
@@ -37,10 +38,13 @@
options[:smbv2] = smbv2
end
opts.on("--[no-]smbv3", "Enable or disable SMBv3 (default: #{options[:smbv3] ? 'Enabled' : 'Disabled'})") do |smbv3|
options[:smbv3] = smbv3
end
+ opts.on("--[no-]guests", "Allow guest accounts (default: #{options[:allow_guests]})") do |allow_guests|
+ options[:allow_guests] = allow_guests
+ end
opts.on("--username USERNAME", "The account's username (default: #{options[:username]})") do |username|
if username.include?('\\')
options[:domain], options[:username] = username.split('\\', 2)
else
options[:username] = username
@@ -49,10 +53,13 @@
opts.on("--password PASSWORD", "The account's password (default: #{options[:password]})") do |password|
options[:password] = password
end
end.parse!
-ntlm_provider = RubySMB::Gss::Provider::NTLM.new(allow_anonymous: options[:allow_anonymous])
+ntlm_provider = RubySMB::Gss::Provider::NTLM.new(
+ allow_anonymous: options[:allow_anonymous],
+ allow_guests: options[:allow_guests]
+)
ntlm_provider.put_account(options[:username], options[:password], domain: options[:domain]) # password can also be an NTLM hash
server = RubySMB::Server.new(
gss_provider: ntlm_provider,
logger: :stdout