summaryrefslogtreecommitdiffstats
path: root/usr.bin/keyinfo/keyinfo.pl
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>1996-04-26 21:35:11 +0000
committerjoerg <joerg@FreeBSD.org>1996-04-26 21:35:11 +0000
commit651af4a301f28f59b7174fc381c01258bdbeebff (patch)
treeaa8fce9741e46086cc0e0b5aee858d3ff9024a87 /usr.bin/keyinfo/keyinfo.pl
parent2d430f5746ff743957a88b3d67c2cb037327ad56 (diff)
downloadFreeBSD-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.pl27
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;
+
OpenPOWER on IntegriCloud