ファイル管理

ファイル共有やファイル管理

ファイル共有はオープンソースソフトウェアとして実績のあるSambaを説明します。Sambaの語源は、マイクロソフトのネットワークファイルシステムSMB(Server Message Block)に、2 つの母音を入れて作られたと言われています。

Sambaサーバについて

 

題名: Sambaを使ったサーバの構築(Sambaの基礎からPDC機能まで)

基本の設定や使い方について、参考になります。 ここから

 

よく使うコマンド  環境 Samba 3.6.9-151-el6  CentOS 6.4

testparm

testparm /etc/samba/smb.conf  smb.confファイルを指定して設定を確認

pdbedit

pdbedit -Lw  現在 Sambaに登録されているユーザーをsmbpaswwd形式で表示

pdbedit -a ユーザー名  LinuxユーザーをSambaへ登録

コンピュータアカウント(コンピュータ名)の追加   pdbedit -a -m コンピュータ名

パスワードのバッチ入力  pdbedit -t

ユーザの削除  pdbedit -x ユーザ名

smbclient

smbclient -L Sambaサーバー名  Linuxクライアントから接続、IPアドレスでも可能

smbstatus

smbstatus -d   Sambaデーモンの動作状態を調べて表示

findsmb

findsmb  サブネットに存在するSambaサーバーを一覧表示

nmblookup

指定したコンピュータ名でIPアドレスの取得
nmblookup debian1      <--- マシン名 debian1
querying debian1 on 192.168.0.255
192.168.0.8 debian1<00>

・WINSサーバへの問合せ
nmblookup -R -U 192.168.0.8 WORKGROUP   <----- WINSサーバとワークグループ名を指定して問合せ
querying WORKGROUP on 192.168.0.8
0.0.0.0 WORKGROUP<00>

・登録されているNetBIOS名で確認する場合
nmblookup -A 192.168.0.2
Looking up status of 192.168.0.2
        MACBOOKPRO13    <03> -         B <ACTIVE>
        MACBOOKPRO13    <20> -         B <ACTIVE>
        MACBOOKPRO13    <00> -         B <ACTIVE>   <---- コンピュータ名
        ..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>   <---  マスタブラウザ
        WORKGROUP       <1d> -         B <ACTIVE>
        WORKGROUP       <1e> - <GROUP> B <ACTIVE>
        WORKGROUP       <00> - <GROUP> B <ACTIVE>       
   MAC Address = 00-00-00-00-00-00

・名前解決時に -S オプションを使う場合
nmblookup -S macbookpro13
querying macbookpro13 on 192.168.0.255
192.168.0.2 macbookpro13<00>
Looking up status of 192.168.0.2
        MACBOOKPRO13    <03> -         B <ACTIVE>
        MACBOOKPRO13    <20> -         B <ACTIVE>
        MACBOOKPRO13    <00> -         B <ACTIVE>
        ..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>
        WORKGROUP       <1d> -         B <ACTIVE>
        WORKGROUP       <1e> - <GROUP> B <ACTIVE>
        WORKGROUP       <00> - <GROUP> B <ACTIVE
MAC Address = 00-00-00-00-00-00

・マスタブラウザを確認 ワークグループ名を指定
nmblookup -B 192.168.0.255 -M WORKGROUP
querying WORKGROUP on 192.168.0.255
192.168.0.8 WORKGROUP<1d>

・マスタブラウザを確認 指定したIPサブネット中のマスタブラウザを検索
nmblookup -B 192.168.0.255 -M -
querying __MSBROWSE__ on 192.168.0.255
192.168.0.8 __MSBROWSE__<01>

net lookup  

・nmblookupコマンドと同様にNetBIOS名の名前解決を実行
net lookup host macbookpro13
192.168.0.2
・ワークグループのマスタブラウザを検索
net lookup master workgroup
192.168.0.8

net cache

