0

FTPユーザーを作成するためのコマンドを含むcronジョブを介して実行される.shファイル(たとえば、adduser.sh)があります。

adduser.shファイルは次のようになります...

#!/bin/bash
mkdir /var/www/vhosts/domain/path;
useradd -d /var/www/vhosts/domain/path -ou <uid> -g <group> -s /bin/false <username>;
echo <password> | passwd <username> --stdin;

これが私の問題です。を使用してSSH経由で直接実行した場合...

sh adduser.sh

...問題はなく、意図したとおりに機能します。

しかし、cronjobを実行させると、ディレクトリは作成されますが、ユーザーは追加されません。

何が得られますか?

4

2 に答える 2

1

useradd現状では、として知られている代わりの方法がありadduserます。DebianまたはUbuntuでは、perlスクリプトであり、を使用してユーザーを作成したり、グループに割り当てたり、ホームディレクトリを作成したりadduserするなどの一連の機能を実行します。adduser

adduserマニュアルページによると-

adduserまた、addgroupuseradd、groupadd、usermodプログラムなどの低レベルツールのフロントエンドとして使いやすく、デフォルトではDebianポリシーに準拠したUIDとGID値を選択し、骨格構成でホームディレクトリを作成し、カスタムスクリプトを実行します。

Fedora、RedHat、およびCentOSでは、adduserはへの単なるシンボリックリンクuseraddです。

[root@hobbit ~]# which /usr/sbin/adduser
lrwxrwxrwx 1 root root 7 2012-09-20 20:20 /usr/sbin/adduser -> useradd

上記のOSを使用している場合は、ファイルにadduserリダイレクト2>して、add_user.logファイルをチェックして問題が発生していないかどうかを確認できます。

于 2012-09-21T01:20:44.763 に答える
0

/ usr /bin/をuseradd関数に追加するだけでこれを解決しました。

#!/bin/bash
mkdir /var/www/vhosts/domain/path;
/usr/bin/useradd -d /var/www/vhosts/domain/path -ou <uid> -g <group> -s /bin/false <username>;
echo <password> | passwd <username> --stdin;

私が正しい軌道に乗るのを手伝ってくれたみんなに感謝します。これが誰かを助けてくれることを願っています。

于 2012-09-21T16:42:37.733 に答える