RedHatLinux9のFTPユーザ登録方法について質問です。

私が所有している参考書を見ると、
useradd -s /sbin/nologin userA
でユーザ名が登録できると説明されているのですが、command not foundになってしまいます。
vsftpdは動いていますし、
Anonymous接続もできる状態です。
不足しているパッケージなどがあるのでしょうか?
対応方法を教えていただきたく宜しくお願いします。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2007/05/23 17:58:00
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:dev_zer0 No.2

回答回数332ベストアンサー獲得回数25

ポイント100pt

1.useraddにパスが通っていない

 通常のLinuxなら/usr/sbinか/sbinに存在するはずなので

 /usr/sbin/useradd -s /sbin/nologin userA

 または

 /sbin/useradd -s /sbin/nologin userA

 とするとうまくいくかもしれません


 現在のパスを表示させたい場合は、

 echo $PATH

 とするとパスリストが表示されるので、そこに/usr/sbinがないなら

 useraddにパスが通っていないと断定できるので、必要と思われるなら追加してください。


2.useraddコマンドが入っていない、何故かadduserが入っている

 この場合、

 find / -name useradd 2> /dev/null

 とすることでuseraddコマンドがどこにあるかをルート直下から探すことができます

 2> /dev/nullというのはアクセス許可されていないディレクトリを探索すると

 エラーメッセージが出てくるのでそれを抑止するために付けます。

 http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html

 見つからない場合、useraddコマンドは入っていないと断定できます。

 次にadduserを探してみます。

 find / -name adduser 2> /dev/null

 見つかった場合、useraddと使い方は同じなのでそれを使ってもよいと思います。


3.useraddもadduserも存在しない

 その場合、いろいろなファイルを編集する必要があるので面倒になってきます

 基本的には/etc/passwd, /etc/shadow, /etc/groupの編集と

 ホームディレクトリの作成を行えばよいのですが、

 useraddをインストールしたほうが速いと思います。

id:harunoharuno

様々なケースに対応した回答を用意していただきありがとうございます。

1番の内容を元にパス登録をしたところ無事コマンドを認識しました。

ありがとうございます。しかし、

疑問に感じることが一つあります。

私はこの質問を出す前にfind / useradd

で、コマンドのファイルを検索しており、

そのときはファイルが見つかりませんでした(今検索しても同じ結果です)。

useraddに関係するファイルは、useradd以外の名前なのでしょうか?

こちらも応えていただけると大変助かります。

2007/05/23 16:00:41

その他の回答2件)

id:yuu9821 No.1

回答回数14ベストアンサー獲得回数0

ポイント27pt

もしかして一般ユーザで実行していませんか?

その場合はuseraddコマンドに対してパスが通っていないので、

command not foundになります。

suとかでrootユーザになってから実行してみてください。

参考

RedHatEnterpriseLinux ES4マニュアル

http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/a...

id:harunoharuno

回答ありがとうございます。

しかし、Rootユーザに変えて

コマンドをうってもcommand not found

になってしまいました。

2007/05/23 15:52:21
id:dev_zer0 No.2

回答回数332ベストアンサー獲得回数25ここでベストアンサー

ポイント100pt

1.useraddにパスが通っていない

 通常のLinuxなら/usr/sbinか/sbinに存在するはずなので

 /usr/sbin/useradd -s /sbin/nologin userA

 または

 /sbin/useradd -s /sbin/nologin userA

 とするとうまくいくかもしれません


 現在のパスを表示させたい場合は、

 echo $PATH

 とするとパスリストが表示されるので、そこに/usr/sbinがないなら

 useraddにパスが通っていないと断定できるので、必要と思われるなら追加してください。


2.useraddコマンドが入っていない、何故かadduserが入っている

 この場合、

 find / -name useradd 2> /dev/null

 とすることでuseraddコマンドがどこにあるかをルート直下から探すことができます

 2> /dev/nullというのはアクセス許可されていないディレクトリを探索すると

 エラーメッセージが出てくるのでそれを抑止するために付けます。

 http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html

 見つからない場合、useraddコマンドは入っていないと断定できます。

 次にadduserを探してみます。

 find / -name adduser 2> /dev/null

 見つかった場合、useraddと使い方は同じなのでそれを使ってもよいと思います。


3.useraddもadduserも存在しない

 その場合、いろいろなファイルを編集する必要があるので面倒になってきます

 基本的には/etc/passwd, /etc/shadow, /etc/groupの編集と

 ホームディレクトリの作成を行えばよいのですが、

 useraddをインストールしたほうが速いと思います。

id:harunoharuno

様々なケースに対応した回答を用意していただきありがとうございます。

1番の内容を元にパス登録をしたところ無事コマンドを認識しました。

ありがとうございます。しかし、

疑問に感じることが一つあります。

私はこの質問を出す前にfind / useradd

で、コマンドのファイルを検索しており、

そのときはファイルが見つかりませんでした(今検索しても同じ結果です)。

useraddに関係するファイルは、useradd以外の名前なのでしょうか?

こちらも応えていただけると大変助かります。

2007/05/23 16:00:41
id:pyopyopyo No.3

回答回数377ベストアンサー獲得回数98

ポイント26pt

ファイルを検索するときは

$ find / -name "useradd"

と -name オプションでファイル名を指定すれば見つかると思います。

http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html

また同様の処理は locate というコマンドを使うと、より早く実行できます。

$ locate  useradd
id:harunoharuno

回答ありがとうございます。

useraddを検索することができました。

2007/05/23 17:57:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません