私が所有している参考書を見ると、
useradd -s /sbin/nologin userA
でユーザ名が登録できると説明されているのですが、command not foundになってしまいます。
vsftpdは動いていますし、
Anonymous接続もできる状態です。
不足しているパッケージなどがあるのでしょうか?
対応方法を教えていただきたく宜しくお願いします。
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をインストールしたほうが速いと思います。
もしかして一般ユーザで実行していませんか?
その場合はuseraddコマンドに対してパスが通っていないので、
command not foundになります。
suとかでrootユーザになってから実行してみてください。
参考
RedHatEnterpriseLinux ES4マニュアル
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/a...
回答ありがとうございます。
しかし、Rootユーザに変えて
コマンドをうってもcommand not found
になってしまいました。
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をインストールしたほうが速いと思います。
様々なケースに対応した回答を用意していただきありがとうございます。
1番の内容を元にパス登録をしたところ無事コマンドを認識しました。
ありがとうございます。しかし、
疑問に感じることが一つあります。
私はこの質問を出す前にfind / useradd
で、コマンドのファイルを検索しており、
そのときはファイルが見つかりませんでした(今検索しても同じ結果です)。
useraddに関係するファイルは、useradd以外の名前なのでしょうか?
こちらも応えていただけると大変助かります。
ファイルを検索するときは
$ find / -name "useradd"
と -name オプションでファイル名を指定すれば見つかると思います。
http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html
また同様の処理は locate というコマンドを使うと、より早く実行できます。
$ locate useradd
回答ありがとうございます。
useraddを検索することができました。
様々なケースに対応した回答を用意していただきありがとうございます。
1番の内容を元にパス登録をしたところ無事コマンドを認識しました。
ありがとうございます。しかし、
疑問に感じることが一つあります。
私はこの質問を出す前にfind / useradd
で、コマンドのファイルを検索しており、
そのときはファイルが見つかりませんでした(今検索しても同じ結果です)。
useraddに関係するファイルは、useradd以外の名前なのでしょうか?
こちらも応えていただけると大変助かります。