#!/usr/bin/perl -w =head1 NAME pam_getenv - get environment variables from /etc/environment =head1 SYNOPSIS pam_getenv B<[-l] [-s]> I<env_var> =head1 DESCRIPTION This tool will print out the value of I<env_var> from F</etc/environment>. It will attempt to expand environment variable references in the definition of I<env_var> but will fail if PAM items are expanded. The B<-l> option indicates the script should return an environment variable related to default locale information. The B<-s> option indicates that the script should return an system default environment variable. Currently neither the B<-l> or B<-s> options do anything. They are included because future versions of Debian may have a separate repository for the initial environment used by init scripts and for system locale information. These options will allow this script to be a stable interface even in that environment. =cut # Copyright 2004 by Sam Hartman # This script may be copied under the terms of the GNU GPL # version 2, or at your option any later version. use strict; use vars qw(*CONFIGFILE *ENVFILE); sub read_line($) { my $fh = shift; my $line; local $_; line: while (<$fh>) { chomp; s/^\s+//; s/\#.*$//; next if $_ eq ""; if (s/\\\s*$//) { $line .= $_; next line; } $line .= $_; last; } $line; } sub parse_line($) { my $var; my (%x, @x); local $_ = shift; return undef unless defined $_ and s/(\S+)\s//; $var->{Name} = $1; s/^\s*//; @x = split(/=([^"\s]\S*|"[^"]*")\s*/, $_); unless (scalar(@x)%2 == 0) { push @x, undef; } %x = @x; @{$var}{"Default", "Override"} = @x{"DEFAULT", "OVERRIDE"}; $var; } sub expand_val($) { my ($val) = @_; return undef unless $val; die "Cannot handle PAM items\n" if /(?<!\\)\@/; $val =~ s/(?<!\\)\$\{([^}]+)\}/$ENV{$1}||""/eg; return $val; } my $lookup; while ($_ = shift) { next if $_ eq "-s"; next if $_ eq "-l"; $lookup = $_; last; } unless (defined $lookup) { die "Usage: pam_getenv [-l] [-s] env_var\n"; } my %allvars; open (CONFIGFILE, "/etc/security/pam_env.conf") or die "Cannot open environment file: $!\n"; while (my $var = parse_line(read_line(\*CONFIGFILE))) { my $val; unless ($val = expand_val($var->{Override})) { $val = expand_val($var->{Default}); } $allvars{$var->{Name}} = $val; } if (open (ENVFILE, "/etc/environment")) { while (my $line = read_line(\*ENVFILE)) { $line =~ s/^export //; $line =~ /(.*?)=(.+)/ or next; my ($var, $val) = ($1, $2); # This is bizarre logic (" and ' match each other, quotes are only # significant at the start and end of the string, and the trailing quote # may be omitted), but it's what pam_env does. $val =~ s/^["'](.*?)["']?$/$1/; $allvars{$var} = $val; } } if (exists $allvars{$lookup}) { print $allvars{$lookup}, "\n"; exit(0); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
aa-remove-unknown | File | 3 KB | 0755 |
|
aa-status | File | 62.62 KB | 0755 |
|
aa-teardown | File | 137 B | 0755 |
|
add-shell | File | 1.03 KB | 0755 |
|
addgroup | File | 37.35 KB | 0755 |
|
adduser | File | 37.35 KB | 0755 |
|
agetty | File | 55.56 KB | 0755 |
|
apparmor_parser | File | 1.48 MB | 0755 |
|
apparmor_status | File | 62.62 KB | 0755 |
|
arpd | File | 26.33 KB | 0755 |
|
arptables | File | 219.04 KB | 0755 |
|
arptables-nft | File | 219.04 KB | 0755 |
|
arptables-nft-restore | File | 219.04 KB | 0755 |
|
arptables-nft-save | File | 219.04 KB | 0755 |
|
arptables-restore | File | 219.04 KB | 0755 |
|
arptables-save | File | 219.04 KB | 0755 |
|
badblocks | File | 34.32 KB | 0755 |
|
blkdeactivate | File | 15.97 KB | 0755 |
|
blkdiscard | File | 22.38 KB | 0755 |
|
blkid | File | 50.41 KB | 0755 |
|
blkzone | File | 34.38 KB | 0755 |
|
blockdev | File | 30.38 KB | 0755 |
|
bridge | File | 92.49 KB | 0755 |
|
capsh | File | 30.3 KB | 0755 |
|
cfdisk | File | 94.73 KB | 0755 |
|
chcpu | File | 30.38 KB | 0755 |
|
chgpasswd | File | 58.13 KB | 0755 |
|
chmem | File | 34.38 KB | 0755 |
|
chpasswd | File | 54.16 KB | 0755 |
|
chroot | File | 38.51 KB | 0755 |
|
cpgr | File | 48.29 KB | 0755 |
|
cppw | File | 48.29 KB | 0755 |
|
cryptdisks_start | File | 1.51 KB | 0755 |
|
cryptdisks_stop | File | 844 B | 0755 |
|
cryptsetup | File | 169.92 KB | 0755 |
|
cryptsetup-reencrypt | File | 90.38 KB | 0755 |
|
cryptsetup-ssh | File | 23.53 KB | 0755 |
|
ctrlaltdel | File | 14.38 KB | 0755 |
|
dcb | File | 80.52 KB | 0755 |
|
debugfs | File | 229.8 KB | 0755 |
|
delgroup | File | 16.11 KB | 0755 |
|
deluser | File | 16.11 KB | 0755 |
|
depmod | File | 170.34 KB | 0755 |
|
devlink | File | 142.86 KB | 0755 |
|
dhclient | File | 442.66 KB | 0755 |
|
dhclient-script | File | 15.92 KB | 0755 |
|
dmsetup | File | 171.01 KB | 0755 |
|
dmstats | File | 171.01 KB | 0755 |
|
dosfsck | File | 82.38 KB | 0755 |
|
dosfslabel | File | 38.38 KB | 0755 |
|
dumpe2fs | File | 30.31 KB | 0755 |
|
e2freefrag | File | 14.3 KB | 0755 |
|
e2fsck | File | 351.84 KB | 0755 |
|
e2image | File | 42.31 KB | 0755 |
|
e2label | File | 102.55 KB | 0755 |
|
e2mmpstatus | File | 30.31 KB | 0755 |
|
e2scrub | File | 7.13 KB | 0755 |
|
e2scrub_all | File | 5.27 KB | 0755 |
|
e2undo | File | 22.3 KB | 0755 |
|
e4crypt | File | 30.38 KB | 0755 |
|
e4defrag | File | 30.3 KB | 0755 |
|
ebtables | File | 219.04 KB | 0755 |
|
ebtables-nft | File | 219.04 KB | 0755 |
|
ebtables-nft-restore | File | 219.04 KB | 0755 |
|
ebtables-nft-save | File | 219.04 KB | 0755 |
|
ebtables-restore | File | 219.04 KB | 0755 |
|
ebtables-save | File | 219.04 KB | 0755 |
|
faillock | File | 14.15 KB | 0755 |
|
fatlabel | File | 38.38 KB | 0755 |
|
fdisk | File | 110.42 KB | 0755 |
|
filefrag | File | 18.32 KB | 0755 |
|
findfs | File | 14.38 KB | 0755 |
|
fsck | File | 42.42 KB | 0755 |
|
fsck.cramfs | File | 30.44 KB | 0755 |
|
fsck.ext2 | File | 351.84 KB | 0755 |
|
fsck.ext3 | File | 351.84 KB | 0755 |
|
fsck.ext4 | File | 351.84 KB | 0755 |
|
fsck.fat | File | 82.38 KB | 0755 |
|
fsck.minix | File | 54.41 KB | 0755 |
|
fsck.msdos | File | 82.38 KB | 0755 |
|
fsck.vfat | File | 82.38 KB | 0755 |
|
fsfreeze | File | 14.38 KB | 0755 |
|
fstab-decode | File | 18.3 KB | 0755 |
|
fstrim | File | 42.38 KB | 0755 |
|
genl | File | 90.44 KB | 0755 |
|
getcap | File | 14.3 KB | 0755 |
|
getpcaps | File | 14.3 KB | 0755 |
|
getty | File | 55.56 KB | 0755 |
|
groupadd | File | 66.91 KB | 0755 |
|
groupdel | File | 62.73 KB | 0755 |
|
groupmems | File | 54.19 KB | 0755 |
|
groupmod | File | 66.82 KB | 0755 |
|
grpck | File | 58.13 KB | 0755 |
|
grpconv | File | 50.01 KB | 0755 |
|
grpunconv | File | 50.01 KB | 0755 |
|
halt | File | 973.23 KB | 0755 |
|
hwclock | File | 50.5 KB | 0755 |
|
iconvconfig | File | 30.4 KB | 0755 |
|
init | File | 1.55 MB | 0755 |
|
insmod | File | 170.34 KB | 0755 |
|
installkernel | File | 2.6 KB | 0755 |
|
integritysetup | File | 54.07 KB | 0755 |
|
invoke-rc.d | File | 16.12 KB | 0755 |
|
ip | File | 597.62 KB | 0755 |
|
ip6tables | File | 219.04 KB | 0755 |
|
ip6tables-apply | File | 6.89 KB | 0755 |
|
ip6tables-legacy | File | 96.95 KB | 0755 |
|
ip6tables-legacy-restore | File | 96.95 KB | 0755 |
|
ip6tables-legacy-save | File | 96.95 KB | 0755 |
|
ip6tables-nft | File | 219.04 KB | 0755 |
|
ip6tables-nft-restore | File | 219.04 KB | 0755 |
|
ip6tables-nft-save | File | 219.04 KB | 0755 |
|
ip6tables-restore | File | 219.04 KB | 0755 |
|
ip6tables-restore-translate | File | 219.04 KB | 0755 |
|
ip6tables-save | File | 219.04 KB | 0755 |
|
ip6tables-translate | File | 219.04 KB | 0755 |
|
iptables | File | 219.04 KB | 0755 |
|
iptables-apply | File | 6.89 KB | 0755 |
|
iptables-legacy | File | 96.95 KB | 0755 |
|
iptables-legacy-restore | File | 96.95 KB | 0755 |
|
iptables-legacy-save | File | 96.95 KB | 0755 |
|
iptables-nft | File | 219.04 KB | 0755 |
|
iptables-nft-restore | File | 219.04 KB | 0755 |
|
iptables-nft-save | File | 219.04 KB | 0755 |
|
iptables-restore | File | 219.04 KB | 0755 |
|
iptables-restore-translate | File | 219.04 KB | 0755 |
|
iptables-save | File | 219.04 KB | 0755 |
|
iptables-translate | File | 219.04 KB | 0755 |
|
isosize | File | 14.38 KB | 0755 |
|
killall5 | File | 30.38 KB | 0755 |
|
ldattach | File | 26.38 KB | 0755 |
|
ldconfig | File | 387 B | 0755 |
|
ldconfig.real | File | 1.16 MB | 0755 |
|
logsave | File | 14.16 KB | 0755 |
|
losetup | File | 70.52 KB | 0755 |
|
lsmod | File | 170.34 KB | 0755 |
|
luksformat | File | 3.32 KB | 0755 |
|
mkdosfs | File | 50.83 KB | 0755 |
|
mke2fs | File | 130.62 KB | 0755 |
|
mkfs | File | 14.38 KB | 0755 |
|
mkfs.bfs | File | 22.38 KB | 0755 |
|
mkfs.cramfs | File | 34.32 KB | 0755 |
|
mkfs.ext2 | File | 130.62 KB | 0755 |
|
mkfs.ext3 | File | 130.62 KB | 0755 |
|
mkfs.ext4 | File | 130.62 KB | 0755 |
|
mkfs.fat | File | 50.83 KB | 0755 |
|
mkfs.minix | File | 42.39 KB | 0755 |
|
mkfs.msdos | File | 50.83 KB | 0755 |
|
mkfs.vfat | File | 50.83 KB | 0755 |
|
mkhomedir_helper | File | 22.17 KB | 0755 |
|
mklost+found | File | 14.3 KB | 0755 |
|
mkswap | File | 46.38 KB | 0755 |
|
modinfo | File | 170.34 KB | 0755 |
|
modprobe | File | 170.34 KB | 0755 |
|
netplan | File | 798 B | 0755 |
|
newusers | File | 74.73 KB | 0755 |
|
nfnl_osf | File | 18.3 KB | 0755 |
|
nologin | File | 14.3 KB | 0755 |
|
pam-auth-update | File | 20.5 KB | 0755 |
|
pam_extrausers_chkpwd | File | 22.15 KB | 2755 |
|
pam_extrausers_update | File | 30.15 KB | 0755 |
|
pam_getenv | File | 2.82 KB | 0755 |
|
pam_timestamp_check | File | 14.15 KB | 0755 |
|
pivot_root | File | 14.38 KB | 0755 |
|
plymouthd | File | 150.55 KB | 0755 |
|
poweroff | File | 973.23 KB | 0755 |
|
pwck | File | 50.13 KB | 0755 |
|
pwconv | File | 46.01 KB | 0755 |
|
pwunconv | File | 42.01 KB | 0755 |
|
readprofile | File | 22.41 KB | 0755 |
|
reboot | File | 973.23 KB | 0755 |
|
remove-shell | File | 1.07 KB | 0755 |
|
resize2fs | File | 66.3 KB | 0755 |
|
rfkill | File | 30.23 KB | 0755 |
|
rmmod | File | 170.34 KB | 0755 |
|
rmt | File | 58.57 KB | 0755 |
|
rmt-tar | File | 58.57 KB | 0755 |
|
rtacct | File | 28.31 KB | 0755 |
|
rtcwake | File | 34.38 KB | 0755 |
|
rtmon | File | 90.39 KB | 0755 |
|
runlevel | File | 973.23 KB | 0755 |
|
runuser | File | 54.38 KB | 0755 |
|
service | File | 8.88 KB | 0755 |
|
setcap | File | 14.3 KB | 0755 |
|
sfdisk | File | 102.38 KB | 0755 |
|
shadowconfig | File | 885 B | 0755 |
|
shutdown | File | 973.23 KB | 0755 |
|
sshd | File | 895.7 KB | 0755 |
|
start-stop-daemon | File | 47.35 KB | 0755 |
|
sudo_logsrvd | File | 200.1 KB | 0755 |
|
sudo_sendlog | File | 107.34 KB | 0755 |
|
sulogin | File | 42.38 KB | 0755 |
|
swaplabel | File | 18.38 KB | 0755 |
|
swapoff | File | 22.38 KB | 0755 |
|
swapon | File | 42.38 KB | 0755 |
|
switch_root | File | 22.38 KB | 0755 |
|
sysctl | File | 30.23 KB | 0755 |
|
tarcat | File | 936 B | 0755 |
|
tc | File | 614.08 KB | 0755 |
|
telinit | File | 973.23 KB | 0755 |
|
tipc | File | 90.44 KB | 0755 |
|
tune2fs | File | 102.55 KB | 0755 |
|
tzconfig | File | 106 B | 0755 |
|
unix_chkpwd | File | 26.15 KB | 2755 |
|
unix_update | File | 30.15 KB | 0755 |
|
update-ca-certificates | File | 5.29 KB | 0755 |
|
update-passwd | File | 34.56 KB | 0755 |
|
update-rc.d | File | 16.92 KB | 0755 |
|
update-shells | File | 3.72 KB | 0755 |
|
useradd | File | 127.66 KB | 0755 |
|
userdel | File | 86.85 KB | 0755 |
|
usermod | File | 123.46 KB | 0755 |
|
vdpa | File | 30.56 KB | 0755 |
|
veritysetup | File | 43.76 KB | 0755 |
|
vigr | File | 56.53 KB | 0755 |
|
vipw | File | 56.53 KB | 0755 |
|
visudo | File | 219.79 KB | 0755 |
|
wipefs | File | 38.38 KB | 0755 |
|
wpa_action | File | 1.69 KB | 0755 |
|
wpa_cli | File | 140.31 KB | 0755 |
|
wpa_supplicant | File | 3.24 MB | 0755 |
|
xtables-legacy-multi | File | 96.95 KB | 0755 |
|
xtables-monitor | File | 219.04 KB | 0755 |
|
xtables-nft-multi | File | 219.04 KB | 0755 |
|
zic | File | 62.32 KB | 0755 |
|
zramctl | File | 54.52 KB | 0755 |
|