ラベル Samba の投稿を表示しています。 すべての投稿を表示
ラベル Samba の投稿を表示しています。 すべての投稿を表示

2007/08/11

WindowsXPからSambaへアクセス時のエラー

Sambaは私には難しいです。
色々な事が起こります。

力不足を感じます。

OpenSolarisのNexentaOS Alpha 7をSambaサーバにしているのですが、WindowsXPからSamba領域にアクセスするとフリーズしたようになってしまいます。
Samba領域内のフォルダがまったく見えていないという訳ではありません。
Vine Linux 4.1やDebian GNU/Linux 4.0からNexentaのSambaにアクセスしても問題ないように思えます。

NexentaOS Alpha 7にインストールしているSambaは次のとおりです。
root@julie:~# dpkg -l samba*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name
Version Description
+++-============
-==================-==================================================
ii samba 3.0.24-2nexenta2 a LanManager-like file and printer server for Unix
un samba-client (no description available)
ii samba-common 3.0.24-2nexenta2 Samba common files used by both the server and the client
ii samba-doc 3.0.24-2nexenta2 Samba documentation
un samba-doc-pdf (no description available)

NexentaのSambaが吐き出しているログを見ると、次のようなエラーが延々と出ています。
[2007/08/11 23:35:36, 0] smbd/notify_fam.c:fam_check_reconnect(136)
failed to connect to FAM service

ネットで検索したところ、smb.confの[global] 設定セクションに次の行を追加するとよいとありました。
fam change notify = no
追加したところ、確かにWindowsXPからSamba領域へのアクセスに問題が発生しなくなりました。


ちなみに"fam change notify"はSamba 3.0.25で廃止されたようです。
「Samba 3.0.25 リリースノート」

FAMっていうのは「FAM (File Alteration Monitor)」の事だと思うのですが、よく分かりません。

2007/08/06

Nexentaをファイル/IMAPサーバにする

OpenSolarisカーネルのNexentaOS Alpha 7をファイル(Samba・NFS)/IMAPサーバにすることにします。

つい先日Debian/GNU Linux 4.0に移行したばかりですが、Linux以外のも使っていた方が視野が広がるかな、と。
言い訳ですけど。

あいかわらずよく分からずにやっていますので、信用しないでください。


○ NFSの設定
/share/shareをNFS共有にします(参考)。
/share/shareはzfsコマンドで作成したZFSファイルシステムです。

zfsコマンドを使用して次のコマンドを叩いただけです。
/share/shareを共有ディレクトリにします。
root@julie:~# zfs set sharenfs=rw share/share


○ Sambaの設定
NexentaOS Alpha 7に用意されている3.0.24を使用することにしました。
$ dpkg -l|grep samba
ii samba 3.0.24-2nexenta2 a LanManager-like file and printer server fo
ii samba-common 3.0.24-2nexenta2 Samba common files used by both the server a
ii samba-doc 3.0.24-2nexenta2 Samba documentation


smb.confはDebian/GNU Linux 4.0のsmb.confをほぼそのまま使おうと思ったのですが、なぜかSambaがコアダンプしてしまいます。

