This file is indexed.

/usr/bin/gbrowse_change_passwd is in gbrowse 2.56+dfsg-3build1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

 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
#!/usr/bin/perl 

use strict;

use FindBin '$Bin';
use lib "$Bin/../lib";
use GBrowse::ConfigData;
use Bio::Graphics::Browser2;
use Bio::Graphics::Browser2::UserDB;
use Getopt::Long;

my @ORIGINAL_ARGV = @ARGV;

use constant USAGE => <<END;
Usage: $0 user [pass]

Changes the password for the indicated user.
If no password is provided on the command line, then
a new random password will be chosen.

This script uses the "user_account_db"  option in the currently 
installed GBrowse.conf configuration file to find 
the appropriate accounts database.
END
    ;
if ($ARGV[0] =~ /^--?h/) {
    die USAGE;
}

my $wwwuser = GBrowse::ConfigData->config('wwwuser');
my $uid     = (getpwnam($wwwuser))[2];
unless ($uid == $<) {
    print STDERR "Not running as $wwwuser. Trying to use sudo to remedy. You may be asked for your login password.\n";
    my @args = ('sudo','-u',$wwwuser,$0, @ORIGINAL_ARGV);
    exec @args;
    exit 0;
}

my $globals = Bio::Graphics::Browser2->open_globals or die "Couldn't open GBrowse.conf";
my $userdb  = Bio::Graphics::Browser2::UserDB->new($globals);

my $name = shift or die "Please provide a username. Run $0 --help for help\n";
my $pass = shift || get_random_password();

my $uid = $userdb->userid_from_username($name);
$uid || die "unknown user: $name\n";

$userdb->set_password($uid,$pass);
warn "Account \"$name\": password successfully set to $pass.\n";

exit 0;

sub get_random_password {
    my $p = '';
    my @a = ('a'..'z','A'..'Z',0..9);
    for (1..10) {
	$p .= $a[rand @a];
    }
    return $p;
}

__END__