・NetBIOSネームキャッシュのエントリを表示
net cache list
Key: NBT/DEBIAN1#20      Timeout: 10:48:56       Value: 192.168.0.8:0  (expired)
Key: NBT/VM2CENTOS6#20   Timeout: 10:48:29       Value: 192.168.0.161:0  (expired)
Key: NBT/*#00.1D.192.168.0.8     Timeout: Tue Apr 30 18:15:13 2013       Value: WORKGROUP  (expired)

・特定のエントリを調べる場合
net cache search 'NBT/VM2CENTOS6*'
Key: NBT/VM2CENTOS6#20   Timeout: 10:48:29       Value: 192.168.0.161:0  (expired)

 

よく使うコマンド  環境 Windowsにて

 

 

FAQ

Q: CentOS 6 などでSambaをインストールするときに設定トラブルが起きる場合

A: CentOSではSELinuxが稼働しているので、OFFにするか、SELInuxでポリシーを設定します。OFFにする場合は、/etc/sysconfig/selinux  というファイルを編集、 SELINUX=disabled に設定し再起動します。

Q:Linux側から共有ディレクトリやコンピュータが見えない、Windowsからは見える場合

A:もしかすると、SELinuxを無効にするとこの現象がおこる、ということかも。調査中。

Q:smb.conf の設定サンプル

A:サンプルとして  CentOS 6.4  Samba  smbpasswdでユーザー追加

[global]

    unix charset = UTF-8
    dos charset = CP932
    
    workgroup = WORKGROUP
    server string = Samba Server Version %v
    
    log file = /var/log/samba/log.%m
    max log size = 50
    
    hosts allow = 127. 192.168.0.
    
    security = user
    passdb backend = tdbsam

[homes]
    comment = Home Directories
    browseable = no
    writable = yes
;    valid users = %S
;    valid users = MYDOMAIN\%S
    
[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes
    
 

[share1]   

    comment = Public Stuff
    path = /home/samba
    public = yes
    writable = yes
    printable = no
    write list = +staff

[kyoyou2]

    comment = Public Stuff
    path = /home/share
    public = yes
    writable = yes
    printable = no
    write list = +staff

 

 

 

 

オープンソースソフトウェア: 

Install

Sambaのインストール、設定について

Sambaではいろいろな使い方に合わせて設定が可能です。代表的な環境でのサンプルとして、メモをまとめました。

Windows のワークグループでファイルサーバ

Sambaインストール

設定ファイルsmb.confの作成、起動

ユーザ作成(LinuxユーザとSambaユーザ) 管理者用 administrator など ユーザ用 user01 など

各ユーザパスワード作成(LinuxユーザとSambaユーザ)

 

スタンドアロンのWindowsのドメインコントローラ(WindowsNTドメイン互換のSambaドメイン)として

備考: ドメインの名称と種類 Windowsドメイン(NTドメイン、ADドメイン) Sambaドメイン

Sambaインストール

スタンドアロンのドメインコントローラ(PDC)としての設定ファイルsmb.confの作成、起動

ユーザ作成(LinuxユーザとSambaユーザ)

ユーザパスワード作成(LinuxユーザとSambaユーザ)

 

 

OpenLDAPと連携したスタンドアロンのWindowsドメインコントローラ

 

タグ: 

オープンソースソフトウェア: 

Sambaの話題

Sambaに関する話題

 

参考になるプレゼン資料

2015年2月28日(土) OSC東京にて 「いまさら聞けないWindows Server」 >> ここから

 

タグ: 

オープンソースソフトウェア: 

User and Group

ユーザとグループについて

Sambaでの、UNIXのユーザ・グループとWindowsのユーザ・グループを管理する機能の概要について。

 

Sambaのユーザ概念

SambaではSambaユーザという独自のユーザを作成し、そのパスワードも設定します。 さらに、SambaサーバがUNIX系(Linuxも含む)の場合はUNIX(Linux)のログインユーザ名とパスワードが必要になります。

つまり、Sambaユーザには必ず対応するUNIX(Linux)ユーザが存在し、ログイン認証後にUNIX(Linux)ユーザとの対応付けが行われます。

また、コンピュータ名も必要となりますので、SambaユーザとUNIX(Linux)ユーザに登録します。 自動登録などの仕組みは別途必要です。

UNIX(Linux)ユーザの作成

 useraddコマンドなどで、Windowsユーザ名と同じ名前をUNIX(Linux)ユーザにパスワード付きで登録

 useraddコマンドなどで、Windowsのコンピュータ名(名前の最後に$を付ける)と同じ名前をUNIX(Linux)ユーザにパスワード付き登録

Sambaユーザの作成

 ユーザ名とマシン名(最後に$を付ける)ともにpdbeditコマンドもしくはsmbpasswdコマンドを使います。

 追加 pbdedit -a <Sambaユーザ名>  削除 pbdedit -x <Sambaユーザ名>  表示 pbdedit -Lw

 

Sambaグループの作成、修正、削除、参照

Sambaユーザと同じようにUNIX(Linux)グループに対応するSambaグループを作成します。SambaグループはWindowsサーバに存在するローカルグループとして機能します。一般的に、マイクロソフトのWindowsドメインではない環境(ワークグループでのネットワーク運用)では、Sambaグループと言います。

Sambaグループの作成(既存UNIXグループに対応するローカルグループを作成する場合)

 net groupmap add unixgroup=UNIXグループ名 type=local ntgroup=Sambaグループ名 [ comment="<コメント文字>"]

Sambagグループの修正

 net groupmap modify unixgroup=UNIXグループ名 type=local ntgroup=Sambaグループ名 [ comment="<コメント文字>"]

Sambaグループの削除

 net groupmap delete ntgroup=<Sambaグループ名>

Sambaグループの参照

 net groupmap list

Sambaグループの作成(ローカルグループに対応するUNIXグループの定義をWinbind内で保持する場合)

 net sam createlocalgroup  <ローカルグループ名=UNIXグループ名>

Sambaユーザ、グループの参照(ローカルグループに対応するUNIXグループの定義をWinbind内で保持する場合)

 net sam list groups

 net sam list users

グループ名の指定

smb.conf にて valid users = @group1 +groiup2  という表現 @、+ でグループ名を指定

 

Sambaでドメインを構築する場合

グローバルグループとローカルグループ

グローバルグループの初期設定(NTドメインの標準グローバルグループを作成)

 groupadd domadmin  groupadd domuser  gtoupadd domguest

 net groupmap add rid=512 ntgroup="Domain Admin" unixgroup=domadmin type=domain

 net groupmap add rid=513 ntgroup="Domain Users" unixgroup=domuser type=domain

 net groupmap add rid=514 ntgroup="Domain Guests" unixgroup=domguest type=domain

ユーザの権利  (重要な SeAddUsersPrivilege と SeMachineAccountPrivilege を設定)

 net sam rights grant <Sambaユーザ / グループ > <ユーザの権利> -U <管理ユーザ>

 net sam rights grant administrator SeMachineAccountPrivilege

 net sam rights grant administrator SeTakeOwnershipPrivilege

 net sam rights grant administrator SeBackupPrivilege

 net sam rights grant administrator SeRestorePrivilege

 net sam rights grant administrator SeRemoteShutdownPrivilege

 net sam rights grant administrator SePrintOperatorPrivilege

 net sam rights grant administrator SeAddUsersPrivilege

 net sam rights grant administrator SeDiskOperatorPrivilege

 

 

Winbindについて

WinbindはWindowsドメインに参加しているSambaサーバ上で、Windowsドメインのユーザ情報に基づいてUNIX(Linux)ユーザの情報を自動的に生成し、NSS(Name Servcie Switch)機能を経由してUNIX(Linux)ユーザの情報を提供するプログラムです。

Winbindを実行させるにはNSS(Name Server Switch)機構が必要となり、サーバのプラットフォームごとに設定方法が異なります。

CentOS5、CentOS6の場合 次のコマンド実行で自動設定されます。  authconfig --enablewinbind --update

Winbindの起動  service winbind restart

Winbindの動作確認  wbinfo -t  wbinfo -u  wbinfo -g

 

PAMによるSamba以外のプログラムとの認証統合

pam_winbind のインストールと設定は、CentOSの場合  authconfig --enablewinbindauth --update

無効にする場合は authconfig --disablewinbindauth

動作検証は、WindowsドメインのユーザでSSHでSambaサーバへログインします。 ssh -l Windowsユーザ Sambaサーバ

 

タグ: 

オープンソースソフトウェア: 

サンプル事例インストール

Sambaのインストールサンプル事例

Sambaにはさまざま機能があり、設定方法も複雑な場合があります。単純なサンプル事例で基本をマスターして、さまざま応用にチャレンジしましょう。

共通項目(追加する情報として)

 Linuxユーザ administrator (グループも作成される)  ユーザ名 samba01(グループも作成される)  マシン名 samba-pc1

 Windowsマシン名 samba-pc1  Windowsユーザ samba01

 

ファイル共有サーバの場合

 

 

コンピュータアカウントとLinuxユーザを手動で作成する場合

useradd -s /dev/null -d /dev/null マシン名$

pebedit -a -m マシン名

Sambaグループ(ローカルグループ)の作成

net groupmap add unixgroup=UNIXグループ名 type=local ntgroup=<Sambaグループ名>

 

ドメインコントローラ(PDC)として運用する場合

 

 

グローバルグループの初期設定

groupadd domadmin

groupadd domuser

groupadd domguest

net groupmap add rid=512 ntgroup="Domain Admins" unixgroup=domadmin type=domain

net groupmap add rid=513 ntgroup="Domain Users" unixgroup=domuser type=domain

net groupmap add rid=514 ntgroup="Domain Guests" unixgroup=domguest type=domain

ユーザ権利の設定

net sam rights grant <Sambaユーザ/グループ> <ユーザ権利> -U <管理ユーザ>      ※重要なのは SeMachineAccountPrivilege  SeAddUsersPrivilege  です

net sam rights grant 'Sambaユーザ¥グループ' SeMachineAccountPrivilege -U root

net sam rights grant 'Sambaユーザ¥グループ' SeTakeOwnershipPrivilege -U root

net sam rights grant 'Sambaユーザ¥グループ' SeBackupPrivilege -U root

net sam rights grant 'Sambaユーザ¥グループ' SeRestorePrivilege -U root

net sam rights grant 'Sambaユーザ¥グループ' SeRemoteShutdownPrivilege -U root

net sam rights grant 'Sambaユーザ¥グループ' SePrintOperatorPrivilege -U root

net sam rights grant 'Sambaユーザ¥グループ' SeAddUsersPrivilege -U root

net sam rights grant 'Sambaユーザ¥グループ' SeDiskOperatorPrivilege -U root

ユーザ権利に関する現在の状況を一覧

net sam rights list SeAddUsersPrivilege -U ""%""

ドメインの信頼関係

WondowsドメインとSambaドメインを信頼する

ドメインコントローラとOpenLDAPによる連携

 

 

タグ: 

オープンソースソフトウェア: