2017年2月9日木曜日

一番簡単なSamba設定(ホームディレクトリ編)

一番簡単なSambaサーバ設定 では、共有ディレクトリを作って公開しましたが、それも面倒で、自分のホームディレクトリを自分にすべてWindows側からフルアクセスできるようにしたい場合です。
ユーザ名 hogeuser と仮定して説明します。
/home/hogeuser
が既にできているはずです。

$ vi /etc/samba/smb.conf
以下の内容にする
[global]
unix charset = UTF-8
dos charset = CP932

        workgroup = WORKGROUP
        server string = Samba Server Version %v

        # logs split per machine
        log file = /var/log/samba/log.%m
        # max 50KB per log file, then rotate
        max log size = 50

        security = user
        passdb backend = tdbsam
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
;       valid users = %S
;       valid users = MYDOMAIN\%S
        create mask 0644
        directory mask = 0755

        path=/home/%S


$ sudo smbpasswd -a hogeuser
:
: <- パスワードを指定する

でOKです.

Ubuntuの場合
$ sudo service smbd restart

CentOSの場合
# /etc/init.d/samba restart

です。

Windowsのコマンドプロンプトで、
>net use v: \\172.16.1.4\hogeuser /user:hogeuser password
か、エクスプローラーのネットワークドライブの割り当てで設定します。
(172.16.1.4の部分はWindowsからアクセス可能なLinuxサーバ、仮想マシンのIPアドレスです)



2017年2月3日金曜日

Linux: スペースを含むファイル名のfind xargsでの処理(Busybox)

通常のLinuxでは以下のように処理すれば問題ない。


60日以前のファイルをすべて削除する

find .  -mtime +60 -print0 | xargs -0 rm -f

しかし、Busyboxのfindにはprint0が効かないは、xargsに-0もない
なので以下で代替

find .  -mtime +60 | sed -e 's/ /\\ /g' | xargs rm -f

なんてことはないが30分くらいハマった


2016年2月5日金曜日

/boot の不要ファイル削除

apt-get install
で/boot パーティションがいっぱいで失敗してしまったときの対処。


■ /bootパーティションの不要なパッケージを削除する。

$ dpkg --get-selections | grep linux-image
linux-image-3.19.0-25-generic          install
linux-image-3.19.0-26-generic          install
linux-image-3.19.0-28-generic          install
linux-image-3.19.0-31-generic          install
linux-image-3.19.0-32-generic          install
linux-image-3.19.0-33-generic          install
linux-image-3.19.0-37-generic          install
:
とある。
$ uname -a
Linux tkdvubn2 3.19.0-37-generic #42~14.04.1-Ubuntu SMP Mon Nov 23 15:13:51 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
と表示される。

■ linux-image-3.19.0-37-generic 以外は不要なので削除する。

$ for x in `dpkg --get-selections | grep linux-image-3.19. | cut -f 1`; do
  if [ '37' != ${x:19:2} ]; then
  sudo apt-get -y remove $x;
 fi;
done

とする(改行しても、一気に改行なしで続けても可)

■ 最後に、
$ sudo apt-get -y autoremove
:

これでよし

2015年9月4日金曜日

Linux(ゲスト)から、リモートWindows共有ファイルへのアクセス

Linux(ゲスト)から、リモート側(LANの別のPC)のWindows共有ファイルへのアクセス



マウントポイントディレクトリを作成
# mkdir /mnt/pcshare

Windows(ホスト)で共有設定


Linuxからマウント
# mount -t cifs //192.168.56.1/tmp /mnt/pcshare -o username=your_windows_account,password=xxx

以上でおk
# ls /mnt/pcshare
...

2015年6月4日木曜日

一番簡単なSambaサーバ設定

/etc/samba/smb.conf


[global]
workgroup = workgroupname
netbios name = hostname
security = share

[public]
path = /home/share
comment = public folder
writable = yes
public = yes
guest only = yes
guest ok = yes

Win7/8 USBブートDisk作成

Win7 USBブートDisk作成

管理者権限でコマンドプロンプト起動

> diskpart
DISKPART> list disk   ※ ここでdisk番号を確認。以降の「1」を置き換え
DISKPART> select disk 1
DISKPART> clean
DISKPART> create partition primary
DISKPART> select partition 1
DISKPART> active
DISKPART> format fs=fat32
DISKPART> assign
DISKPART> exit

USB memoryへ
c:\> xopy d:\*.* /s/e/f e:\
c:\> cd /d d:boot
d:boot> bootsect /nt60 e:

2015年6月3日水曜日

Virtual Box on windows, guest-OS Debian

の設定

普段、Windows上で使用している、Virutual Boxの設定
こう使えばいいぞ!的な。

