| | |
| | | /* |
| | | This function returns a string that describes the installed |
| | | linux distribution. e.g. debian40 for Debian Linux 4.0 |
| | | |
| | | */ |
| | | |
| | | |
| | |
| | | if(file_exists('/etc/debian_version')) { |
| | | |
| | | if(trim(file_get_contents('/etc/debian_version')) == '4.0') { |
| | | $distname = 'debian40'; |
| | | swriteln('Operating System: Debian 4.0 or compatible'); |
| | | $distname = 'Debian'; |
| | | $distver = '4.0'; |
| | | $distid = 'debian40'; |
| | | $distbaseid = 'debian'; |
| | | swriteln("Operating System: Debian 4.0 or compatible\n"); |
| | | } |
| | | if(trim(file_get_contents('/etc/debian_version')) == 'lenny/sid') { |
| | | $distname = 'debian40'; |
| | | swriteln('Operating System: Debian Lenny/Sid or compatible'); |
| | | if(trim(file_get_contents('/etc/debian_version')) == '5.0' || trim(file_get_contents('/etc/debian_version')) == 'lenny/sid') { |
| | | $distname = 'Debian'; |
| | | $distver = 'Lenny/Sid'; |
| | | $distid = 'debian40'; |
| | | $distbaseid = 'debian'; |
| | | swriteln("Operating System: Debian Lenny/Sid or compatible\n"); |
| | | } |
| | | } |
| | | |
| | | //** OpenSuSE |
| | | elseif(file_exists("/etc/SuSE-release")) { |
| | | if(stristr(file_get_contents('/etc/SuSE-release'),'11.0')) { |
| | | $distname = 'openSUSE'; |
| | | $distver = '11.0'; |
| | | $distid = 'opensuse110'; |
| | | $distbaseid = 'opensuse'; |
| | | swriteln("Operating System: openSUSE 11.0 or compatible\n"); |
| | | } |
| | | } |
| | | |
| | | |
| | | //** Redhat |
| | | elseif(file_exists("/etc/redhat_release")) { |
| | | |
| | | elseif(file_exists("/etc/redhat-release")) { |
| | | |
| | | $content = file_get_contents('/etc/redhat-release'); |
| | | |
| | | if(stristr($content,'Fedora release 9 (Sulphur)')) { |
| | | $distname = 'Fedora'; |
| | | $distver = '9'; |
| | | $distid = 'fedora9'; |
| | | $distbaseid = 'fedora'; |
| | | swriteln("Operating System: Fedora 9 or compatible\n"); |
| | | } |
| | | |
| | | if(stristr($content,'CentOS release 5.2 (Final)')) { |
| | | $distname = 'CentOS'; |
| | | $distver = '5.2'; |
| | | $distid = 'centos52'; |
| | | $distbaseid = 'fedora'; |
| | | swriteln("Operating System: CentOS 5.2 or compatible\n"); |
| | | } |
| | | |
| | | |
| | | } else { |
| | | die('unrecognized linux distribution'); |
| | | } |
| | | |
| | | return $distname; |
| | | return array('name' => $distname, 'version' => $distver, 'id' => $distid, 'baseid' => $distbaseid); |
| | | } |
| | | |
| | | function sread() { |
| | | $f = fopen('/dev/stdin', 'r'); |
| | | $input = fgets($f, 255); |
| | | fclose($f); |
| | | $input = fgets(STDIN); |
| | | return rtrim($input); |
| | | } |
| | | |
| | |
| | | wf($xinetd_conf, $contents); |
| | | } |
| | | |
| | | ?> |
| | | //* Converts a ini string to array |
| | | function ini_to_array($ini) { |
| | | $config = ''; |
| | | $ini = str_replace("\r\n", "\n", $ini); |
| | | $lines = explode("\n", $ini); |
| | | foreach($lines as $line) { |
| | | $line = trim($line); |
| | | if($line != '') { |
| | | if(preg_match("/^\[([\w\d_]+)\]$/", $line, $matches)) { |
| | | $section = strtolower($matches[1]); |
| | | } elseif(preg_match("/^([\w\d_]+)=(.*)$/", $line, $matches) && $section != null) { |
| | | $item = trim($matches[1]); |
| | | $config[$section][$item] = trim($matches[2]); |
| | | } |
| | | } |
| | | } |
| | | return $config; |
| | | } |
| | | |
| | | |
| | | //* Converts a config array to a string |
| | | function array_to_ini($config_array = '') { |
| | | if($config_array == '') $config_array = $this->config; |
| | | $content = ''; |
| | | foreach($config_array as $section => $data) { |
| | | $content .= "[$section]\n"; |
| | | foreach($data as $item => $value) { |
| | | if($item != ''){ |
| | | $content .= "$item=$value\n"; |
| | | } |
| | | } |
| | | $content .= "\n"; |
| | | } |
| | | return $content; |
| | | } |
| | | |
| | | function is_user($user){ |
| | | global $mod; |
| | | $user_datei = '/etc/passwd'; |
| | | $users = no_comments($user_datei); |
| | | $lines = explode("\n", $users); |
| | | if(is_array($lines)){ |
| | | foreach($lines as $line){ |
| | | if(trim($line) != ""){ |
| | | list($f1, $f2, $f3, $f4, $f5, $f6, $f7) = explode(":", $line); |
| | | if($f1 == $user) return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | function is_group($group){ |
| | | global $mod; |
| | | $group_datei = '/etc/group'; |
| | | $groups = no_comments($group_datei); |
| | | $lines = explode("\n", $groups); |
| | | if(is_array($lines)){ |
| | | foreach($lines as $line){ |
| | | if(trim($line) != ""){ |
| | | list($f1, $f2, $f3, $f4) = explode(":", $line); |
| | | if($f1 == $group) return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | function replaceLine($filename,$search_pattern,$new_line,$strict = 0) { |
| | | if($lines = @file($filename)) { |
| | | $out = ''; |
| | | $found = 0; |
| | | foreach($lines as $line) { |
| | | if($strict == 0) { |
| | | if(stristr($line,$search_pattern)) { |
| | | $out .= $new_line."\n"; |
| | | $found = 1; |
| | | } else { |
| | | $out .= $line; |
| | | } |
| | | } else { |
| | | if(trim($line) == $search_pattern) { |
| | | $out .= $new_line."\n"; |
| | | $found = 1; |
| | | } else { |
| | | $out .= $line; |
| | | } |
| | | } |
| | | } |
| | | if($found == 0) { |
| | | $out .= $new_line."\n"; |
| | | } |
| | | file_put_contents($filename,$out); |
| | | } |
| | | } |
| | | |
| | | function removeLine($filename,$search_pattern,$strict = 0) { |
| | | if($lines = @file($filename)) { |
| | | $out = ''; |
| | | foreach($lines as $line) { |
| | | if($strict == 0) { |
| | | if(!stristr($line,$search_pattern)) { |
| | | $out .= $line; |
| | | } |
| | | } else { |
| | | if(!trim($line) == $search_pattern) { |
| | | $out .= $line; |
| | | } |
| | | } |
| | | } |
| | | file_put_contents($filename,$out); |
| | | } |
| | | } |
| | | |
| | | function is_installed($appname) { |
| | | exec('which '.escapeshellcmd($appname),$out); |
| | | if(isset($out[0]) && stristr($out[0],$appname)) { |
| | | return true; |
| | | } else { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | ?> |