System("ls")
System("pwd")
这两个命令在生产和生产中都能很好地工作。同一台服务器上的开发模式。
但是System("mkdir test")
或涉及创建新文件/目录的任何其他命令都不会在生产模式下运行,但在开发模式下工作正常。这里有什么想法吗?
我的猜测是它与权限有关,但不确定在哪里。
答案 0 :(得分:0)
出于安全原因,在您的服务器上,您应该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")
无需密码。