説明はdebianだが、ubuntuも。
Fedora、CentOSでも手順はおなじ。
  • Windows上で、Linuxを使用する。主にTeraTermでアクセス。
  • Linuxからは外部ネットワーク接続はできるが、外部からは入れない(Webやftpサーバとして使う場合、必要なときは入れるようにする)。
  • Linux(ゲスト)側からWindows(ホスト)上のフォルダを自由にアクセスできる。
  • Windows上からはLinuxフォルダへのアクセスは不可(必要ならSambaを稼働)


という設定

1.VirutualBoxの設定


2. ネットワークの設定

ネットワークカード(NIC)は2枚差しのイメージとする。
1枚目はNATで、Linux -> 外部ネットワーク と疎通ができるもの

 2枚目はホスト(Windows)側からゲスト(Linux)側への疎通(TeraTerm接続)ができるものを用意

3. Linux(ゲスト)とWindows(ホスト)と共有フォルダを作成する

(LinuxからWindowsファイルフォルダへフルアクセスできるようにする)

4. Windows(ホスト)側の設定は「VirutualBox Host-Only Network」と名付けられてインストールされたNICを設定する(VirutualBoxセットアップ時に勝手に作られている)




5.Linux側のセットアップは、eth0、eth1とも自動IP取得(dhcp)で構わない。

※ ubuntuは特に何もせずとも構わない。

user@vmub:/etc/network$ ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス 08:00:27:ea:ee:5a
          inetアドレス:10.0.2.15  ブロードキャスト:10.0.2.255  マスク:255.255.255.0
          inet6アドレス: fe80::a00:27ff:feea:ee5a/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:2630 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:1405 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000
          RXバイト:1978315 (1.9 MB)  TXバイト:138133 (138.1 KB)

eth1      Link encap:イーサネット  ハードウェアアドレス 08:00:27:66:7e:f1
          inetアドレス:192.168.56.101  ブロードキャスト:192.168.56.255  マスク:255.255.255.0
          inet6アドレス: fe80::a00:27ff:fe66:7ef1/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:1644 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:1294 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000
          RXバイト:183681 (183.6 KB)  TXバイト:260785 (260.7 KB)

lo        Link encap:ローカルループバック
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:65536  メトリック:1
          RXパケット:256 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:256 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:0
          RXバイト:22762 (22.7 KB)  TXバイト:22762 (22.7 KB)

user@vmub:/etc/network$

6.Linux上のrootユーザで、VirutualBox提供のAdditionツールをCDマウントし、VBoxLinuxAdditions.runを実行する。





ubuntuの場合、以下手順でも可



7.TeraTermで接続する



Ubuntu では、
$ sudo su -
# apt-get update
# apt-get openssh-server
が必要

8.共有フォルダのパーミッション


デフォルトでは、共有フォルダは、以下のようにrootユーザ、vboxsfグループのみアクセス可能となっております。

user@vmub:/media$ ls -ld /media/sf_pc
drwxrwx--- 1 root vboxsf 4096  5月 15 18:57 /media/sf_pc

/etc/group ファイルのvboxsf の行を探して、使用可能なユーザを追加します。
自分のアカウント名が、userなら以下のようにします。

vboxsf:x:999:user

※ 数字は異なる場合があります。

以上で、/media/sf_pc にWindowsフォルダがマウントされました。

$ ln -s /media/sf_pc ~/pc

~/pcで使用可能にする。

9.その他


定期的にLinux上でUbuntu/Debianなら、# aptitude upgrade、Fedora、Red-hat、Cent-OS系ならyum updateのあとに共有フォルダが使えなくなる場合があります。このときは、rootユーザで以下を実行します。
# user@vmub:/etc/network$ /media/user/VBOXADDITIONS_4.3.28_100309/VBoxLinuxAdditions.run

※ 手順6とおなじ
※ 「user」の部分は読み替えてください

10.外部からアクセスしたい場合


Linux(ゲスト)上ににWebサーバをたててPCからアクセスする場合は、192.168.56.xでアクセス可能ですが、他のLAN上のPC側からLinux(ゲスト)PCへアクセスしたい場合、以下のようにしてVirutualBoxの「ネットワーク設定」の「アダプタ1」-「ポートフォワーディング」で設定します。

全ポート解放したい場合は、NATはやめてブリッジにする(IPアドレスがホスト以外にもゲスト分消費する)。

※ アダプター2(ホストオンリーアダプタ)を使いわないでいける方法もあります。

「アダプター1」-「ポートフォワーディング」で、ホストポート=1234(1024~65535の任意)、ゲストポート=22にし(他の項目は任意)、TeraTermでssh接続は、localhost:1234 とすればOKです。
ただ、この場合は、TeraTermの[Alt+D]などで端末複製ができないなどの問題があります。
また、複数のゲストを起動して双方間で接続することもできません。

※ 外部インターネットへアクセスできない場合

Ubuntu, CentOS, Debianとも/etc/resolv.confを以下の行を加える
nameserver xxx.xxx.xxx.xxx

* xxx.xxx.xxx.xxx DNSサーバのIPv4アドレス