Ошибка при использовании usseradd из кода Perl: невозможно заблокировать / etc / passwd - PullRequest
0 голосов
/ 28 декабря 2018

Я пишу Perl-программу для администрирования пользователей и постоянно получаю эту ошибку: useradd: В доступе отказано.useradd: не может заблокировать / etc / passwd;Попробуйте позже.Я запускаю программу с помощью команды su -c, приведенный ниже код является соответствующим фрагментом - полный код на https://github.com/Kajkacz/ASU_Indexing/blob/master/Users.pl.

sub createUserPage{

    $Mw->destroy;
    $Mw = MainWindow->new;
    $Mw->geometry("500x300");
    $Mw->title("Create User");
    my $uid = &getFreeUID;
    my $uspasswd = &randomizePassword;
    my $usname = 'UsernameHere';

    my $username = $Mw->Entry(-textvariable=> \$usname )->grid($Mw->Label(-text => 'Username'));
    my $UID = $Mw->Entry(-textvariable=> \$uid )->grid($Mw->Label(-text => 'UID'));
    my $password = $Mw ->Entry(-textvariable=> \$uspasswd)->grid($Mw->Label(-text => 'Password'));

    $Mw->Button(-text=>"Create User", -command =>sub{&createUser($uid,$usname,$uspasswd)},-width => $buttonWidth)->grid();
    $Mw->Button(-text=>"Check If UID is free", -command =>sub{&checkUID($uid)},-width => $buttonWidth)->grid();
    $Mw->Button(-text=>"Get Random Password", -command =>sub{$uspasswd = &randomizePassword},-width => $buttonWidth)->grid();

    $Mw->Button(-text=>"Back to Main Menu", -command =>sub{&getStartWindow},-width => $buttonWidth)->grid();}

sub createUser{
     my $UID = shift;
     my $username =     shift;
     my $password = shift;
     my $adduser = '/usr/sbin/useradd';
     my $cmd = qq($adduser \"$username\");
     # my $cmd = qq($adduser \"$username\" -p \"$password\" -u $UID);
     print "$cmd \n";
     system $cmd; }

Я приветствую любую возможную информацию. Кроме того, мой первыйПрограмма Perl, поэтому не стесняйтесь исправлять мой код

1 Ответ

0 голосов
/ 28 декабря 2018

Итак, я нашел исправление с помощью этого решения: Как исправить ошибку 'sudo: tty отсутствует и не указана программа askpass'? и заставить useradd выводить список команд без запроса пароля.Не уверен, что это удачное или удачное решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...