I initially asked a question关于如何通过HTML创建Linux用户(本质上是用户通过HTML页面注册,该页面执行服务器端PHP脚本,或多或少地发出命令shell_execute("adduser user")
。但是,从那时起,我来到意识到这个问题与Apache用户有关Apache2权限问题
默认的apache用户是www-data这个工作正常,大部分时间,因为你可以分配文件或文件夹到www数据用户或者WWW的数据组。但是,当你需要root访问权限复杂的问题。要创建新的Linux用户,我第一次尝试这样的事情
shell_exec("ssh -v [email protected]$server \"useradd --password `echo \"$password\" | makepasswd --clearfrom=- --crypt-md5 |awk '{ print $2 }'` -m $username\" ");
即使我公开/私有密钥,以允许用户从WWW的数据,以根密码的条目,我不知道到底哪里把这些密钥。它似乎www数据没有主文件夹。 php命令shell_exec("echo $HOME")
或shell_exec("echo $USER")
返回空/空字符串。然而,命令 “了shell_exec(” WHOAMI “)correctly returns www-date. I tried other ways to discover the home folder, such as
了shell_exec(” CD〜“), however, that caused an error. Is there some way of finding out where ssh searches, per user, when looking for public/private keys? I have so far tried
/home/www-data/.ssh/ and /var/www/.ssh
。
另外,我试过
shell_exec("echo root_password | sudo -S useradd --password `echo \"mypassword\" | makepasswd --clearfrom=- --crypt-md5 |awk '{ print $2 }'` -m rolo ");
但是,抱怨我使用的root_password
是不正确的。看起来用户www-data有一个不同的root密码!事实上,我甚至不知道它的密码是什么。
有人可以引导我在正确的方向可以解决这个问题,我需要能够为每个regi的新用户创建linux用户讲演者。
感谢
从安全的角度来看,将根密码存储在PHP文件中是非常糟糕的*练习。 – 2011-04-19 08:33:51
肮脏的代码,肮脏的黑客:'sudo passwd www-data'并为www-data选择了一个新密码。编辑sudoers文件,以便您的www数据可以使用自己的密码,并且只执行useradd命令。 – Konerak 2011-04-19 08:34:29
@Konerak:你的垃圾版本工作。干杯。 – puk 2011-04-19 09:22:09