前段时间想要运用学习的shell结合php根据教程来实现一个使用web页面来管理linux系统的项目,但是因为linux系统原因,此项目只能再centos5上实现,再高版本系统中因为sudo命令不能在非tty终端运行而搁浅。所以本博文只描述一下搭建过程以及提供源码。
1、需要准备的资源和实现界面效果:
centos5系统
lamp或lnmp环境(搭建教程不做阐述)
bootstrap包(网上有很多教程,会使用即可,我是用的云之梦中的bootstrap免费教程)
2、首先在你的网站目录新建一个目录public,将bs包放进这个目录
3、准备几张搭建网页需要的logo图片放在img文件夹中
4、在linux系统中使用visudo命令修改sudo权限,使它能够在非tty终端中运行,再修改几个命令的权限,因为系统原因,只能再centos5中修改。
5、在与public同级目录中创建几个文件夹实现其他几个页面的管理功能,分别为system(系统管理文件夹)和user(用户管理文件夹)
6、public文件夹中需要创建的文件
1)index.php(系统首页)
<?php
$public='/public';
$img='/public/img';
$bscss='/public/bs/css';
$bsjs='/public/bs/js';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
<link rel="stylesheet" href="<?php echo $bscss ?>/bootstrap.min.css">
<script src="<?php echo $bsjs ?>/jquery.min.js"></script>
<script src="<?php echo $bsjs ?>/bootstrap.min.js"></script>
<style>
.navbar-brand{
padding: 5px;
}
body{
padding-top: 65px;
}
</style>
</head>
<body>
<div class="container-fluid">
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/public">
<img src="<?php echo $img ?>/timg.jpg" height="40px">
</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="/public">首页<span class="sr-only">(current)</span></a></li>
<li><a href="/user">用户管理</a></li>
<li><a href="/system">系统管理</a></li>
</ul>
</div>
</div>
</nav>
<!--下面的图文-->
<div class="jumbotron">
<h3>php+shell管理系统</h3>
<p>
<img src="<?php echo $img ?>/car.jpg" alt="">
</p>
<a href="reset.php" class='btn btn-warning btn-lg' onclick="return confirm('您确认重启系统吗?')">重启系统</a>
<a href="shutdown.php" class='btn btn-danger btn-lg' onclick="return confirm('您确认关闭系统吗?')">关闭系统</a>
</div>
</div>
</body>
</html>
2)reset.php(重启页面)
<?php
$shell='sudo init 6';
exec($shell,$arr,$s);
$homeshell="ls /home";
exec($homeshell,$arr);
foreach ($arr as $row) {
$usershell="cat /etc/passwd |grep {$row}|awk -F: '{print $1,$3,$4,$6,$7}'";
exec($usershell,$arr2);
}
foreach($arr2 as $row2){
$rows[]=explode(' ', $row2);
}
$public='/public';
$img='/public/img';
$bscss='/public/bs/css'