使用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书籍或者 使用你喜爱的查找引擎查找 有关的网站 。