Ruby on rails RoR:具有write属性的Shell/System命令在生产模式下不工作?

Ruby on rails RoR:具有write属性的Shell/System命令在生产模式下不工作?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,系统(“ls”) 系统(“pwd”) 这两个命令在同一服务器上的生产和开发模式下都可以正常工作 但是,System(“mkdir test”)或涉及创建新文件的任何其他命令/dir不会在生产模式下执行,而是在开发模式下正常工作。有什么想法吗 我猜这与权限有关,但不确定在哪里。出于安全原因,您的服务器上应该有一个用户不同于root。然后,应将此用户添加到sudoers列表中: 现在,根据您要创建此文件夹的位置,如果它位于您的应用程序文件夹中,并且您的用户具有读/写权限,(搜索chmod 755和

系统(“ls”)

系统(“pwd”)

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

但是,
System(“mkdir test”)
或涉及创建新文件的任何其他命令/dir不会在生产模式下执行,而是在开发模式下正常工作。有什么想法吗


我猜这与权限有关,但不确定在哪里。

出于安全原因,您的服务器上应该有一个
用户
不同于
root
。然后,应将此
用户
添加到
sudoers
列表中:

现在,根据您要创建此文件夹的位置,如果它位于您的应用程序文件夹中,并且您的用户具有读/写权限,(搜索
chmod 755
chown
设置文件夹的所有者,最好使用
chown-R
将其应用于所有子文件夹),之后,您将能够使用以下内容创建该文件夹:

System("mkdir test")
但仅在用户具有读/写权限的文件夹中

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

System("sudo mkdir test")
通常情况下,这是在后台运行的,您不需要在后台写入密码,因此您必须在运行sudo时添加不需要密码的命令,使用
NOPASSWD
指令,您可以执行以下操作:

完成所有这些操作后,您将能够使用以下方法在路径中创建文件夹:

System("sudo mkdir test")

无需密码。

在服务器上,在创建工件的目录中,在服务器运行时的用户下。抱歉,不确定您的意思是什么?在本地计算机上,您是该文件夹的所有者,您可以运行该命令,因为您具有该文件夹的读/写权限。在服务器上,您应该运行ls-la来查看您拥有的权限以及folderMy开发设置的所有者也在同一台服务器上,而不是在本地计算机上&在这两种模式下,用户都是root用户。文件夹归root所有,perms drwxr-xr-x 17最近构建了一个应用程序,它克隆了一个源应用程序并在另一个子域上启动它,不得不使用sudo命令几次,在你的情况下,我认为这只是你想创建目录的文件夹的所有权问题。好的,我将在几个小时后回来,希望你能在那时修复它。如果不是的话,等我回来的时候,我会尽力帮你更多online@user2186138您不应以root用户身份运行web应用。
System("sudo mkdir test")