コアダンプの件は後で調べるとして、取り急ぎNexentaに入っていたsmb.confを基に必要なところだけ修正して使用することにしました。
使用していないプリンタの設定が残っていたりしますので、後で見直します。
[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup =
Windowsグループ名

# server string is the equivalent of the NT Description field
server string = %h server (CIFS, Nexenta)

unix charset = UTF-8
dos charset = CP932

# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no

#### Debugging/Accounting ####
# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m

# Put a capping on the size of the log files (in Kb).
max log size = 1000

# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
syslog = 0

# Do something sensible when Samba crashes: mail the admin a backtrace
panic action = /usr/share/samba/panic-action %d


####### Authentication #######

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
; security = user

# You may wish to use password encryption. See the section on
# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
encrypt passwords = true

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam

obey pam restrictions = yes

; guest account = nobody
invalid users = root

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan < for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .


############ Misc ############
# Most people will find that this option gives better performance.
# See smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/speed.html
# for details
# You may want to add the following on a Linux system:
# SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY

#======================= Share Definitions =======================
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
public = no
writable = no
create mode = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

[share]
comment = Julie share
path = /share/share
browseable = no

# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
; writable = no
writable = yes

一番のキモは
   unix charset = UTF-8
dos charset = CP932

でしょうか(参考記事)。


○ IMAPの設定
Nexentaにはcyrus-imapd-2.2というのがあり、使おうとして設定までしたのですが、今まで使っていたuw-imapdの方が私には分かりやすかったためこちらを使うことにしました。

ftp://ftp.cac.washington.edu/imap/からimap-2006j2.tar.Zをもらってきて展開しmakeしました。

make時にOpenSSL関係と思われるエラーが出てmakeに失敗しました。
$ make gso

〜 省略 〜

In file included from tcp_unix.c:29,
from osdep.c:63:
ip_unix.c: In function 'ip_nametoaddr':
ip_unix.c:165: warning: pointer targets in passing argument 1 of 'lcase' differ in signedness
ip_unix.c:165: warning: pointer targets in passing argument 1 of 'gethostbyname' differ in signedness
osdep.c:246:20: error: x509v3.h: No such file or directory
osdep.c:247:17: error: ssl.h: No such file or directory
osdep.c:248:17: error: err.h: No such file or directory
osdep.c:249:17: error: pem.h: No such file or directory
osdep.c:250:20: error: buffer.h: No such file or directory
osdep.c:251:17: error: bio.h: No such file or directory
osdep.c:252:20: error: crypto.h: No such file or directory
osdep.c:253:18: error: rand.h: No such file or directory

〜 省略 〜

sslstdio.c:163: error: request for member 'sslstream' in something not a structure or union
sslstdio.c:163: error: request for member 'obuf' in something not a structure or union
sslstdio.c:164: error: request for member 'octr' in something not a structure or union
sslstdio.c:166: error: request for member 'optr' in something not a structure or union
sslstdio.c:166: error: request for member 'obuf' in something not a structure or union
sslstdio.c:167: error: request for member 'octr' in something not a structure or union
make[3]: *** [osdep.o] Error 1
make[3]: Leaving directory `/export/home/xxx/Source/imap-2006j/c-client'
make[2]: *** [gso] Error 2
make[2]: Leaving directory `/export/home/xxx/Source/imap-2006j/c-client'
make[1]: *** [OSTYPE] Error 2
make[1]: Leaving directory `/export/home/xxx/Source/imap-2006j'
make: *** [gso] Error 2


OpenSSL関連のパスが正しくないようです。
Makefileでパスを指定している箇所はすぐ見付かりました。そもそも"gso"の指定が間違っているのかもしれません。

対処方法としてはSSLTYPE=noneを指定することにしました。
SSLは今のところ使う予定が無いためです。
$ make gso SSLTYPE=none

uw-imapdのインストールは、make後に出来たimapdを/usr/local/sbinの下にコピーしただけです。

c-client.cf, cram-md5.pwdの作成し/etc/inetd.confに記述を追加しました。
# cat /etc/c-client.cf
I accept the risk for IMAP toolkit 4.1.
set new-folder-format mbx
set mail-subdirectory Mail
set disable-plaintext 0

# cat /etc/cram-md5.pwd
ユーザ名 パスワード

# cat /etc/inetd.conf |grep imap
imap stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/imapd

そして、inetdを再起動しました。
# pkill -HUP inetd

2007/07/31

サーバOS変更と文字コードについて

以前書いたとおり、我が家でファイルサーバ・IMAPサーバとして使っているOSをPlamo Linux 4.2.1からDebian GNU/Linux 4.0に変更しました。


懸念事項として、Plamo Linux 4.2.1からDebian GNU/Linux 4.0の変更に伴い、日本語ファイル名やフォルダ名の文字コードに変更があったことです。
EUC-JPからUTF-8になりました。

2007年7月31日現在においては、保存される日本語ファイル名はPlamo Linux 4.2.1の環境で使用していたEUC-JPとなっています。
その環境で、クライアントで文字化けしないようにするための文字コードの変換作業については下記のとおりとなっています。
多分。

NFSでSambaと同様に文字コードの変換って出来ないのでしょうか?
「[linux-users:99504] NFSサーバーでEUCをShift-JISに変換してエクスポートできますか?」を読んだ感じでは出来なさそうですが・・・。
ちょっと調べてみたいです。

また、OSのデフォルトの文字コードが変わることによりどこまで影響が出るのか分かっていないので、こちらもちびちび調べたいと思います。

2007/07/28

Sambaの設定でつまずいた

Debian GNU/Linux 4.0を導入して設定をいじっていますが、Sambaの設定でつまずいてしまいました。

Sambaの設定はいつもどこかでつまずいている気がします。
情けないです。

インストールしてあるSambaのバージョンです。
$ dpkg -l|grep samba
ii samba 3.0.24-6etch4 a LanManager-like file and printer server fo
ii samba-common 3.0.24-6etch4 Samba common files used by
both the server a
ii samba-doc 3.0.24-6etch4 Samba documentation



Sambaパスワードの設定は次のように行いました。
# smbpasswd -a xxx
New SMB password:
Retype new SMB password:
Added user xxx.


(1) SWATにアクセスできない
これは/etc/hosts.denyと/etc/hosts.allowで許可されていないことが原因でした。

/etc/hosts.allowに次の行を追加したところ、動作するようになりました。
swat : xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy



(2) Samba公開フォルダにアクセスできない

SWATでいくら設定を変更してもクライアントから公開フォルダにアクセスできない現象が発生していました。

syslogを見ると次のようなエラーが出力されてsmbdが起動していませんでした。
Jul 28 09:01:55 localhost smbd[4309]:
[2007/07/28 09:01:55, 0] smbd/server.c:main(960)
Jul 28 09:01:55 localhost smbd[4309]:
ERROR: failed to setup guest info.


smb.confを見ると[global]セクションに次のような行がありました。
  guest account =


SWATで「guest account」の「項目のデフォルト値」を押すと「guest accout」には「nobody」が設定され、この状態でsmbdを再起動したところエラーにはならずにsmbdが起動し、クライアントからSambaの公開フォルダを参照することが出来ました。


現在のsmb.confは次のようになっています。
# Samba config file created using SWAT
# from xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)
# Date: 2007/07/28 09:05:53

[global]
dos charset = CP932
# unix charset = UTF-8
unix charset = eucJP-ms
workgroup = XXXXX
server string = Julie Samba [Debian GNU/Linux]
update encrypted = Yes
ldap ssl = no

[share]
comment =
path = /mnt/share
read only = No
hosts allow = xxx.xxx.xxx.0
veto files = /mnt/share/yyyy/

(2007/7/28 追記)
"dos charset = CP932", "unix charset = eucJP-ms" を追加。
"print command =", "lpq command =", "lprm command =" を削除。


日本語表示のため、「dos charset」と「unix charset」を追加しました。
unix charsetをeucJP-msにしたのは、現状ではSamba公開フォルダ内の日本語のフォルダ名はEUC-JPにしてあるからです。
(「日本語文字化けをどうにかする (その4)」参照)

2007/07/20

ZaurusをSambaクライアントに

「ZaurusをNFSクライアントに」ではZaurus(SL-C3000)をNFSクライアントにしましたが問題がありました。

問題1
ファイル名の日本語が表示出来ていません。

以前Sambaサーバ上のファイル名はShift-JISにしました。
NFSサーバとして使用している場合にはEUC-JPになっているはずです。多分。

ZaurusではSambaとNFSの両方で日本語表示できないということは、ZaurusはShift-JISでもEUC-JPでもないということでしょうか?
もしかしてUTF-8?

問題2
1Gくらいあるフォルダを"cp -ar"でNFS領域にコピーしたのですが、途中でcpがデッドロックとやらになってしまい止まってしまいました。

ログ(syslog)とか見てみたのですが、参考になるようなログはみつかりませんでした。
この場合どのログをみればよかったのでしょうか?
デッドロックの問題は原因がつかめていません。
まだ設定が不足している箇所も多数あると思いますが・・・。



上記のような問題が発生しているのを避けるため、NFSではなくSambaを使用してJULIE(NFSサーバ兼Sambaサーバ)にアクセスしてみるのはどうかと考えました。
本来であればNFSの設定を見直すべきかもしれませんが。

NFSの文字コード指定ってあるのか分かりませんが、Sambaならあるのは以前確認済みですし、日本語表示もなんとかなるのではないかとほのかな期待を抱いてやってみることにします。

(1) Zaurus用smbmountを取得
こちらからsmbmount_0.1_arm.ipkを取得し、インストールしました。
(後ほど述べますが、ここでインストールしたsmbmount_0.1_arm.ipkはその後アンインストールしました)

(2) JULIE(Sambaサーバ)の領域をマウント
#sudo smbmount //julie/share /mnt/julie/
-o username=xxx,ip=xxx.xxx.xxx.xxx

としてマウントしました。


(1)~(2)までで、とりあえずZaurusをSambaクライアントとして使用できるようになりました。
NFSを使用したときよりSambaを使っている方が動作が軽快な気がします。
(もちろんNFS設定をチューニングすればいいのかもしれません)

ところが、Zaurusのファイルマネージャではやはりファイル名の日本語表示が出来ていませんでした。

smbmountのオプションとしてcodepageとiocharsetがありますが、(1)でインストールしたsmbmount_0.1_arm.ipkでは対応していませんでした。

探してみたところcodepageとiocharsetのオプションに対応したsmbmountを配布されているサイトがありました。
こちらからsmbmount_2.2.8a-ja-1.0_arm.ipkをいただいてきてインストールし、次のようなコマンド引数でマウントしました。
sudo smbmount //julie/share /mnt/julie/
-o fmask=666,username=xxx,ip=xxx.xxx.xxx.xxx,
codepage=cp932,iocharset=utf8


結果、Sambaサーバ上の日本語ファイル名のファイルを、Zaurusのファイルマネージャで日本語表示出来るようになりました。



ちなみに、smbmountのオプションとして渡したiocharsetとcodepageは、Sambaのマニュアルには次のようにあります。
iocharset=<arg>
Linux 側のコードページ-文字コード変換 (NLS) で使用される文字コードを設定する。引数は iso8859-1 のようなキャラクタセットの名前でなくてはいけない。 (注: カーネル 2.4.0 以降のみサポートされる)


codepage=<arg>
サーバ側で使用される文字コードを指定する。 iocharset オプションを参照。例えば cp850 などである。 (注: カーネル 2.4.0 以降のみサポートされる)

私が行った設定の場合、iocharsetの説明中のLinuxとはZaurusを指し、codepageのサーバとはSambaサーバであるJULIE(Plamo Linux)を指します。

また、CP932はマイクロソフトのShift-JIS拡張らしいです。

2007/07/16

日本語文字化けをどうにかする その4

「日本語文字化けをどうにかする その3」の続きです。

前回まででNFSクライアントであるVine Linux 4.1では文字化けを解消できましたが、Windows PCからのアクセスを確認していません。

SambaサーバのPlamo Linux(ホスト名 JULIE)がマウントしているReiserFS領域をWindowsで参照する際に文字化けするか確認し、問題があれば対応したいと思います。


「日本語文字化けをどうにかする その1」で行ったのはNTFSファイルシステムをLinuxでマウントする際のオプションを変更しただけでファイルやフォルダをいじった訳ではないので問題ありません。

気になるのは、「日本語文字化けをどうにかする その2」で行ったファイル名やフォルダ名をShift-JISからEUC-JPに変更してしまっている点です。

これをSambaでWindowsから参照できるようにした場合に、正常に読むことができるのでしょうか?


確認のため、「日本語文字化けをどうにかする その2」で行った手順を再度行います。

(1) SALIE(NFSクライアント)からNFSマウントしたReiserFSファイルシステム上のファイル名・フォルダ名が文字化けしているのを確認。
Konquerorで確認します。

(2) convmvコマンドを使用してファイル名・フォルダ名をShift-JISからEUC-JPに変換。
$ convmv -r -f sjis -t euc-jp * --notest
mv "xxx/PDF/gZ" "xxx/PDF/トラ技"
mv "xxx/Docs/Zaurus/J�txt" "xxx/Docs/Zaurus/開発環境.txt"
mv "xxx/Pictures/WallPaper/t@R" "xxx/Pictures/WallPaper/ファルコム"
mv "xxx/Movie/O/コピー ~ multimodal_arm.tar"
mv "ubN}[N/C莅lzh" "ubN}[N/お気に入り.lzh"
mv "./ubN}[N" "./ブックマーク"
Ready!


(3) SALIE(NFSクライアント)で文字化けしていないことを確認。
Konquerorで確認します。
化けていたのは「ブックマーク」というフォルダでした。

(4) Windows(Sambaクライアント)で文字化けしているかを確認。
やっぱり化けてました。


文字化けが発生していたため、JULIE(Sambaサーバ)の設定を変更することにより解決できないか検討します。

(5) Sambaの設定を変更。
smb.confの[global]に以下の記述を追加。
coding system = euc
client code page = 932


各設定値の説明はマニュアルにありました
マニュアルのcoding systemの項からの引用です。
coding system (G)

このパラメータは、 Samba が受けとった Shift-JIS の日本語文字を、 クライアントが使っているclient code pageから UNIX ファイルシステムのファイル名にどのように対応づけるかを指定する。 このパラメータは、client code page が932(日本語 Shift-JIS)の時のみ有効である。オプションは以下のとおり:



次にclient code pageの項からの引用です。
client code page (G)

このパラメータは、Samba にアクセスするクライアントが利用している DOS コードページを指定する。 Windows や DOS クライアントで利用されているコードページを確認するには、 DOS コマンドプロンプトを開いて、chcpコマンドを入力する。 これによりコードページが表示される。 USA 版の MS-DOS、Windows 95、Windows NT のデフォルトは 437 である。 西ヨーロッパ版のこれら OS のデフォルト値は 850 である。


(6) Sambaを再起動。
JULIE(Sambaサーバ)のsmbdとnmbdの両方を再起動しました。
両方再起動したのは念のためです。

(7) Windows(Sambaクライアント)で文字化けしているかを確認。

文字化けは解消されています。

(8) Windows(Sambaクライアント)が作成した日本語ファイル名・フォルダ名の確認。
Windows(Sambaクライアント)で作った日本語名のフォルダをJULIE(Sambaサーバ)へコピー。

(9) SALIE(NFSクライアント)でWindowsで作成した日本語名のフォルダを確認。
Konquerorで確認します。

OK!

文字化け対策はとりあえず一通り出来たかなと思います。
何か忘れていることはないかな?

日本語文字化けをどうにかする その1

最近はノートPCにインストールしたVine Linux 4.1でKDEを使っていることが多いです。

その際はWindowsXPマシンも同時に立ち上げ、WindowsXPのVMWareにインストールしてあるPlamo LinuxもWindowsXP起動と同時に立ち上げ、ファイルサーバなどとして使用することもあります。
(うちのネットワーク環境についてはこちら)

起動しているVineとPlamoのホスト名は次のようになっています。
Plamo Linux: JULIE
Vine Linux: SALIE


JULIEではファイル共有用のハードディスクを2台マウントして、NFSやSambaでローカルネットワーク上に開放しています。

ファイルシステムは1台はNTFS, もう1台はReiserFSです。

この2台のハードディスクに入っている日本語の名前がついたファイルやフォルダがSALIEのKDE Konquerorで見ると文字化けしてしまいます。
(ちなみにGNOMEのNautilusでは、Konquerorでは文字化けしているのに文字化けしないものもありました。)

この文字化けを、今さらながらなんとかしたいと思います。


結論から言うと、問題の対策は次の通りに行いました。

・NTFSファイルシステムの文字化け
 → マウント時にオプション"nls=euc-jp"を指定する
 (「日本語文字化けをどうにかする その2」で検証)

・ReiserFSファイルシステムの文字化け
 → ファイル名やフォルダ名をShift-JISからEUCに変更する
 (「日本語文字化けをどうにかする その3」、「日本語文字化けをどうにかする その4」で検証)



なお、数年前はPCを使用する際はLinuxを使用することが多かったのに、その際はほとんど問題になりませんでした。

その理由はこんな感じでしょうか。
・Linux上で自分が作ったファイルの名前に日本語でつけることは絶対にない。

・Windowsを使っている際も自分なりのファイル命名規則があった。
 それは、日本語ファイル名は使わないということ。
 しかし、しばらくLinuxを使用していない間に日本語ファイル名を使ってしまっていた。

・iTunesで作成した音楽ファイルに日本語名がついていることが多い。
 Linuxを常用している頃はcdparanoia + LAMEでMP3ファイルを作成していた。


NTFSとReiserFSでは行った対策が異なりました。
分けて記述しておきます。


「日本語文字化けをどうにかする その2」に続く。

2007/07/14

我が家のネットワーク

2007年7月14日現在の、我が家のネットワーク環境です。

うちでは2台のPCで3つのOSを同時に使用しています。

以下の括弧中はホスト名です。
PC
(a) タワー型PC
 OS: WindowsXP Professional (ELIE)

(b) ノートPC (WindowsとLinuxのデュアルブート)
 OS: WindowsXP Home Edition (SHIRO)
 OS: Vine Linux 4.1 (SALIE)

(a)のELIEではVMWare Serverを使用しております。

VMWareゲストOS
 OS: Plamo Linux (JULIE) Samba/NFS/IMAP

(a)のタワー型PCにはハードディスク3台を接続してます。
その内2台はWindowsXP(ELIE)で使用しておりますが、もう1台は全ての領域をReiserFSでフォーマットしており、JULIEでマウントしています。

このReiserFSの領域の多くはSamba/NFSを使用して開放され、JULIEはファイルサーバとなっています。


また、JULIEはプロバイダからfetchmailを利用してPOP3でメールを定期的に受信し、それを今度はIMAPサーバとしてローカルネットワーク上で公開しています。

おかげで(b)にインストールしてあるWindows(SHIRO)やLinux(SALIE)だけではなく、ZaurusやWindows Mobileマシンからでもメールを参照することが出来ます。