![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e6f04cf)
Linuxでスクリプトを作りたいのですが初めてでしてアドバイスいただきたいのですが。「ユーザを加え、パスワードの設定。その後確認画面として/etc/passwordと/etc/shadowにて新規に作成したユーザとパスワード”のみ”表示される」とゆうのが条件です。更にwhileを使ったユーザを作成したのちのy/nの応答でnを入力するまでは繰り返しユーザの追加が行えるようにしたいのですが。
途中まで教科書片手に作りましたが行き詰まってしまいました。
Variableに混乱しています。
CONTINUE=y
while [ "$CONTINUE" != "n" ]
do
echo "adding a user"
useradd -d /etc/shadow "$USERNAME"
echo -e "type a user name" /c
read USERNAME
passwd "$PASSWORD"
echo -e "type a password" /c
read PASSWORD
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
私もNo1さんに賛成だなぁ。
なんか既にめちゃくちゃだもの。useraddのオプションもヘンだし。スクリプトを作る意義は聞かないことにして(勉強のためだと理解するとして)、このような処理をするときは、すべての変数を取得してから目的のコマンド(useradd)を動かすのが普通です。
また、取得したパスワードの変数を表示するのは可能ですが、/etc/shadow からパスワードを導き出すのは不可能です(パスワードフィールドは不可逆に暗号化されてます)。
とりあえず足し算のループあたりから作るのが安全は無いでしょうか。
この回答への補足
色々なことをいっぺんにやろうとしすぎてました、知識が無いにも関わらず。まずuseraddからしっかりと理解してみます。あと環境変数はまだ不明なのですがファイルの頭に記述すればよいのでしょうか。
最初のCONTINUE=yのように
ループのほうはなんとかできました。
後半はこうなりました。
ehco "do you want to repear (y/n):"
read CONTINUE
done
ehco end run
No.1
- 回答日時:
とりあえずスクリプトで自動化する前に, 「1人追加するために全てコマンドラインから入力する」ことを考えて, どのようなコマンドを入力しているかを確認した方がいいような気がするなぁ.
その上で, 複数人を追加するときに「どこがどのように変わるのか」を調べる, と.
この回答への補足
友達の力を借りつつなんとか出来ました
CONTINUE=y
while [ "$CONTINUE" != "n" ]
do
echo -e "enter new user name>>>\c"
read USERNAME
useradd -d /home/$USERNAME $USERNAME
passwd $USERNAME
echo
grep $USERNAME /etc/passws
echo
grep $USERNAME /etc/shadow
echo
echo -e "would you like to add another user(y/n):\c"
read CONTINUE
done
echo "action completed"
今回特に苦しんだのがreadコマンドでユーザ名入力するのが一番頭にこなければいけないことでした。
しかしここでまだひとつ疑問が沸いたのですが環境変数はいつも=で先に定義しなくてもよいのでしょうか?
このスクリプトを見るとUSERNAMEはreadコマンドで先に出てきてる意外は=で定義されていません。こうゆう定義の仕方もあるとゆうことでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php ログイン 1 2022/11/01 00:24
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP MySql PHP 2つのテーブルをJOINで結合 user_idで抽出 1 2023/01/03 14:04
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- ルーター・ネットワーク機器 NUROのルータF660Aについて 2 2022/09/07 11:44
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- HTML・CSS HTML <input type=password>の黒丸の色を変える方法 3 2022/11/23 13:56
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パスワード設定していないユー...
-
リモートデスクトップ接続でパ...
-
Linuxでパスワード変更時に「it...
-
Webminにログインできない
-
Ubuntu(zorin os)でパスワード...
-
root のパスワード
-
ログインパスワードが変更できない
-
vsftpd でのユーザーに対するパ...
-
SSH公開鍵認証はパスワードを変...
-
Windows11の再インストールにつ...
-
Time Machine設定 ユーザ名と...
-
アウトルックで送信時に「名前...
-
DNSサーバを設定したのですがns...
-
”Tortoise SVN” と ”Subversio...
-
AWSでSSH接続をしたいのですが...
-
プロファイルエラー
-
/var/adm/messagesから当日分の...
-
循環参照にならない方法があっ...
-
「DNSサーバーを自動的に取得す...
-
エクセルで#N/Aを含めた平均値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リモートデスクトップ接続でパ...
-
パスワード設定していないユー...
-
ログインパスワードが変更できない
-
Linuxでパスワード変更時に「it...
-
vsftpd でのユーザーに対するパ...
-
Ubuntu(zorin os)でパスワード...
-
パスワード変更を促すメッセー...
-
Time Machine設定 ユーザ名と...
-
root のパスワード
-
共有フォルダにアクセスする際...
-
Windows11の再インストールにつ...
-
PasswordEye のMac用
-
rlogin と rhosts の設定
-
Linux パスワードを無しにして...
-
squirrelmail ユーザー名とパ...
-
CUPSを使ったネットワークプリ...
-
SSH公開鍵認証はパスワードを変...
-
Gmailのパスワード変更後マック...
-
フォルダにパスワードをかけた...
-
セキュリティーで保護されてい...
おすすめ情報