sambaインストールから取敢えず動くまで【パスワードの設定編】


1. ユーザの追加

  # /usr/bin/smbpasswd -a User_name           <= 新しいユーザーの追加
    New SMB password:                         <= パスワード入力
    Retype new SMB password:
    Added user User_name.


2. 既存のユーザーのパスワード変更

  # /usr/bin/smbpasswd User_name              <= 既存のユーザーのパスワード変更


3. LinuxのユーザーをSambaパスワードファイルに追加する

  # /usr/bin/mksmbpasswd.sh < /etc/passwd で追加する内容が確認できる。


4. グループのユーザーを全部登録する

  # grep GroupID /etc/passwd | /usr/bin/mksmbpasswd.sh >> smbpasswd


5. ユーザーのアクセスを無効にする

  # /usr/bin/smbpasswd -d User_name


6. ユーザーのアクセスを有効にする

  # /usr/bin/smbpasswd -e User_name


7. ユーザーを消去する

  # /usr/bin/smbpasswd -x User_name

  ※ /etc/samba/smbpasswd のパーミッションは600が望ましい。
  ※ 3の時点でパスワードファイルは以下のようになっているので、
     作成されたユーザーについて /usr/bin/smbpasswd を使ってパスワードを設定する。
     user:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:〜
     ユーザーが大量にいて、デフォルトのパスワードを全員に付加するには
     "user password" のリストからawkを使い、TeraTermのマクロ・ファイルを作成する。
     (/usr/bin/smbpasswdはパスワードの入力に対してリダイレクトを受け付けない為)

sambaインストールから取敢えず動くまで【smb.confの変更編】


1. 設定ファイル・グローバルな設定

#============= Global Settings 設定ファイル・グローバルな設定 =================
[global]
    workgroup          = WORKGROUP              <= Windows の Workgroup 名を指定
    server string      = Samba Server           <= Windows の 「コンピュータの説明」に相当する
    hosts allow        = 192.168.xx.            <= 接続を許可するアドレス(複数記述可)
    max log size       = 100                    <= ログファイルの最大サイズ (Default : 50Kbytes)
    encrypt passwords  = yes                    <= パスワードを暗号化して転送(95,古いNTは暗号化機能がない)
    name resolve order = host lmhosts bcast     <= 名前解決の順位設定(自分がWinsサーバーになる場合)
    wins support       = yes                    <= winsサーバーになる
    ;wins server       =                        <= wins support と排他的(コメントにすること)
    ;wins proxy        = yes                    <= wins support と排他的(コメントにすること)
    dns proxy          = yes                    <= winsサーバーになる時は必要
    domain master      = yes                    <= Domain master になる(他にいない時設定)
    dos charset        = cp932                  <= 文字コードの設定(2.x と 3.x で異なるので注意)
    display charset    = cp932                  <= SWATの画面に表示されるコード


#================ Share Definitions 設定ファイル・共有ディレクトリの設定 ====================
[homes]                                         <= 個人のホームディレクトリに対する設定
    comment           = Home Directories
    browseable        = no                      <= Windowsからホームが見れない(yes=見える)
    writable          = yes                     <= 上がyesの時は以下5行を設定
    path              = /home/%u
    create mask       = 0600
    force create mode = 0600
    directory mask    = 0700

[tmp]                                           <= tmpディレクトリを誰でも読み書きできる設定
    comment           = Temporary file space
    path              = /tmp
    read only         = no
    public            = yes                     <= パスワードが必要ない
    create mask       = 0660
    force create mode = 0660
    directory mask    = 0770

[hoge]                                          <= 任意のディレクトリを共有する設定
    comment           = hoge hoge
    path              = /home/hoge              <= 共有するパス
    valid users       = user0, user1            <= 使用できるユーザーを限定
    public            = no                      <= パスワードが必要
    writable          = yes                     <= 書き込み可能
    create mask       = 0660                    <= AND演算される属性
    force create mode = 0660                    <= OR演算で必ず設定される属性
    directory mask    = 0770                    <= ディレクトリに対する属性

sambaインストールから取敢えず動くまで【環境設定編】


1. smb.conf

ソースを展開したディレクトリにsmb.confのディストリビューション別サンプルがあるので
--with-configdir で指定したディレクトリにコピーする

2. smbpasswd

--with-privatedir=で指定した場所に作成する.
なければ、コマンド使用時、自動的作成してくれる


3. SWAT

  SWAT(sambaをGUIで操作するツール)を使用する場合、/etc/services に swat 901/tcp がなければ追加する。
  /etc/xinetd.d/swat を新規作成する。内容は以下の通り

  -----

  service swat
  {
          port		= 901
          socket_type	= stream
          wait		= no
          user		= root
          server		= /usr/sbin/swat
          log_on_failure	+= USERID
          disable		= no
  }

  -----

  SWATでの認証用に/etc/pam.d/sambaを新規作成。内容は以下の通り

  -----

  #%PAM-1.0
  auth       required     /lib/security/pam_stack.so service=system-auth
  account    required     /lib/security/pam_stack.so service=system-auth
  password   required     /lib/security/pam_stack.so service=system-auth
  session    required     /lib/security/pam_stack.so service=system-auth

  -----

  Sambaのログを定期的に切り換えるために、/etc/logrotate.d/sambaを新規作成。内容は以下の通り

  -----

  /var/log/samba/log.nmbd {
      postrotate
      /usr/bin/killall -HUP nmbd
      endscript
  }

  /var/log/samba/log.smbd {
      postrotate
      /usr/bin/killall -HUP smbd
      endscript
  }


