~ubuntu-branches/ubuntu/karmic/system-tools-backends/karmic-proposed

« back to all changes in this revision

Viewing changes to Users/Groups.pm

  • Committer: Bazaar Package Importer
  • Author(s): Emilio Pozuelo Monfort
  • Date: 2009-10-08 11:42:26 UTC
  • mfrom: (1.1.28 upstream) (1.2.4 sid)
  • Revision ID: james.westby@ubuntu.com-20091008114226-zp9fxn7h4ky0qai0
Tags: 2.8.2-1
* New upstream release.
  - debian/patches/01_debian_4.0.patch,
  - debian/patches/04_correct_perl_command.patch:
    + Removed, fixed upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
52
52
 
53
53
  if ($Utils::Backend::tool{"system"} eq "FreeBSD")
54
54
  {
55
 
    $command = "$cmd_pw groupdel -n \'" . $$group[$LOGIN] . "\'";
 
55
    @command = ($cmd_pw, "groupdel", "-n", $$group[$LOGIN]);
56
56
  }
57
57
  else
58
58
  {
59
 
    $command  = ($cmd_delgroup) ? $cmd_delgroup : $cmd_groupdel;
60
 
    $command .= " \'" . $$group[$LOGIN] . "\'";
 
59
    @command  = (($cmd_delgroup) ? $cmd_delgroup : $cmd_groupdel,
 
60
                 $$group[$LOGIN]);
61
61
  }
62
62
 
63
 
  &Utils::File::run ($command);
 
63
  &Utils::File::run (@command);
64
64
}
65
65
 
66
66
# This is only for Linux and SunOS,
68
68
sub add_user_to_group
69
69
{
70
70
  my ($group, $user) = @_;
71
 
  my ($command);
 
71
  my (@command);
72
72
 
73
73
  if ($Utils::Backend::tool{"system"} eq "SunOS")
74
74
  {
84
84
    $groups =~ s/^,//;
85
85
    $groups =~ s/,$//;
86
86
 
87
 
    $command = "$cmd_usermod -G $groups $user";
 
87
    @command = ($cmd_usermod, "-G", $groups, $user);
88
88
  }
89
89
  else
90
90
  {
91
 
    $command = "$cmd_gpasswd -a \'" . $user . "\' " . $group;
 
91
    @command = ($cmd_gpasswd, "-a", $user, $group);
92
92
  }
93
93
 
94
 
  &Utils::File::run ($command);
 
94
  &Utils::File::run (@command);
95
95
}
96
96
 
97
97
# This is only for Linux and SunOS,
99
99
sub delete_user_from_group
100
100
{
101
101
  my ($group, $user) = @_;
102
 
  my ($command);
 
102
  my (@command);
103
103
 
104
104
  if ($Utils::Backend::tool{"system"} eq "SunOS")
105
105
  {
106
 
    my ($groups, @arr);
 
106
    my ($groups, @groups_arr);
107
107
 
108
108
    $groups = &Utils::File::run_backtick ("groups $user");
109
109
    $groups =~ s/.*://;
112
112
    # delete the user
113
113
    $groups =~ s/[ \t]+$group//;
114
114
 
115
 
    @arr = split (/ /, $groups);
116
 
    $groups = join (',', @arr);
117
 
    $groups =~ s/^,//;
118
 
    $groups =~ s/,$//;
 
115
    @groups_arr = split (/ /, $groups);
119
116
    
120
 
    $command = "$cmd_usermod -G $groups $user";
 
117
    @command = ($cmd_usermod, "-G", @groups_arr, $user);
121
118
  }
122
119
  else
123
120
  {
124
 
    $command = "$cmd_gpasswd -d \'" . $user . "\' \'" . $group . "\'";
 
121
    @command = ($cmd_gpasswd, "-d", $user, $group);
125
122
  }
126
123
 
127
 
  &Utils::File::run ($command);
 
124
  &Utils::File::run (@command);
128
125
}
129
126
 
130
127
sub add_group
131
128
{
132
129
  my ($group) = @_;
133
 
  my ($u, $user, $users);
 
130
  my ($u, $user, @users);
134
131
 
135
132
  $u = $$group[$USERS];
136
133
 
137
134
  if ($Utils::Backend::tool{"system"} eq "FreeBSD")
138
135
  {
139
 
    $users = join (",", sort @$u);
 
136
    @users = sort @$u;
140
137
      
141
 
    $command = "$cmd_pw groupadd -n \'" . $$group[$LOGIN] .
142
 
      "\' -g \'" . $$group[$GID] .
143
 
      "\' -M \'" . $users . "\'";
 
138
    @command = ($cmd_pw, "groupadd", "-n", $$group[$LOGIN],
 
139
                                     "-g", $$group[$GID],
 
140
                                     "-M", @users);
144
141
 
145
 
    &Utils::File::run ($command);
 
142
    &Utils::File::run (@command);
146
143
  }
147
144
  else
148
145
  {
149
146
    if ($cmd_addgroup)
150
147
    {
151
 
      $command = "$cmd_addgroup " .
152
 
          "--gid \'" . $$group[$GID] . "\' " . $$group[$LOGIN];
 
148
      @command = ($cmd_addgroup, "--gid", $$group[$GID], $$group[$LOGIN]);
153
149
    }
154
150
    else
155
151
    {
156
 
      $command = "$cmd_groupadd -g \'" . $$group[$GID] .
157
 
          "\' " . $$group[$LOGIN];
 
152
      @command = ($cmd_groupadd, "-g", $$group[$GID], $$group[$LOGIN]);
158
153
    }
159
154
 
160
 
    &Utils::File::run ($command);
 
155
    &Utils::File::run (@command);
161
156
 
162
157
    foreach $user (sort @$u)
163
158
    {
178
173
    $users_arr = $$new_group[$USERS];
179
174
    $str = join (",", sort @$users_arr);
180
175
 
181
 
    $command = "$cmd_pw groupmod -n \'" . $$old_group[$LOGIN] .
182
 
        "\' -g \'" . $$new_group[$GID] .
183
 
        "\' -l \'" . $$new_group[$LOGIN] .
184
 
        "\' -M \'" . $str . "\'";
 
176
    @command = ($cmd_pw, "groupmod", "-n", $$old_group[$LOGIN],
 
177
                                     "-g", $$new_group[$GID],
 
178
                                     "-l", $$new_group[$LOGIN],
 
179
                                     "-M", $str);
185
180
 
186
 
    &Utils::File::run ($command);
 
181
    &Utils::File::run (@command);
187
182
  }
188
183
  else
189
184
  {
190
 
    $command = "$cmd_groupmod -g \'" . $$new_group[$GID] .
191
 
        "\' -n \'" . $$new_group[$LOGIN] . "\' " .
192
 
        "\'" . $$old_group[$LOGIN] . "\'";
 
185
    @command = ($cmd_groupmod, "-g", $$new_group[$GID],
 
186
                               "-n", $$new_group[$LOGIN],
 
187
                                     $$old_group[$LOGIN]);
193
188
  
194
 
    &Utils::File::run ($command);
 
189
    &Utils::File::run (@command);
195
190
 
196
191
    # Let's see if the users that compose the group have changed.
197
192
    if (!Utils::Util::struct_eq ($$new_group[$USERS], $$old_group[$USERS]))