プライベートで実験的に使う場合、全ドライブをroot等で見たい時があります。
運用サーバーで使うことはありえないですが、とりあえず備忘録。
↓の方に自動化スクリプトがあります。
またトラブル発生時の原因をいち早く突き止めるため、
iptablesやSELinuxはオフにしておきましょう。
vi /etc/selinux/config #SELINUX=enforcing SELINUX=disabled その後システムリブート要。
Sambaをインストール後、もともとある/etc/samba/smb.confをリネームし
以下の内容で新規にsmb.confを作成します。ネットワーク設定とかは自分の環境に合わせます。
yum install samba
[global] encrypt passwords = yes dos charset = CP932 unix charset = UTF-8 # display charset = UTF-8 workgroup = WORKGROUP hosts allow = 127. 192.168.1. security = user [share] path = / writable = yes printable = no public = yes create mode = 755 directory mode = 755
※display charsetは古いパラメーターかも。2016/02/11時点で書いているとエラーになります。
Sambaユーザーは、大前提としてUNIXユーザーが必要なので
まずはUNIXユーザーを作成。その後Sambaユーザーとして
UNIXユーザーを指定してパスワードを設定する。
ユーザー作成が必要なら追加。
sudo useradd taiyakisan
その後、Sambaアカウントの追加(&パスワードの設定)。
pdbeditはSamba 3.x以降の場合。2.x以前の場合はsmbpasswdを使う。
sudo pdbedit -a -u taiyakisan
追加したユーザーの設定は以下で見られる。
sudo pdbedit -L -v
パスワードの変更はsmbpasswdを使おう。
sudo smbpasswd taiyakisan
サービス開始とシステム起動時の自動起動設定。
sudo service smbd start sudo service nmbd start sudo chkconfig smbd on sudo chkconfig nmbd on
CentOS7などsystemdの場合
systemctl start smb systemctl start nmb systemctl enable smb.service systemctl enable nmb.service
元々のsmb.confを退避して最低限の設定のsmb.confを作成するスクリプト。
Sambaインストール後に以下のスクリプトを実行してください。
#!/bin/sh function file_backup() { srcfile=$1 dstfile=$2 i=0 while [ $i -le 100000 ] do if [ ! -e ${dstfile}.${i} ] then cp -p ${srcfile} ${dstfile}.${i} if [ $? -eq 0 ] then echo "Copying file succeeded(${dstfile}.${i})." break else echo "Copying file failed(${dstfile}.${i})." fi fi i=`expr $i + 1` done } file_backup /etc/samba/smb.conf /etc/samba/smb.conf rm -f /etc/samba/smb.conf touch /etc/samba/smb.conf echo "[global]" > /etc/samba/smb.conf echo "encrypt passwords = yes" >> /etc/samba/smb.conf echo "" >> /etc/samba/smb.conf echo "dos charset = CP932" >> /etc/samba/smb.conf echo "unix charset = UTF-8" >> /etc/samba/smb.conf echo "display charset = UTF-8" >> /etc/samba/smb.conf echo "" >> /etc/samba/smb.conf echo "workgroup = WORKGROUP" >> /etc/samba/smb.conf echo "#hosts allow = 127. 192.168.111." >> /etc/samba/smb.conf echo "server string = Samba Server Version %v" >> /etc/samba/smb.conf echo "" >> /etc/samba/smb.conf echo "security = user" >> /etc/samba/smb.conf echo "passdb backend = tdbsam" >> /etc/samba/smb.conf echo "" >> /etc/samba/smb.conf echo "log file = /var/log/samba/log.%m" >> /etc/samba/smb.conf echo "max log size = 50" >> /etc/samba/smb.conf echo "" >> /etc/samba/smb.conf echo "[myshare]" >> /etc/samba/smb.conf echo "path = /" >> /etc/samba/smb.conf echo "writable = yes" >> /etc/samba/smb.conf echo "printable = no" >> /etc/samba/smb.conf echo "public = yes" >> /etc/samba/smb.conf echo "create mode = 755" >> /etc/samba/smb.conf echo "directory mode = 755" >> /etc/samba/smb.conf echo "socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384" >> /etc/samba/smb.conf echo "" >> /etc/samba/smb.conf echo "done. To use samba server, do following steps." echo "1. pdbedit -a -u <UNIX_USER_NAME>" echo "2. start smb, nmb service." exit 0