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 に答える