- PR -

Linuxの自動ユーザー登録

1
投稿者投稿内容
DS
会議室デビュー日: 2006/02/05
投稿数: 14
投稿日時: 2006-02-05 23:42
現在Webサービスを実施している者なのですが、Webのフォームと連動してLinuxにユーザー登録することはできませんでしょうか?
Linux自体はFedoraCore4を利用しWebにはperlを用いて記述したスクリプトがあります

いろいろ調べた結果newusersというコマンドがあることを知り、webで内部用に保存すると同時に
id:pass:userid:groupid:name:fullpath:loginscript
というファイルを作成し、cronでファイルがあればnewusersを実行するスクリプトを作成し、自動実行(1分毎)されると思ったのですが、うまく動作しません。
スクリプトはif文でファイルの存在を確認してあればnuwusersを実行するというものでエラーはありません。
そもそもnewusersでユーザー一人だけでも登録できるのでしょうか?

それともっと効率のいいユーザー登録の方法があるのでしょうか?
ご存知の方はご回答いただければと思います。
Lichtenstein
ベテラン
会議室デビュー日: 2003/11/06
投稿数: 61
投稿日時: 2006-02-06 10:04
Webサービスと、Webフォームと、perlと、cronってそれぞれ随分違うモノなので、
原因を切り分けられないと、解決は難しいですよ。
あと「うまく動作しません」という説明は意味が無いので、詳しく書きましょう。

newusersを使ったことは無いんですけど、多分root権限が必要なコマンドですよね。
とりあえずダミーのファイルを使って、そのcronの設定で問題なく動くかどうか
確かめるのが良いと思います。

で、問題が無かったら、そのファイルを作るプログラムを調べて……という風に
遡って調べると解決するでしょう。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2006-02-06 11:04
useradd コマンドに setuid することで実現可能でしょうが、セキュリティ的な観点からお勧めしません。

他のコマンドを使うにしても、root ユーザにしか書き込み権限がない /etc/passwd ファイルや /etc/shadow ファイルを編集するためには setuid の設定が必須であり、やはりお勧めできません。

特定のファイルの存在を cron 等で定期的に監視し、それを発見すると useradd コマンドを実行するような仕組みを作られるのは、まだましな方法だと思いますが、若干のタイムラグが発生してしまいますね。


[ メッセージ編集済み 編集者: あんとれ 編集日時 2006-02-06 11:07 ]
DS
会議室デビュー日: 2006/02/05
投稿数: 14
投稿日時: 2006-02-07 00:59
お手数おかけします
ご回答いただきありがとうございます。

一応自前のサーバーなのでroot権限は持っておりrootでcronを実行しております
corn自体は正常に動作しています。(別のスクリプトを動作で確認)

なお以前はperlでデータを書き込んだ後手動でnewuser userdata.dat みたいに実行していたのですが、同じシステムを組み込んで現在利用しています。
perl上からファイルの生成までもトラブルがないことは確認しております。

そこでnewusersコマンドをcronを使わず実行してみたのですが、正常に登録されるときとまったくだめなときがあります。
基準はよくわかりません。仮にその段階でエラーになるのがcron上でもエラーになるのなら納得はできるのですが、解決策がほしいところです

とりあえずcronでファイルを見つけたらuseraddで登録という手もあるようなのでスクリプトを作ってみたいと思います。
Lichtenstein
ベテラン
会議室デビュー日: 2003/11/06
投稿数: 61
投稿日時: 2006-02-07 09:20
>そこでnewusersコマンドをcronを使わず実行してみたのですが、正常に登録されるときとまったくだめなときがあります。

「まったくだめなとき」という説明は役に立ちません。
エラーの説明ってやつが難しいのはわかるんですが。

(別のスクリプトを動作で確認) というのも、何をしたのか伝わらないと思います。

ファイルのアクセス権限と、内容と、実行ユーザーと、既存のグループとユーザーが
同じなのに、newuserコマンドの挙動が違うとすると、useraddに乗り換えた方が
早いかもしれませんね……
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2006-02-07 13:34
Linux のアカウントではなく、Webという閉じた世界のみでの独自のアカウント管理システム、、Postgres とか MySQL にアカウント名とパスワード、有効期限と更新日、ログイン日時とかのフィールドを作成して、管理する。
DS
会議室デビュー日: 2006/02/05
投稿数: 14
投稿日時: 2006-02-08 09:02
皆様ご迷惑をおかけしました。原因は既存ユーザーのFTP再登録と新規ユーザーのディレクトリ作成の上FTPに登録の手順で既存ユーザーもディレクトリ作成コマンドを実行してしまっていたためそこでエラーになっていた模様です。

ただnewusersコマンドを単独で動かした場合に正常な形式であるにもかかわらずエラーでとまるのがよくわからないのですが今回は何とかなりそうです。

ほんとにご迷惑をおかけしました。
1

スキルアップ/キャリアアップ(JOB@IT)