File: lcmaps_make_poolacc_dir

package info (click to toggle)
lcmaps 1.6.6-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,016 kB
  • ctags: 1,428
  • sloc: sh: 11,191; ansic: 9,519; makefile: 530; lex: 184; perl: 92; yacc: 60
file content (89 lines) | stat: -rw-r--r-- 2,616 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#! /usr/bin/perl
#
# Copyright (c) Members of the EGEE Collaboration. 2004-2010. 
# See http://www.eu-egee.org/partners/ for details on the copyright
# holders.  
# 
# Licensed under the Apache License, Version 2.0 (the "License"); 
# you may not use this file except in compliance with the License. 
# You may obtain a copy of the License at 
# 
#     http://www.apache.org/licenses/LICENSE-2.0 
# 
# Unless required by applicable law or agreed to in writing, software 
# distributed under the License is distributed on an "AS IS" BASIS, 
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
# See the License for the specific language governing permissions and 
# limitations under the License.
# 
# 
#  Authors:
#  2009-
#     Oscar Koeroo <okoeroo@nikhef.nl>
#     Mischa Sall\'e <msalle@nikhef.nl>
#     David Groep <davidg@nikhef.nl>
#     NIKHEF Amsterdam, the Netherlands
#     <grid-mw-security@nikhef.nl> 
# 
#  2007-2009
#     Oscar Koeroo <okoeroo@nikhef.nl>
#     David Groep <davidg@nikhef.nl>
#     NIKHEF Amsterdam, the Netherlands
# 
#  2003-2007
#     Martijn Steenbakkers <martijn@nikhef.nl>
#     Gerben Venekamp <venekamp@nikhef.nl>
#     Oscar Koeroo <okoeroo@nikhef.nl>
#     David Groep <davidg@nikhef.nl>
#     NIKHEF Amsterdam, the Netherlands

#ldapsearch -H ldap://tbn06.nikhef.nl/ \
#	-b "ou=poolaccounts,dc=farmnet,dc=nikhef,dc=nl" -LLL -x \
#	description | \
#	awk -F: '/export/ {print "mkdir $NF" }' | \
#	xargs mkdir 

use Net::LDAP qw(:all);                  # for all code
use Net::LDAP::Util qw(ldap_error_name
                       ldap_error_text); # for error handling

use Getopt::Long;

@optdef=qw( v:i );

$0 =~ s/.*\///;
$Getopt::Long::ignorecase=0;
&GetOptions(@optdef);

$ldap = Net::LDAP->new( "tbn06.nikhef.nl", port=>389, timeout=>20 );
$ldap or
        die "Cannot contact remote tbn06: $!\n".
        "  $ldap_error_name $ldap_error_text\n";

$results=$ldap->search(
		base=>"ou=poolaccounts,dc=farmnet,dc=nikhef,dc=nl",
		scope=>"sub",
		filter=>"(objectclass=*)"
		);

my @entries=$results->entries;

foreach $entry ( @entries ) {
  $desc=$entry->get_value("description");
  ($dir=$desc)=~s/.*://;
  $dir=~/\/export\// or next;

  $uid=$entry->get_value("uidNumber");
  $gid=$entry->get_value("gidNumber");


  print "mkdir -p $dir ; mkdir $dir/.ssh ; mkdir $dir/.globus\n";
  print "ssh-keygen -f $dir/.ssh/id_rsa -q -t rsa -N \"\" -C \"autogenerated\" < /dev/null\n";
  print "cat $dir/.ssh/id_rsa.pub > $dir/.ssh/authorized_keys2\n";
  print "chmod 755 $dir\n";
  print "chmod 755 $dir/.ssh\n";
  print "chown -R $uid:$gid $dir\n";
}