Samba3

更新日 2012-04-10 (火) 15:50:47

Sambaでファイル共有(Linux ユーザ単位)

Linux SambaサーバにWindowsとMACを接続

/etc/samba/smb.conf

[global]

workgroup = MATSUNET

#アクセス時のマシン名(アクセス時は\\(IPアドレス)\でもOK)
netbios name = ISM-SMB

#許可アドレス(ネットワーク)
hosts allow = 127. 10.

#プリンタは使用しない
load printers = no 

#「Yes」のときLinuxユーザのパスワードも変更される
既定値: unix password sync = no 

# パスワードの暗号化
既定値: encrypt passwords = yes 

起動

# /etc/rc.d/init.d/smb start
# smbpasswd -a okada
New SMB password:
Retype new SMB password:
(いろいろwarnigが出た)
Added user okada.

ユーザ確認

# pdbedit -L
okada:500:Okada
# pdbedit -u okada -v
Unix username:        okada
NT username:
Account Flags:        [U          ]
(略)
Logon time:           0
Logoff time:          木, 07  2月 2036 00:06:39 JST
Kickoff time:         木, 07  2月 2036 00:06:39 JST
Password last set:    水, 18  1月 2012 05:00:27 JST
Password can change:  水, 18  1月 2012 05:00:27 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

バッチでユーザ登録

# (echo ****** ;echo ******)| /usr/bin/smbpasswd -s -a okada3
Added user okada3.

Windowsからは ネットワークコンピュータで「\\(IPアドレスで接続)\」

MAC OSXからは

Mac OS Xの[移動]メニューにある[サーバへ接続]を選択する。

smb://サーバ名(またはIPアドレス)/共有名

参考

ファイル共有

インストール

# apt-get install samba

設定

/etc/samba/smb.cofで最低以下を設定

[global]

netbios name = ISMDOMAIN <-- ホスト名(\\ISMDOMAIN\)

# charset (euc-jp)
   unix charset = eucJP-ms
   dos charset = cp932
   display charset = eucJP-ms

workgroup = ISM

server string = ismsamba 

security = user <-- /etc/samba/smbpasswdのユーザを使用(普通これを選択)

文字コード

unix charset	UNIX側での文字コードの設定(eucJP-ms UTF-8)
dos charset	Windows側での文字コードの設定。日本語を利用する場合は、CP932 
display charset	swat で表示される文字コードの指定

samba.confのチェック

#  testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[sambadoc]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

起動

# /etc/rc.d/init.d/smb start

ユーザ登録

ユーザはlinuxアカウントを事前に登録しておく必要がある

smb.cofで以下がコメントアウトのとき
; passdb backend = tdbsam

/etc/passwdファイルからsmbpasswdを作成
ファイルは作成されるがパスワードは作成されないので注意すること。あとからか作成する。

# cd /etc/samba
# /usr/bin/mksmbpasswd.sh < /etc/passwd > smbpasswd

注)mksmbpasswd.shに実行件がないときは追加する

パスワード作成

# /usr/bin/smbpasswd okada
New SMB password: ******
Retype new SMB password: ******

また、新しいユーザを追加sたときはlinuxアカウントを発行して(/sbin/nologinでもいいみたい)smbpasswdに以下ように同じように行を追加して/usr/bin/smbpasswd でパスワードを作成する

/etc/samba/smbpasswd

#
# SMB password file.
#
okada:500:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:[U          ]:
LCT-47725CAF:Okada
admin:502:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:[U          ]:
LCT-477273B8:
vmwinxp$:503:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:[W
]:LCT-47727365:

注)$がついているのはマシン名

Windowsから

ネットワークから 「\\(IPアドレス)\」でアクセスこのときWindowsのユーザも上記で設定したユーザ、パスワードでアクセスする

SambaでPDC

/etc/samba/smb.conf

[global]

workgroup = ISM   <--(1)

server string = ism samba

security = user

local master = yes

os level = 65 <--32より大きくする

domain master = yes

preferred master = yes

domain logons = yes

;logon path = \\%L\Profiles\%U
logon path =  <--移動プロファイルを使用しなときは明示てきにこのように指定する 

