Sha256: 662a67606c6a586614a79aa36df914bd610f005ebc47803747f4dca726cc9ed3
Contents?: true
Size: 1.5 KB
Versions: 5
Compression:
Stored size: 1.5 KB
Contents
#!/usr/bin/env ruby require 'active_samba_ldap' require 'active_samba_ldap/command' include ActiveSambaLdap::GetTextSupport argv, opts, options = ActiveSambaLdap::Command.parse_options do |opts, options| options.gid = nil options.group_type = "domain" options.print_gid_number = false opts.banner += " GROUP_NAME" opts.on("-g", "--gid=GID", Integer, _("GID number")) {|options.gid|} opts.on("-t", "--type=TYPE", _("group type"), "(#{options.group_type})") {|options.group_type|} opts.on("-p", "--[no-]print-gid-number", _("print the gid number to stdout"), "(#{options.print_gid_number})") {|options.print_gid_number|} end name = nil if argv.size == 1 name = argv.first else $stderr.puts opts exit 1 end unless Process.uid.zero? $stderr.puts(_("need root authority.")) exit 1 end ActiveSambaLdap::Base.setup_connection("update") class Group < ActiveSambaLdap::Group ldap_mapping end class UnixIdPool < ActiveSambaLdap::UnixIdPool ldap_mapping end if Group.exists?(name) $stderr.puts(_("group already exists: %s") % name) exit 1 end create_options = { :cn => name, :gid_number => options.gid, :pool_class => UnixIdPool, :group_type => options.group_type, } group = Group.create(create_options) unless group.errors.empty? group.errors.each_full do |message| $stderr.puts(message) end exit 1 end if options.print_gid_number puts group.gid_number end ActiveSambaLdap::Base.restart_nscd ActiveSambaLdap::Base.clear_active_connections!
Version data entries
5 entries across 5 versions & 2 rubygems