4. 起動と停止設定

  sambaを起動停止させる為に、/etc/rc.d/init/smbを新規作成。内容は以下の通り

  -----

  #!/bin/sh
  #
  # chkconfig: 345 91 35
  # description: Starts and stops the Samba smbd and nmbd daemons \
  #       used to provide SMB network services.

  # Source function library.
  . /etc/rc.d/init.d/functions

  # Source networking configuration.
  . /etc/sysconfig/network

  # Check that networking is up.
  [ ${NETWORKING} = "no" ] && exit 0

  # Check that smb.conf exists.
  [ -f /etc/samba/smb.conf ] || exit 0

  # See how we were called.
  case "$1" in
    start)
       echo -n "Starting SMB services: "
       daemon smbd -D
       daemon nmbd -D
       echo
       touch /var/lock/subsys/smb
       ;;
    stop)
       echo -n "Shutting down SMB services: "
       killproc smbd
       killproc nmbd
       rm -f /var/lock/subsys/smb
       echo ""
       ;;
    status)
       status smbd
       status nmbd
       ;;
    restart)
       echo -n "Restarting SMB services: "
       $0 stop
       $0 start
       echo "done."
       ;;
    *)
       echo "Usage: smb {start|stop|restart|status}"
       exit 1
  esac


※ 生成したsmb のパーミッションを755に変更する


5. コンフィグチェック

# chkconfig smb on

sambaインストールから取敢えず動くまで【インスト編】


ソースの入手
ftp://ftp.samba.gr.jp/pub/samba/


ソースからインストール

$ tar -zxvf samba-*.*.tar.gz
$ cd samba-*.*/source
$ ./configure
$ make
# su -
# make install


configure 例 -----

./configure \
    --prefix=/usr \
    --localstatedir=/var \
    --with-lockdir=/var/lock/samba \
    --libdir=/etc/samba \
    --with-configdir=/etc/samba \
    --with-privatedir=/etc/samba \
    --with-codepagedir=/usr/share/samba/codepages \
    --with-fhs \
    --with-sambabook=/usr/share/swat/using_samba \
    --with-swatdir=/usr/share/swat \
    --with-quotas \
    --with-smbmount \
    --with-automount \
    --with-pam \
    --with-pam_smbpass \
    --with-syslog \
    --with-utmp \
    --with-msdfs \
    --with-acl-support \
    --with-winbind \
    --with-mmap \
    --without-smbwrapper \
    --with-vfs \
    --with-i18n-swat

PHPXrefの設定


クロスリファレンスドキュメントの自動生成ツール
source:http://phpxref.sourceforge.net/

# tar -zxvf phpxref-0.6.tar.gz
# cd phpxref-0.6
# vi phpxref.cfg (Windowsの場合は、phpxref.bat)
# ./phpxref.pl


phpxref.cfg ---

    7  # The base directory containing all of your PHP code to be indexed
    8  # This could just be a directory containing symlinks to the real directories
    9  #SOURCE=C:\webserver\sites\www.myhost.com\htdocs
    10 SOURCE=/usr/local/apache2/htdocs/aic_doc
    11 
    12 # The directory in which you'd like the output to be written
    13 #OUTPUT=C:\phpxref\output
    14 OUTPUT=/usr/local/apache2/htdocs/phpxref-0.6/output/aic
    15
    16 # Project name; something short
    17 PROJECT=aba-osakafu Project v1.00


phpxref.pl --- 192行目と 213行目を

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
↓<meta http-equiv="content-type" content="text/html;charset=euc-jp">


sample_header.html --- 8行目を

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
↓<meta http-equiv="content-type" content="text/html;charset=euc-jp">

mime_type一覧