netbios name = ISMDOMAIN
logon drive = H:
logon home = \\homeserver\%u\winprofile
admin users = administrator     <--このアカウントでWindows側をドメインに参加させる(2)

[homes]
   comment = %U's Home Directory
   browseable = no
   writable = yes
;  create mask = 0644
;  directory mask = 0755
 
[netlogon]
path = /var/samba/netlogon
read only = yes
write list = ntadmin

[Profiles]
/var/samba/profiles
read only = no
create mask = 0600
directory mask = 0700

[global]で「passdb backend = tdbsam」と指定するとパスワードが/etc/samba/passdb.tdbのようなバイナリファイルに保存され、パスワードファイルがsmbpasswdではなくなる。このときは以下のようにユーザ追加を行うが通常はこのオプションは無効にして、テキストファイル(smbpasswd)であつかったほうか簡単?(セキュリティ的には無視すれば)

# /usr/sbin/useradd admin
# pdbedit -a -u admin
params.c:Parameter() - Ignoring badly formed line in configuration 
file: /var/samba/profiles
new password: *******
retype new password: ********
Unix username:        admin
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-2947849931-3299972202-1454051791-2004
Primary Group SID:    S-1-5-21-2947849931-3299972202-1454051791-513
Full Name:
Home Directory:       \\homeserver\admin\winprofile
HomeDir Drive:        H:
Logon Script:
Profile Path:         \\localhost\Profiles\admin
Domain:               ISM
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          火, 19  1月 2038 12:14:07 JST
Kickoff time:         火, 19  1月 2038 12:14:07 JST
Password last set:    水, 26 12月 2007 23:48:21 JST
Password can change:  水, 26 12月 2007 23:48:21 JST
Password must change: 火, 19  1月 2038 12:14:07 JST
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 

マシンの追加
PDCが接続許可するマシンを追加する。マシン名の後は$を必ずつける。

# /usr/sbin/useradd vmwinxp$

# pdbedit -a -m vmwinxp
params.c:Parameter() - Ignoring badly formed line in configuration 
file: /var/samba/profiles
Unix username:        vmwinxp$
NT username:
Account Flags:        [W          ]
User SID:             S-1-5-21-2947849931-3299972202-1454051791-2006
Primary Group SID:    S-1-5-21-2947849931-3299972202-1454051791-513
Full Name:
Home Directory:
HomeDir Drive:        (null)
Logon Script:
Profile Path:
Domain:               ISM
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          火, 19  1月 2038 12:14:07 JST
Kickoff time:         火, 19  1月 2038 12:14:07 JST
Password last set:    水, 26 12月 2007 23:50:38 JST
Password can change:  水, 26 12月 2007 23:50:38 JST
Password must change: 火, 19  1月 2038 12:14:07 JST
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

ユーザ(マシン)削除

# pdbedit -x -u okada2

ユーザ(マシン)表示

# pdbedit -L
params.c:Parameter() - Ignoring badly formed line in configuration
file: /var/samba/profiles
VMWINXP$:4294967295:VMWINXP$  <==マシン
administrator:504:

Windowsの設定

「マイコンピュータ」右クリック ->「システムプロパティ」->
コンピュータ名の変更でドメインを(1)で指定したWorkGroupを、
ユーザを(2)で指定したユーザ、パスワードで行う。

その後再起動

sudoコマンド

root権限でコマンドを実行するときは以下のようにuserのパスワードを聞かれる。これを聞かれずに実行する。

$ sudo pdbedit -L
[sudo] password for okada:
okada:500:Okada
okada2:501:YOakada

/etc/sudoersに以下の行を追加するとsmbpasswdコマンドはユーザokadaがsudoするときはパスワードを聞かれない

okada ALL=(ALL) NOPASSWD:/usr/bin/smbpasswd

ただし、このファイルは0440であるため編集時は0640にして、戻す必要がある

$ sudo smbpasswd -x okada3
Deleted user okada3.
okada ALL=(ALL) NOPASSWD:ALL #okadaユーザはパスワード入力を必要としない
okada2 ALL=(ALL) PASSWD:ALL #okada2ユーザはパスワード必要
ユーザ ホスト = (権限) コマンド

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS