人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

useradd コマンドでユーザー作成時に、指定コマンドを実行することは出来ませんか。

/etc/skel のように home のひな形を設置するように
ユーザ作成と同時にユーザmysql データベース作成をするなど、あわせて行いたいことがあるのですが。

●質問者: takuya
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ふこ

準備が面倒ですが実際試したらできました。
mint@mint ~/Desktop $ sudo su
mint Desktop # cd
mint ~ # mkdir -p ./bin
mint ~ # tee >./bin/useradd
#!/bin/sh
/usr/sbin/useradd -m -U -s /bin/bash $1
echo $1
mint ~ # pwd
/root
mint ~ # PATH=/root/bin:$PATH
mint ~ # chmod 700 ./bin/useradd
mint ~ # useradd homura
homura
mint ~ # su homura
homura@mint /root $


takuyaさんのコメント
useradd コマンドを自分で作ってスワップするですね。 ありだと思います。 linux の機能として、こういうスクリプトを何処に設置するべきでしょうか? useradd では /etc/skel にひな形を置くのと同様に、この/bin/usradd ファイルを置くべき場所に、取り決めや設定方法があると思うのですが、何処になるのでしょうか。 できるだけ、Linuxの推奨に準拠したいと思っています。

TransFreeBSDさんのコメント
http://ja.wikipedia.org/wiki/Filesystem_Hierarchy_Standard http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/hier.7.html っても考え方次第かな。 穏健な方からいくと、 - useraddと違うのだからこのコマンドは別の名前にしそれを使うルールにする。 -- 使うのはrootだけなので/root/binに入れる -- システムワイドにしたいので/usr/local/sbinに入れる。 - useraddコマンドを間接的に置き換える。 -- rootだけなので/root/binに入れ、PATHで優先させとく。この回答の方法 -- システムワイドにしたいので/usr/local/sbinに入れる。 - /usr/sbin/useraddを完全に置き換える -- オリジナルは/usr/sbin/useradd.origなどにする -- /usr/libに入れる あたりかと。 前半は副作用が少ない、中二つはpathの影響を受ける等の違いがあります。

a-kuma3さんのコメント
PATH で優先させるよりは、シェルの alias を使う方が、まだ好き。 どちらも type 一発で正体は分かるとは言え、PATH はスクリプトの中で書き換えたりすることがあるから。 でも、一般的なコマンド名で違う動きをさせると、必ず混乱が訪れます。

ふこさんのコメント
FHSで判断するとしても、誰が何を使ってuseraddするときに何かを実行するか、将来ふつうのuseraddを使うか、どのくらいの頻度でuseraddするときに何かを実行するか、それはrootがexitするまでの間だけか、などによってLinuxの推奨は変わると思います。 $PATHならexitで元に戻りますが、そもそも名前がuseraddでなくても大丈夫なら普通に$(pwd)/useradd.shに書いて./useradd.shとかのほうがいいと思います。

takuyaさんのコメント
コマンドの管理(FHSを考えて何処に置くのか)という話なら仰るとおりですね。 /etc/skel と同じように、/etc/pre-useradd, etc/post-useradd みたいなコマンドを置く場所が決まっていれば完璧なのでしょうけど、man 見る限りなさそうだし。 mysql のデータベース作成が必要なユーザを作成するときは、post-useradd を/usr/local/sbinに置いて実行しようと思います。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