"ai" => "application/postscript",
"aif" => "audio/x-aiff",
"aifc" => "audio/x-aiff",
"aiff" => "audio/x-aiff",
"asc" => "text/plain",
"au" => "audio/basic",
"avi" => "video/x-msvideo",
"bcpio" => "application/x-bcpio",
"bin" => "application/octet-stream",
"bmp" => "image/bmp",
"cdf" => "application/x-netcdf",
"class" => "application/octet-stream",
"cpio" => "application/x-cpio",
"cpt" => "application/mac-compactpro",
"csh" => "application/x-csh",
"css" => "text/css",
"dcr" => "application/x-director",
"dir" => "application/x-director",
"dms" => "application/octet-stream",
"doc" => "application/msword",
"dvi" => "application/x-dvi",
"dxr" => "application/x-director",
"eps" => "application/postscript",
"etx" => "text/x-setext",
"exe" => "application/octet-stream",
"ez" => "application/andrew-inset",
"gif" => "image/gif",
"gtar" => "application/x-gtar",
"hdf" => "application/x-hdf",
"htm" => "text/html",
"html" => "text/html",
"ice" => "x-conference/x-cooltalk",
"ief" => "image/ief",
"iges" => "model/iges",
"igs" => "model/iges",
"jpe" => "image/jpeg",
"jpeg" => "image/jpeg",
"jpg" => "image/jpeg",
"js" => "application/x-javascript",
"kar" => "audio/midi",
"latex" => "application/x-latex",
"lha" => "application/octet-stream",
"lzh" => "application/octet-stream",
"man" => "application/x-troff-man",
"me" => "application/x-troff-me",
"mesh" => "model/mesh",
"mid" => "audio/midi",
"midi" => "audio/midi",
"mif" => "application/vnd.mif",
"mov" => "video/quicktime",
"movie" => "video/x-sgi-movie",
"mp2" => "audio/mpeg",
"mp3" => "audio/mpeg",
"mpe" => "video/mpeg",
"mpeg" => "video/mpeg",
"mpg" => "video/mpeg",
"mpga" => "audio/mpeg",
"ms" => "application/x-troff-ms",
"msh" => "model/mesh",
"nc" => "application/x-netcdf",
"oda" => "application/oda",
"pbm" => "image/x-portable-bitmap",
"pdb" => "chemical/x-pdb",
"pdf" => "application/pdf",
"pgm" => "image/x-portable-graymap",
"pgn" => "application/x-chess-pgn",
"png" => "image/png",
"pnm" => "image/x-portable-anymap",
"ppm" => "image/x-portable-pixmap",
"ppt" => "application/vnd.ms-powerpoint",
"ps" => "application/postscript",
"qt" => "video/quicktime",
"ra" => "audio/x-realaudio",
"ram" => "audio/x-pn-realaudio",
"ras" => "image/x-cmu-raster",
"rgb" => "image/x-rgb",
"rm" => "audio/x-pn-realaudio",
"roff" => "application/x-troff",
"rpm" => "audio/x-pn-realaudio-plugin",
"rtf" => "text/rtf",
"rtx" => "text/richtext",
"sgm" => "text/sgml",
"sgml" => "text/sgml",
"sh" => "application/x-sh",
"shar" => "application/x-shar",
"silo" => "model/mesh",
"sit" => "application/x-stuffit",
"skd" => "application/x-koan",
"skm" => "application/x-koan",
"skp" => "application/x-koan",
"skt" => "application/x-koan",
"smi" => "application/smil",
"smil" => "application/smil",
"snd" => "audio/basic",
"spl" => "application/x-futuresplash",
"src" => "application/x-wais-source",
"sv4cpio" => "application/x-sv4cpio",
"sv4crc" => "application/x-sv4crc",
"swf" => "application/x-shockwave-flash",
"t" => "application/x-troff",
"tar" => "application/x-tar",
"tcl" => "application/x-tcl",
"tex" => "application/x-tex",
"texi" => "application/x-texinfo",
"texinfo" => "application/x-texinfo",
"tif" => "image/tiff",
"tiff" => "image/tiff",
"tr" => "application/x-troff",
"tsv" => "text/tab-separated-values",
"txt" => "text/plain",
"ustar" => "application/x-ustar",
"vcd" => "application/x-cdlink",
"vrml" => "model/vrml",
"wav" => "audio/x-wav",
"wbmp" => "image/vnd.wap.wbmp",
"wbxml" => "application/vnd.wap.wbxml",
"wml" => "text/vnd.wap.wml",
"wmlc" => "application/vnd.wap.wmlc",
"wmls" => "text/vnd.wap.wmlscript",
"wmlsc" => "application/vnd.wap.wmlscriptc",
"wrl" => "model/vrml",
"xbm" => "image/x-xbitmap",
"xls" => "application/vnd.ms-excel",
"xml" => "text/xml",
"xpm" => "image/x-xpixmap",
"xwd" => "image/x-xwindowdump",
"xyz" => "chemical/x-pdb",
"zip" => "application/zip"

my.confの設定例

[mysqld]
port         = 3306                  # 起動ポート番号。セキュリティ面から変更しておいた方がいい場合もある
set-variable = key_buffer=256M       # メモリに余裕がある場合に指定。
                                     # 検索に使われるインデックスをバッファに保存する際のメモリサイズ
set-variable = max_allowed_packet=1M # 入力データ保持のための最大バッファサイズ。
                                     # 画像など、大きなデータ挿入でこの制限に引っ掛かる可能性がある
set-variable = table_cache=256       # 頻繁なアクセスに対し、
                                     # データのキャッシュでディスクのI/O負荷を減らす場合に使用
set-variable = sort_buffer=1M        # 値を大きくすることでORDER BYやGROUP BYを
                                     # クエリーに用いた場合に速度を上げる
set-variable = record_buffer=1M      # 値を大きくすることでインデックスを含まないクエリーの実行速度を上げる
set-variable = long_query_time=1     # mysqladmin statusコマンドで
                                     # 表示されるSlow queriesにカウントされる場合のしきい値。単位は秒