System("ls")
System("pwd")
这两个命令在同一台服务器上的生产和开发模式下都可以正常工作。
但是System("mkdir test")
,或任何其他涉及创建新文件/目录的命令在生产模式下都不会执行,但在开发模式下工作得很好。这里有什么想法吗?
我的猜测是它与权限有关,但不确定在哪里。
System("ls")
System("pwd")
这两个命令在同一台服务器上的生产和开发模式下都可以正常工作。
但是System("mkdir test")
,或任何其他涉及创建新文件/目录的命令在生产模式下都不会执行,但在开发模式下工作得很好。这里有什么想法吗?
我的猜测是它与权限有关,但不确定在哪里。
出于安全原因,在您的服务器上,您应该有一个user
不同的。root
比这user
应该添加到sudoers
列表中:
https://askubuntu.com/questions/7477/how-can-i-add-a-new-user-as-sudoer-using-the-command-line
现在,取决于您要创建此文件夹的位置,如果它在您的用户有权读取/写入的应用文件夹中,(搜索chmod 755
并chown
设置文件夹的所有者,最好将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")
无需密码。