With web3 v1 installed, you can try this:
let abi = fs.readFileSync("YourContract.abi").toString();
let contract = new web3.eth.Contract(JSON.parse(abi), CONTRACT_ADDRESS);
let transaction = contract.methods.yourMethod(yourArguments);
let options = {
to : transaction._parent._address,
data: transaction.encodeABI(),
gas : await transaction.estimateGas({from: OWNER_PUBLIC_KEY}),
};
let signedTransaction = await web3.eth.accounts.signTransaction(options, OWNER_PRIVATE_KEY);
let transactionReceipt = await web3.eth.sendSignedTransaction(signedTransaction.rawTransaction);
Please note that for the last line, waiting for the transaction-receipt is not necessarily the best course of action. You might prefer to get the transaction-hash and then use it in order to wait for the transaction-receipt elsewhere in your server. See here for a more detailed description of this issue.
geth attachto it andpersonal.unlockAccount()with the password, or similarly for other clients. – manuhalo Oct 27 '17 at 14:29