• ベストアンサー

SAMBAのユーザ

こんばんは~。 RedHatLinux9.0を駆使し、会社でサーバ構築をやっています。 とりあえず、社員全員分のユーザ(LINUXユーザ)を作り終え、SAMBAでも導入しようかなとSAMBAの情報をいろいろ調べてみると、またSAMBAユーザとパスワードを設定しなければいけないことがわかりました。(;; なにぶん社員が多いものでかなり億劫です。 どうにか回避策はありませんでしょうか。 こんなツールがあるよ~とかでいいので。 よろしく御教授願います。m(_ _)m ■SAMBA条件 ユーザごとに認証する。 パスワード入力は暗号化されたもので認証する。

質問者が選んだベストアンサー

  • ベストアンサー
  • 78tch
  • ベストアンサー率31% (50/157)
回答No.5

No3です。昔ソラリスでアカウント一括で作ったときのあんちょこ載せておきますので参考にしてください。 ユーザーアカウントの一括登録 ターゲットにするファイル(とその作成方法): /etc/passwd (エクセルで作って置き換え) /etc/shadow (シェルスクリプトで登録)→これをexpectにやらせる /etc/group (手入力) 適当なディレクトリに3つのファイルを置く。 /export/home/userpasswdlist.txt /export/home/passwd.sh /export/home/passwd.expect それぞれ 「ユーザー名:パスワード となっているリストファイル」 「リストを読み込んでexpectスクリプトに渡すシェルスクリプト」 「パスワード設定を自動化するexpectスクリプト」 である。内容は 「userpasswdlist.txt」 ユーザー名1:パスワード1 ユーザー名2:パスワード2 ユーザー名3:パスワード3 ...etc 「passwd.sh」(chmodで実行可能に。このスクリプトを実行することでパスワード設定が始まる。) #!/bin/sh IFS=: set -f while read line ; do set $line /export/home/passwd.expect $1 $2 done < /export/home/userpasswdlist.txt 「passwd.expect」(chmodで実行可能に。「passwd.sh」から呼ばれる。) #!/usr/local/bin/expect set user [lindex $argv 0] set password [lindex $argv 1] spawn passwd $user expect "*password:" send "$password\n" expect "*password:" send "$password\n" expect eof 「passwd.sh」を実行すると、指定したパスワードが暗号化されて「shadow」ファイルに登録され、アカウントが利用可能になる。 いちいち手でパスワードを打つのが面倒なら、こういう風にやるという方法もありますよ。

SafeGuard
質問者

お礼

あっ、ありがとうございます(^^) こういうのを待っていたんです。 expect……勉強不足です。 これを気にシェルスクリプト勉強しようと思います。 対話的なものを自動にできるなんてすばらしいですね。 ほんとに助かりました。 でも、社員の1/4ぐらいタイプしてしまった(笑

その他の回答 (4)

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.4

No3です。 > この作業が嫌なんです。 > 名前タイプして、パスワード2回タイプしての繰り返し… いやいや、だから、それをしなくてすむようにするのがexpectですよっ・・・てスクリプト使えないんですか・・・。(対話的なコマンドに自動で応えるっていうのはそういう意味ですよ~!) 「この作業」がいやだからスクリプトを勉強するんですよ、というのは置いておいて、 # mksmbpasswd.sh < /etc/passwd > /etc/samba/smbpasswd したら一発なはずですよ。この文の意味は分かりますか?ユーザーを作るとこの「/etc/passwd」ファイルにユーザー情報が書き込まれますが、それをそっくりそのままSAMBAのユーザー情報ファイルであるところの「/etc/samba/smbpasswd」に内容コピーしてやる、ということですよ? また私個人的にはRH社の9に対するサポートが終わっても、もともとRH社のサポートって使ったことないから気にしてないんですけど・・・場合によってはいまだに7.3使ったりすることもありますしね。(公開サーバーを運営しているわけではないので。)

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.3

あとPerlがつかえるなら crypt も。

SafeGuard
質問者

補足

Perlは使えません。 スクリプト言語はひとつも習得していません(^^;

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.2

# mksmbpasswd.sh < /etc/passwd > /etc/samba/smbpasswd かもしくは # mksmbpasswd.sh < /etc/shadow > /etc/samba/smbpasswd ですかね。 smbpasswdの書式とpasswdやshadowの書式を見比べてください。 UNIX上のユーザー作成にも、対話的なコマンドに指定した答えを返してくれるexpectが便利かと。

SafeGuard
質問者

補足

回答ありがとうございます。 これも結局SAMBAのパスワードファイルができるだけで また、ユーザごとにパスワードを入れてやらなければいけませんよね? この作業が嫌なんです。 名前タイプして、パスワード2回タイプしての繰り返し… やはりこれしかないんでしょうか?

回答No.1

はじめまして。 Googleで「SAMBA」、「passwd」、「ユーザ」、「同期」をキーワードにして調べてみたら passwdファイルと同期させる方法が書いてあるページを見つけました。 以上、ご参考までに。 では。

参考URL:
http://www.atmarkit.co.jp/flinux/samba/sambatips01/sambatips1.html
SafeGuard
質問者

補足

このページ見ました。 (1)は条件に適さない…平文のため (2)はもうSAMBAパスワードが入っていることを前提条件としている。←これが億劫 (3)一番可能性があるが詳しい説明がない。 ありがとうございました。

関連するQ&A