From: <fm...@us...> - 2012-10-16 21:02:06
|
Revision: 43481 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=43481&view=rev Author: fmg-sf Date: 2012-10-16 21:02:00 +0000 (Tue, 16 Oct 2012) Log Message: ----------- [ENH] display user, group and perms Modified Paths: -------------- trunk/permissioncheck/index.php Added Paths: ----------- trunk/permissioncheck/functions.inc Added: trunk/permissioncheck/functions.inc =================================================================== --- trunk/permissioncheck/functions.inc (rev 0) +++ trunk/permissioncheck/functions.inc 2012-10-16 21:02:00 UTC (rev 43481) @@ -0,0 +1,84 @@ +<?php + +// group/owner of file +function get_ownership_groupname($filename) { + $group=posix_getgrgid(filegroup($filename)); + $groupname=$group["name"]; + return $groupname; +} + +// user/owner of file +function get_ownership_username($filename) { + $user=posix_getpwuid(fileowner($filename)); + $username=$user["name"]; + return $username; +} + +// all permission data by reference +function get_perm_data($filename,&$username,&$groupname,&$perms_asc,&$perms_oct) { + $username=get_ownership_username($filename); + $groupname=get_ownership_groupname($filename); + $perms_asc=get_perms_ascii($filename); + $perms_oct=get_perms_octal($filename); +} + +// permissions of fike +function get_perms_ascii($filename) { + +$perms = fileperms($filename); + +if (($perms & 0xC000) == 0xC000) { + // Socket + $perm_string = 's'; +} elseif (($perms & 0xA000) == 0xA000) { + // Symbolic Link + $perm_string = 'l'; +} elseif (($perms & 0x8000) == 0x8000) { + // Regular + $perm_string = '-'; +} elseif (($perms & 0x6000) == 0x6000) { + // Block special + $perm_string = 'b'; +} elseif (($perms & 0x4000) == 0x4000) { + // Directory + $perm_string = 'd'; +} elseif (($perms & 0x2000) == 0x2000) { + // Character special + $perm_string = 'c'; +} elseif (($perms & 0x1000) == 0x1000) { + // FIFO pipe + $perm_string = 'p'; +} else { + // Unknown + $perm_string = 'u'; +} + +// Owner +$perm_string .= (($perms & 0x0100) ? 'r' : '-'); +$perm_string .= (($perms & 0x0080) ? 'w' : '-'); +$perm_string .= (($perms & 0x0040) ? + (($perms & 0x0800) ? 's' : 'x' ) : + (($perms & 0x0800) ? 'S' : '-')); + +// Group +$perm_string .= (($perms & 0x0020) ? 'r' : '-'); +$perm_string .= (($perms & 0x0010) ? 'w' : '-'); +$perm_string .= (($perms & 0x0008) ? + (($perms & 0x0400) ? 's' : 'x' ) : + (($perms & 0x0400) ? 'S' : '-')); + +// World +$perm_string .= (($perms & 0x0004) ? 'r' : '-'); +$perm_string .= (($perms & 0x0002) ? 'w' : '-'); +$perm_string .= (($perms & 0x0001) ? + (($perms & 0x0200) ? 't' : 'x' ) : + (($perms & 0x0200) ? 'T' : '-')); + +return $perm_string; +} + +function get_perms_octal($filename) { + $perms_oct=substr(sprintf('%o', fileperms($filename)), -3); + return $perms_oct; +} +?> Modified: trunk/permissioncheck/index.php =================================================================== --- trunk/permissioncheck/index.php 2012-10-16 20:46:38 UTC (rev 43480) +++ trunk/permissioncheck/index.php 2012-10-16 21:02:00 UTC (rev 43481) @@ -5,7 +5,8 @@ <meta name="robots" content="noindex, nofollow" /> <title>Tiki Installation Permission Check</title> <style type="text/css"> -.block {text-align: justify;} + .block {text-align: justify;} + .truetype {font-family: courier;} </style> </head> <body> @@ -21,71 +22,21 @@ echo "PHP works"; ?> </p> - <p>permission check: <?php + <p> + permission check: <?php + //include "functions.inc"; + require "functions.inc"; $filename="index.php"; - $user=(posix_getpwuid(fileowner($filename))); - $group=posix_getgrgid(filegroup($filename)); + $user=get_ownership_username($filename); + $group=get_ownership_groupname($filename); + $username=get_ownership_username($filename); + $groupname=get_ownership_groupname($filename); $perms_oct=substr(sprintf('%o', fileperms($filename)), -3); - -$perms = fileperms($filename); - -if (($perms & 0xC000) == 0xC000) { - // Socket - $info = 's'; -} elseif (($perms & 0xA000) == 0xA000) { - // Symbolic Link - $info = 'l'; -} elseif (($perms & 0x8000) == 0x8000) { - // Regular - $info = '-'; -} elseif (($perms & 0x6000) == 0x6000) { - // Block special - $info = 'b'; -} elseif (($perms & 0x4000) == 0x4000) { - // Directory - $info = 'd'; -} elseif (($perms & 0x2000) == 0x2000) { - // Character special - $info = 'c'; -} elseif (($perms & 0x1000) == 0x1000) { - // FIFO pipe - $info = 'p'; -} else { - // Unknown - $info = 'u'; -} - -// Owner -$info .= (($perms & 0x0100) ? 'r' : '-'); -$info .= (($perms & 0x0080) ? 'w' : '-'); -$info .= (($perms & 0x0040) ? - (($perms & 0x0800) ? 's' : 'x' ) : - (($perms & 0x0800) ? 'S' : '-')); - -// Group -$info .= (($perms & 0x0020) ? 'r' : '-'); -$info .= (($perms & 0x0010) ? 'w' : '-'); -$info .= (($perms & 0x0008) ? - (($perms & 0x0400) ? 's' : 'x' ) : - (($perms & 0x0400) ? 'S' : '-')); - -// World -$info .= (($perms & 0x0004) ? 'r' : '-'); -$info .= (($perms & 0x0002) ? 'w' : '-'); -$info .= (($perms & 0x0001) ? - (($perms & 0x0200) ? 't' : 'x' ) : - (($perms & 0x0200) ? 'T' : '-')); - -//echo $info; - - //$perms_asc=substr(sprintf(fileperms($filename)), -3); - $perms_asc=$info; - echo "this file "."<strong>".$filename."</strong>"." owned by "; - echo "user "."<strong>".$user["name"]."</strong>"." and group "."<strong>".$group["name"]."</strong>"." has got access permissions "; - echo "<strong>".$perms_asc."</strong>"." which is "."<strong>".$perms_oct."</strong>"." octal."; + $perms_asc=get_perms_ascii($filename); + echo "\n\tthis file "."<strong>".$filename."</strong>"." owned by "; + echo "\n\tuser "."<strong>".$username."</strong>"." and group "."<strong>".$groupname."</strong>"." has got access permissions "; + echo "\n\t<strong>".$perms_asc."</strong>"." which is "."<strong>".$perms_oct."</strong>"." octal."; echo "<br />\n"; - //echo substr(sprintf('%o', fileperms($filename)), -3); - //echo "PHP works"; ?> </p> <p class="block"> @@ -93,14 +44,35 @@ may modify permissions either by SSH access or by FTP access. TODO: List of files and perms in permission/ </p> - <div class="block"> - <div><a href="/permissioncheck/paranoia/" target="_blank">paranoia</a></div> + <div class="block"><table class="truetype"><?php + echo "\n "; + //$file="permissioncheck/paranoia"; + //$filename="../".$file; + $filename="paranoia"; + get_perm_data($filename,$username,$groupname,$perms_asc,$perms_oct); + //echo $username." ".$groupname." ".$perms_asc." ".$perms_oct.' <a href="'.$filename.'" target="_blank">'.$filename."</a><br>\n"; + echo "<tr>"."<td>".$username."</td><td>".$groupname."</td><td>".$perms_asc."</td><td>".$perms_oct.'</td><td><a href="'.$filename.'" target="_blank">'.$filename."</a></td></tr>\n "; + $filename="paranoia-suphp"; + get_perm_data($filename,$username,$groupname,$perms_asc,$perms_oct); + //echo $username." ".$groupname." ".$perms_asc." ".$perms_oct.' <a href="'.$filename.'" target="_blank">'.$filename."</a><br>\n"; + echo "<tr>"."<td>".$username."</td><td>".$groupname."</td><td>".$perms_asc."</td><td>".$perms_oct.'</td><td><a href="'.$filename.'" target="_blank">'.$filename."</a></td></tr>\n "; + $filename="mixed"; + get_perm_data($filename,$username,$groupname,$perms_asc,$perms_oct); + //echo $username." ".$groupname." ".$perms_asc." ".$perms_oct.' <a href="'.$filename.'" target="_blank">'.$filename."</a><br>\n"; + echo "<tr>"."<td>".$username."</td><td>".$groupname."</td><td>".$perms_asc."</td><td>".$perms_oct.'</td><td><a href="'.$filename.'" target="_blank">'.$filename."</a></td></tr>\n "; + $filename="risky"; + get_perm_data($filename,$username,$groupname,$perms_asc,$perms_oct); + //echo $username." ".$groupname." ".$perms_asc." ".$perms_oct.' <a href="'.$filename.'" target="_blank">'.$filename."</a><br>\n"; + echo "<tr>"."<td>".$username."</td><td>".$groupname."</td><td>".$perms_asc."</td><td>".$perms_oct.'</td><td><a href="'.$filename.'" target="_blank">'.$filename."</a></td></tr>\n "; +?> +<? /* <div><a href="/permissioncheck/paranoia/" target="_blank">paranoia</a></div> <div><a href="/permissioncheck/paranoia-suphp/" target="_blank">paranoia-suphp</a></div> <div><a href="/permissioncheck/mixed/" target="_blank">mixed</a></div> <div><a href="/permissioncheck/risky/" target="_blank">risky</a></div> - <?php //<div><a href="/permissioncheck/foo/" target="_blank">foo</a></div>?> +*/ ?> <?php //<div><a href="/permissioncheck/foo/" target="_blank">foo</a></div>?> <?php //<div><a href="/permissioncheck/bar/" target="_blank">bar</a></div>?> - </div> + <?php echo "<!-- table end -->\n"; ?> + </table></div> <p class="block"> Enjoy <a href="https://tiki.org/" target="_blank">Tiki</a> and <a href="https://tiki.org/tiki-register.php" target="_blank">join the community</a>! This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |