Hatena::Groupmylinux

今日も元気にlinux

2008-11-23

[][][]sambaについて(プロセス管理) 21:50 sambaについて(プロセス管理) - 今日も元気にlinux を含むブックマーク はてなブックマーク - sambaについて(プロセス管理) - 今日も元気にlinux sambaについて(プロセス管理) - 今日も元気にlinux のブックマークコメント

sambaとはLINUXのファイル共有プログラムである。windowsで言うところのsmbってところかな…。ありゃプロトコルだけど。

基礎から学ぶWindowsネットワーク:第20回 ファイル共有プロトコルSMB/CIFS(その1) (1/3) - @IT

LINUXsambaの実行プログラムはnmbd(NetBIOSのネームサーバーデーモン)とsmbd(sambaサーバデーモン)である。

# whereis nmbd
nmbd: /usr/sbin/nmbd /usr/share/man/man8/nmbd.8.gz
# whereis smbd
smbd: /usr/sbin/smbd /usr/share/man/man8/smbd.8.gz

こいつらを常時起動でアクセス待ち受けでも良いのだが、ポートを監視してアクセスがあったときだけサービスを起動する、インターネット系スーパーサーバ"xinetd"を使うとメモリが節約できる。

xinetdの使い方

1./etc/servicesファイルの設定

これはxinetd用インデックスファイルみたいなもの。どのポートがどのサービスを受け持っているか定義する。といってもsambaインストール時に追記されている事がほとんどなので編集の必要はないことが多い。

netbios-ns 137/udp
netbios-ssn 139/tcp

2./etc/xinetd.d以下にファイル作成

先ほどのインデックスファイルから参照されるファイルを作成。

$ cat /etc/xinetd.d/netbios-ns
service netbios-ns
{
        disable = no
        socket_type = dgram
        protocol = udp
        wait = yes
        user = root
        server = /usr/sbin/nmbd
        only_from = 192.168.0
}

$ cat /etc/xinetd.d/netbios-ssn
service netbios-ssn
{
        disable = no
        socket_type = stream
        protocol = tcp
        wait = no
        user = root
        server = /usr/sbin/smbd
        only_from = 192.168.0
}

3.xinetdの再起動

スーパーサーバ再起動

/etc/init.d/xinetd restart

ちなみにこの時点では普通に起動したsambaプロセスが残ったままである。ので、killするかPC再起動。何もしていないときはsambaプロセスは起動していないが…

$ ps -aux | grep smb
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
user01   3322  0.0  0.2   4976   740 pts/1    R+   13:17   0:00 grep smb

手元のwindowsPCからアクセスに行くとsmbdプロセスが起動される。

[keisuke@eeco init.d]$ ps -aux | grep smb
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
user01   3354  2.1  1.3  14872  4444 ?        Ss   13:19   0:00 smbd
user01   3359  0.0  0.2   4980   752 pts/1    R+   13:19   0:00 grep smb

余談:chkconfig smb offするとどうなるか?

普通にxinetdで機能します。chkconfigで操作できるのは起動時にどうするかの設定であって、起動してからxinetd経由で起動するsmbにはノータッチ。


[][]sambaの設定(ユーザー・共有管理) 21:50 sambaの設定(ユーザー・共有管理) - 今日も元気にlinux を含むブックマーク はてなブックマーク - sambaの設定(ユーザー・共有管理) - 今日も元気にlinux sambaの設定(ユーザー・共有管理) - 今日も元気にlinux のブックマークコメント

sambaを使うにはOSのユーザーと別途ユーザー登録をする必要がある。コマンドは"smbpasswd"を使う。passwdのsamba版みたいなもん。ここでWindows(というかアクセス元PC)と同じユーザー名・パスワードを設定すると、samba共有にアクセスするときいちいちユーザー名・パスワードを入力しなくて良いので便利。

samba自体の詳しい設定は/etc/samba/smb.confをいじる。まぁここらへんは詳しく追い出すときりがないので省略。文法ミスがないかのチェックにtestparmを使う。

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

LinuxからWindowsの共有ファイルをマウント

Windows上のファイルにLinuxからアクセスするには

Windows上のファイルにLinuxからアクセスするには(mount.cifs編) − @IT

LinuxからWindows共有がかかっているディレクトリマウントするにはsmbmountかcifsを使用する。ちなみにファイルシステム"smbfs"としてマウントする時は、smbmountコマンドとmount -t smbfsの2つが使えるが、cifsはmountコマンドのみである。といってもmountに統一してくれた方がやりやすくていい。

smbmount //192.168.1.101/share/ /home/user01/tmp
mount -t smbfs (-o user=user01) //192.168.1.101/share /home/user01/tmp
mount -t cifs (-o user=user01) //192.168.1.101/share /home/user01/tmp

※括弧でくくってあるが、userは実質必須。

CentOS5ではsmbfsが廃止されcifsを使うようになっているので、smbfsは今後なくなっていくんじゃないかなぁ。

SMBとCIFSの違いはこちら。

基礎から学ぶWindowsネットワーク:第20回 ファイル共有プロトコルSMB/CIFS(その1) (1/3) - @IT

SMBの方がNetBIOSを使用した比較的古い共有プロトコル。CIFSはTCP/IPオンリーの新しめの共有プロトコル

ちなみにnfs

LINUXの伝統的なファイル共有にNFSというのがあるのだが、さまざまなOSが混在する今では今ではあまり使われなくなったらしい。ただし試験には出る。

ufjjkcagniufjjkcagni2014/06/24 10:57ipdyanzmjovy, <a href="http://www.kmiaejnjsa.com/">shnnpeuoli</a> , [url=http://www.zrvjpvlmxr.com/]btyvgtylvw[/url], http://www.pgbhbonjyn.com/ shnnpeuoli