このコードに問題があります
public void setTmbhUserFtp(View v) {
Spinner spinner = (Spinner) findViewById(R.id.spinner);
Server server = serverlist.get(spinner.getSelectedItemPosition() - 1);
EditText EditAdduser = (EditText) findViewById(R.id.EditAdduser);
EditText EditPassworduser = (EditText) findViewById(R.id.EditPassworduser);
String sTextAdduser = EditAdduser.getText().toString();
String sTextPassworduser = EditPassworduser.getText().toString();
if (server != null && sTextAdduser.length() > 0
&& sTextPassworduser.length() > 0) {
final String ADDUSER = "sh /home/add_user.sh".concat(sTextAdduser) .concat(sTextPassworduser);
FtpConnect u = new FtpConnect();
Command o = new Command(getResources().getText(R.string.adduser)
.toString(), ADDUSER, server);
u.setCommand(ADDUSER);
pd = ProgressDialog.show(actual,
getResources().getString(R.string.PleaseWait), o.getName());
actualThreadCommand = o;
Thread thread = new Thread(actual);
thread.start();
} else {
Toast.makeText(getBaseContext(),
getResources().getText(R.string.gagal), Toast.LENGTH_LONG)
.show();
}
}
そのコードは、このようなLinuxでの実行に使用されています
sh /home/add_user.sh username password
しかし、Androidから試してみると、ユーザー名とパスワードは1つになっています
コードは次のようになります
sh /home/add_user.sh usernamepassword
ユーザー名がirfanで、パスワードがirfanの場合、コードは検出されます
sh /home/add_user.sh irfanirfan
したがって、ユーザー名はirfanirfanであり、パスワードはありません
コードadd_user.shは
useradd $1; echo -e "$2\n$2" | passwd $1
解決する方法
final String ADDUSER = "sh /home/add_user.sh ".concat(sTextAdduser) .concat(sTextPassworduser);
.concat(sTextAdduser)の後はスペースである必要があります
したがって、Linuxでは実行されます
sh /home/add_user.sh irfan irfan