0

System("ls")
System("pwd")

这两个命令在同一台服务器上的生产和开发模式下都可以正常工作。

但是System("mkdir test"),或任何其他涉及创建新文件/目录的命令在生产模式下都不会执行,但在开发模式下工作得很好。这里有什么想法吗?

我的猜测是它与权限有关,但不确定在哪里。

4

1 回答 1

0

出于安全原因,在您的服务器上,您应该有一个user不同的。root比这user应该添加到sudoers列表中:

https://askubuntu.com/questions/7477/how-can-i-add-a-new-user-as-sudoer-using-the-command-line

现在,取决于您要创建此文件夹的位置,如果它在您的用户有权读取/写入的应用文件夹中,(搜索chmod 755chown设置文件夹的所有者,最好将chown -R其应用于所有子文件夹),之后您将能够使用以下命令创建该文件夹:

System("mkdir test")

但仅在您的用户有权读取/写入的文件夹中。

如果要在需要使用的其他路径中创建测试文件夹,sudo则必须运行:

System("sudo mkdir test")

通常这是在后台运行的,您不会在那里编写密码,因此您必须在运行 sudo 时添加您的命令以不需要密码,NOPASSWD您可以使用指令执行此操作:

https://askubuntu.com/questions/159007/how-do-i-run-specific-sudo-commands-without-a-password

sudo visudo -f /etc/sudoers #!important visudo, read in the upper link more about it before trying this.

完成所有这些之后,您将能够使用以下命令在您的路径中创建一个文件夹:

System("sudo mkdir test")

无需密码。

于 2013-07-14T11:31:28.630 回答