diff options
author | joerg <joerg@FreeBSD.org> | 1996-04-26 21:35:11 +0000 |
---|---|---|
committer | joerg <joerg@FreeBSD.org> | 1996-04-26 21:35:11 +0000 |
commit | 651af4a301f28f59b7174fc381c01258bdbeebff (patch) | |
tree | aa8fce9741e46086cc0e0b5aee858d3ff9024a87 /usr.bin/keyinfo/keyinfo.pl | |
parent | 2d430f5746ff743957a88b3d67c2cb037327ad56 (diff) | |
download | FreeBSD-src-651af4a301f28f59b7174fc381c01258bdbeebff.zip FreeBSD-src-651af4a301f28f59b7174fc381c01258bdbeebff.tar.gz |
Implement keyinfo(1) as a setuid Perl script, so /etc/skeykeys can
be made mode 0600.
Pointed out by: kieber@sax.de (Ulf Kieber)
Reviewed by: pst
Diffstat (limited to 'usr.bin/keyinfo/keyinfo.pl')
-rw-r--r-- | usr.bin/keyinfo/keyinfo.pl | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/usr.bin/keyinfo/keyinfo.pl b/usr.bin/keyinfo/keyinfo.pl new file mode 100644 index 0000000..260a724 --- /dev/null +++ b/usr.bin/keyinfo/keyinfo.pl @@ -0,0 +1,27 @@ +#!/usr/bin/suidperl +# +# Search /etc/skeykeys for the skey string for this user OR user specified +# in 1st parameter. +# +# $Id$ +# + +die "usage: keyinfo [user]\n" unless $#ARGV < 1; + +open(K, "/etc/skeykeys") || exit 1; + +if ($#ARGV == 0) { + $user = $ARGV[0]; +} else { + $user = (getpwuid($<))[0]; +} + +while (<K>) { + ($id, $seq, $serial) = split; + if ($id eq $user) { + printf "%d %s\n", $seq - 1, $serial; + exit 0; + } +} +exit 1; + |