使用PHP脚本修改Linux或Unix系统口令 |
本文介绍如何 使用PHP脚本 批改Linux或Unix系统口令 。 需求的工具和安装: 你必须安装下面的工具和软件: – 批改口令的Shell脚本; – Sudo 拜访权; – Apache or Lighttpd web 服务器; – PHP服务端程序 。 步骤1: 安装 可以 批改消费者口令的shell脚本 该脚本 可以实际用于 批改Linux消费者的口令(已在Linux和FreeBSD测试) 。 例子: shell脚本代码 #!/bin/sh # \ exec expect -f “$0″ ${1+”$@”} set password [lindex $argv 1] spawn passwd [lindex $argv 0] sleep 1 expect “assword:” send “$password\r” expect “assword:” send “$password\r” expect eof运行shell脚本(下载链接): $ chpasswd username password 下载该脚本, 而后拷贝到你的web根目录或者Web服务器的其它位置(消费者可读): $ cp chpasswd /var/www/或者, 假如你 使用Lighttpd Web服务器: $ cp chpasswd /home/lighttpd 步骤2: 通过sudo以root身份执行命令 Apache或Lighttpd Web服务器进入 后盾运行后会即将 使用非root权限 。这样 可以很好的 预防口令 批改, 就像passwd命令需求root权限 威力 批改其它消费者帐号的口令 。 通常, Apache 2 使用www-data消费者, Lighttpd 使用lighttpd消费者(皆为一般消费者, 非root消费者) 。 使用root消费者登陆, 而后执行下面的命令: # visudo现在你的web服务器同意执行口令 批改脚本(chpasswd) 。假如你 使用Apache Web服务器, 执行下面的命令: www-data ALL=NOPASSWD: /var/www/chpasswd或者, 假如你 使用Lighttpd Web服务器, 执行下面的命令: httpd ALL=NOPASSWD: /home/lighttpd/chpasswd 保留和退出文件 。 步骤3. 缔造一个基于PHP的接口 现在你需求写一个php脚本 。这里有一个php脚本实例 。你 可以依据你的需求来 批改 。至少你需求正确设置好的shell脚本位置 。 打开php脚本和找到shellscript一行: $shellscript = “sudo /home/lighttpd/chpasswd”; 批改shellscript指向到正确的位置 。PHP的源代码从这里下载: 步骤4: 运行脚本 在你的web阅读器地址栏输入网地址 - https://mydomain.com/changepassword.php 。你将会看到消费者名和口令 揭示: 假如口令 批改 顺利, 你会得到确实认 揭示: 因为一些缘由, 假如口令 批改失败, 你 可以参考下面 揭示 获得更多 详尽的 舛误信息: 步骤5: 安全 ◆永远不要通过http 协定直接运行上面的脚本. 而是 使用https 协定 。 ◆把脚本放入到受口令 掩护的目录 。 ◆永远不要信赖消费者的输入 。上面的php脚本只不过一个例子 。在 事实的生产环境中, 你需求考量采纳更 壮大的消费者输入确认 。 探讨PHP编程的安全超出了本文的 规模 。你 可以参考一本好的PHP书籍或者 使用你喜爱的查找引擎查找 有关的网站 。 |