Skip to content

Instantly share code, notes, and snippets.

@allaryin
Created October 24, 2009 00:05
Show Gist options
  • Save allaryin/217281 to your computer and use it in GitHub Desktop.
Save allaryin/217281 to your computer and use it in GitHub Desktop.
<?
$keyfile = "somethingsomething.rsa";
if( !file_exists($keyfile) ) {
die( "! $keyfile not found!\n" );
}
$kuid = fileowner($keyfile);
$kgid = filegroup($keyfile);
$euid = posix_geteuid();
$kpw = posix_getpwuid( $kuid ); $kuname = $kpw['name'];
$kgr = posix_getgrgid( $kgid ); $kgname = $kgr['name'];
if( $euid == 0 ) {
echo "! setting euid to $kuname:$kgname\n";
posix_seteuid($kuid);
posix_setegid($kgid);
} else if( $euid != $kuid ) {
die( "! must run as root or uid $kuname:$kgname\n" );
}
if( !is_readable($keyfile) ) {
die( "! $keyfile is not readable!\n" );
}
$perms = fileperms($keyfile) & 0777;
if( $perms != 0600 ) {
echo "! fixing permissions on $keyfile - was ".decoct($perms)."\n";
chmod( $keyfile, 0600 );
}
echo "! validating rsa key\n";
$cmd = "openssl rsa -check -noout -in $keyfile";
$buf = trim(shell_exec($cmd));
if( $buf == "RSA key ok" )
echo "! $buf\n";
else {
die( "! $buf\n" );
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment