treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

(1/3)sambaサーバでユーザ作成手順

今日はsambaサーバでユーザの作成と削除を実施したので、自分の備忘録がてらご報告します。

最近のsambaサーバはsmbpasswdを使わずpdbeditコマンドを利用します。

※前提としてsamba4がDebian Jessieにaptでインストールされている環境とします。

ユーザ作成-その1

ユーザ作成のステップは二つのステップがあります。

  1. パソコンでユーザ作成
  2. サーバでユーザ作成

この(1)と(2)は同一のユーザID&パスワード文字列を入力して使えるようにする、ということです。

パソコン側のユーザ作成はひとまず今使っているユーザIDでもOKですし、
net user %USERNAME% %PASSWORD% /add
とコマンドで作成することもOKです。例えばここでは
net user USR-1 Pasword1! /add
と言うコマンドでユーザ名「USR-1」をパスワード「Pasword1!」で作成したと仮定して進めます。

ユーザ作成-その2

サーバ側のユーザ作成は

  1. OSにユーザを作成する
  2. sambaサーバに専用ユーザを作成する
  3. アクセスグループに追加

OSのユーザを作成するコマンド(ざっくりと基本的な)
useradd USR-1 -p Pasword1! -d /home/USR-1 -s /bin/false
パソコンと同じユーザ名をuseraddコマンドの引数にしてコマンドを実行します。
オプション「-p」に続けてパスワード入力と「-d」オプションに続けてホームディレクトリのパス指定と「-s」オプションに続けてログインシェルを指定(※シェルを使わないよう/bin/falseと指定)して実行しています。
個人的にOSがシステムで利用するユーザIDという四桁の数字を指定して生成しているので、
useradd USR-1 -u 1117 -p Pasword1! -d /home/USR-1 -s /bin/false
「-u」オプションを付けてユーザIDを決め打ちでユーザ作成しています。
さらに、ユーザが所属するアクセスグループが既に決まっていれば次のように
useradd USR-1 -u 1117 -g fsusers -p Pasword1! -d /home/USR-1 -s /bin/false
「-g」オプションに続けてグループ名(ここでは「fsusers」グループ)を指定してコマンドを実行します。

こうするとLinuxのOS上にユーザが作られます。確認するには…
$ cat /etc/passwd | grep USR-1
USR-1:x:1117:1005:,,,:/home/USR-1:/bin/false
表記の内、1117がユーザID、1005が所属するグループのID(ここではfsusersグループ)、加えて作成時に指定したホームディレクトリ「/home/USR-1」とログインシェル(無効を意味する)「/bin/false」が表記されます。

sambaサーバに専用ユーザを作成

ここまででOSのユーザが作成されたので、sambaサーバに専用ユーザを作成する段階に移ります。OSで作成されたユーザをsambaサーバに登録する、というような操作を実行します。これによってOS登録されているユーザがsambaサーバの共有フォルダにアクセス可能になるようsambaサーバで認証してくれるようになります。ようするにOSの認証以外にSAMデータベースのユーザIDパスワードを登録することで初めてsambaサーバのリソースの認証ができる、ということですね。
従来までのsambaサーバではsmbpasswdを利用することが多かったのですが、最近のバージョンのsambaサーバではpdbeditコマンドを利用してユーザ登録をします。
コマンドでパスワードまでを一気に指定するには、
(echo Pasword1!; echo Pasword1!) | pdbedit -a -t -u USR-1
このようにします。
「-a」オプションで指定るするユーザをSAMデータベースに追加する、と言う動きをします。「-t」オプションは"|"(※パイプシンボル)で結んだechoコマンドで出力したパスワード文字列を利用してパスワードの設定を実行する、と言う動きを指定するオプションです。最後の「-u」オプションに続けてユーザ名を入力します。
普通にユーザを追加するだけだと、
pdbedit -a -u USR-1
とすれば、「パスワードを入力してください」という対話式の画面が出てきてパスワード入力を要求されます。小ネタですがpdbeditコマンドではSAMデータベースのパスワード変更を実行できません。変更するには従来のコマンドsmbpasswdを使ってパスワード更新をする必要があります。この使い分けがちょっとややこしいさを醸し出しているかもしれませんね。
で、対話式の入力をしないのはパスワードを手入力することで間違えないため、echo出力のパスワードを「-t」オプションで吸い込んで登録しているわけです。

長くなったので

ユーザ作成した結果を確認する手順と削除の手順は翌日に続きます。