#!/usr/bin/perl use lib qw(/usr/lib/libDrakX); use common qw(:common :functional :system :file); use interactive; use any; local $_ = join '', @ARGV; /-h/ and die "usage: adduserdrake [--beginner] [--expert] []\n"; $::beginner = /-beginner/; $::expert = /-expert/; $::isStandalone = 1; my @etc_pass_fields = qw(name pw uid gid realname home shell); my @shells = grep { -x $_ } map { "/bin/$_" } qw(bash tcsh zsh ash ksh); my $isMD5 = cat_("/etc/pam.d/passwd") =~ /md5/; my $isShadow = cat_("/etc/pam.d/passwd") =~ /shadow/; my $security = $ENV{SECURE_LEVEL}; if (my @l = grep { ! /^-/ } @ARGV) { addusers(map {{ name => $_, realname => $_ }} @l); exit 0; } my $in = interactive->vnew('su'); my @users; new: $u = { icon => translate('automagic') }; if ($in->ask_from_entries_refH( [ _("Add user"), _("Accept user"), _("Done") ], _("Enter a user\n%s", $users ? _("(already added %s)", join(", ", map { $_->{realname} || $_->{name} } @users)) : ''), [ _("Real name") => \$u->{realname}, _("User name") => \$u->{name}, $security < 2 ? () : ( _("Password") => {val => \$u->{password}, hidden => 1}, _("Password (again)") => {val => \$u->{password2}, hidden => 1}, ), $::beginner ? () : ( _("Shell") => {val => \$u->{shell}, list => \@shells, not_edit => !$::expert} ), $security > 3 ? () : ( _("Icon") => {val => \$u->{icon}, list => [ any::facesnames() ], icon2f => \&any::face2xpm }, ), ], focus_out => sub { if ($_[0] eq 0) { $u->{name} ||= lc first($u->{realname} =~ /((\w|-)+)/); } }, complete => sub { $u->{password} eq $u->{password2} or $in->ask_warn('', [ _("The passwords do not match"), _("Please try again") ]), return (1,3); $security > 3 && length($u->{password}) < 6 and $in->ask_warn('', _("This password is too simple")), return (1,2); $u->{name} or $in->ask_warn('', _("Please give a user name")), return (1,0); $u->{name} =~ /^[a-z0-9_-]+$/ or $in->ask_warn('', _("The user name must contain only lower cased letters, numbers, `-' and `_'")), return (1,0); member($u->{name}, map { $_->{name} } @users) and $in->ask_warn('', _("This user name is already added")), return (1,0); return 0; }, )) { push @users, $u; goto new; } addusers(@users); sub addusers { my @u = map { $_->{name} } my @users = @_; foreach (@users) { $_->{pw} = any::crypt($_->{password}, $isMD5); $_->{shell} ||= "/bin/bash"; } system("adduser $_") foreach @u; any::addUsers('', @_); substInFile { foreach my $u (@users) { if (/^$u->{name}:/) { chomp; my %l; @l{@etc_pass_fields} = split ':'; add2hash($u, \%l); $_ = join(':', @$u{@etc_pass_fields}) . "\n"; } } } "/etc/passwd"; system("pwconv") if $isShadow; } $in->exit(0); o?h=topic/newgui&id=b3a7e8c26c9c35539849d9cb71ac6ea2e07ba0c9'>po/uk.po
diff options
context:
space:
mode:
authorPapoteur <papoteur@mageialinux-online.org>2015-03-08 09:26:18 +0100
committerPapoteur <papoteur@mageialinux-online.org>2015-03-08 09:26:18 +0100
commitb3a7e8c26c9c35539849d9cb71ac6ea2e07ba0c9 (patch)
tree4c3cea0a42a676ce440b0b175f67cee2e9549ae8 /po/uk.po
parent5e9f15ab850a406663634ba899d9abf1d144db66 (diff)
downloadisodumper-b3a7e8c26c9c35539849d9cb71ac6ea2e07ba0c9.tar
isodumper-b3a7e8c26c9c35539849d9cb71ac6ea2e07ba0c9.tar.gz
isodumper-b3a7e8c26c9c35539849d9cb71ac6ea2e07ba0c9.tar.bz2
isodumper-b3a7e8c26c9c35539849d9cb71ac6ea2e07ba0c9.tar.xz
isodumper-b3a7e8c26c9c35539849d9cb71ac6ea2e07ba0c9.zip
Update isodumper.glade to suppress warning about vbox