ここでは、samba (ファイル共有サービス) v4.9.1 + OPENldap (バックエンド データベース ソフトウェア) v2.4.44 + smbldap-tools (バックエンド データベース管理ソフトウェア) v0.9.11 + CentOS7 を使用します。 相違がある場合は、部分的に問題がある可能性があります。 注記:
初期設定 yum リポジトリとネットワーク構成は省略されます。 yum -y samba openldap-servers openldap-clients smbldap-tools nss-pam-ldapd をインストールします OPENldap サービスを構成する ここでは、簡単なサービス設定のみを行います。データベース設定は、smbldap-tools を使用して行います。OPENldap についてよくわからない場合は、こちらの記事をお読みください: 「OPENLDAP サービスの構築と事後管理」 ここで、すべての OPENldap 構成をクリアし、再設定します。 # 復元できない場合に備えて、まずファイルをバックアップします mkdir /root/back tar -Jcvf /root/back/slapd.config-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /etc/openldap/slapd.d/ tar -Jcvf /root/back/slapd.data-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /var/lib/ldap/ # 次に設定ファイルを削除します rm -rf /etc/openldap/slapd.d/* rm -rf /var/lib/ldap/* # samba スキーマ ファイルをコピーします cp /usr/share/doc/samba-4.9.1/LDAP/samba.ldif /etc/openldap/schema/ ここで、 # ファイル: /tmp/slapd.ldif dn:cn=設定 オブジェクトクラス: olcGlobal cn: 設定 olcArgsファイル: /var/run/openldap/slapd.args olcPidファイル: /var/run/openldap/slapd.pid dn: cn=スキーマ、cn=構成 オブジェクトクラス: olcSchemaConfig cn: スキーマ インクルード: ファイル:///etc/openldap/schema/core.ldif インクルード: ファイル:///etc/openldap/schema/cosine.ldif インクルード: ファイル:///etc/openldap/schema/nis.ldif インクルード: ファイル:///etc/openldap/schema/inetorgperson.ldif インクルード: ファイル:///etc/openldap/schema/samba.ldif dn:olcDatabase=フロントエンド、cn=config オブジェクトクラス: olcDatabaseConfig オブジェクトクラス: olcFrontendConfig olcデータベース:フロントエンド dn: olcDatabase=config、cn=config オブジェクトクラス: olcDatabaseConfig olcデータベース:config olcアクセス: * dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" で管理 * なし dn:olcDatabase=モニター、cn=構成 オブジェクトクラス: olcDatabaseConfig olcデータベース: モニター olcアクセス: * dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" で読み取り dn.base="cn=Manager,dc=black,dc=com" による読み取り * なし dn:olcデータベース=hdb、cn=config オブジェクトクラス: olcDatabaseConfig オブジェクトクラス: olcHdbConfig olcデータベース: hdb olcサフィックス: dc=black、dc=com olcRootDN: cn=Manager、dc=black、dc=com olcルートパスワード: {SSHA}l1vBI/HOMKLEiQZgcm3Co+hFQI68rH1Q olcDbディレクトリ: /var/lib/ldap olcDbIndex: オブジェクトクラス eq,pres olcDbIndex: ou、cn、メール、姓、名 eq、pres、sub、uid 構成に基づいてサーバー構成ファイルを生成する slapadd -F "/etc/openldap/slapd.d/" -b "cn=config" -l /tmp/slapd.ldif # ファイルの所有者はまだルートなので、openldapに戻す必要があることに注意してください。 chown -R ldap:ldap /etc/openldap/slapd.d/* # 次にサービスを起動します systemctl start slapd _#################### 100.00% 予想時間 経過なし 高速なし! 注意: ここでは OPENldap のサービス設定部分のみ設定されており、OPENldap のデータベースは設定されていません。次の点を再度強調しておきます。 Sambaの設定 ここでは、samba と OPENldap の使用をテストするだけなので、複雑なファイル共有設定は行いません。テストでは、1 人のユーザーのホーム ディレクトリのみを共有します。 # ファイル: /etc/samba/smb.conf [グローバル] workgroup = MYGROUP #共有グループ名を指定します。 サーバー文字列 = Samba サーバーバージョン %v ログファイル = /var/log/samba/log # ログセキュリティ = user # セキュリティレベルをUserとして指定します passdb backend = ldapsam:ldap://127.0.0.1 # ldapsam を使用するために passdb のバックエンドデータベースを指定します ldap suffix = dc=black,dc=com # ldapのサフィックスを指定します ldap user suffix = ou=People # ユーザーのサフィックス セグメント ou=People を指定します。これは前のサフィックスと結合されます。 ldap group suffix = ou=Group # 上記と同じで、ユーザー グループを指定します。 ldap admin dn = cn=Manager,dc=black,dc=com # ldap サービスのクエリに使用する管理者ユーザーを指定します。 ldap ssl = no # SSL 暗号化を使用しないように指定します。 load printings = no #共有プリンターをロードしないように指定します。 [家] コメント = ホームディレクトリ 閲覧可能 = いいえ 書き込み可能 = はい マスクを作成 = 0600 ディレクトリマスク = 700 smbpasswd -w 123456 # LDAP サービスへの接続に使用されるユーザー パスワードを保存します。 ! !これは非常に重要です。そうでないと、smb サービスを開始できません。 sambaサービスを開始する systemctl スタート nmb systemctl smb を起動する smbldap-tools の設定 ここでは、smbldap-tools を使用して samba サービスに必要なデータ情報を迅速に完了し、smblda-tools を使用してユーザー セグメントを管理します。ただし、smbldap-tools の欠点の 1 つは、ローカル ユーザーが同じ UID または GID を持っているかどうかを考慮に入れないことです。競合が発生する可能性があるので、この点に注意してください。 smbldap は /etc/samba/smb.conf からいくつかの情報を読み取るので、最初に samba を設定し、次に smbldap-tools サービスを設定する必要があります。 smbldap-config # smbldap-tools の設定を構成します。ここでは、簡単な設定に smbldap-conifg を使用します。 以下の設定手順はここでは省略しますので、わからない場合はデフォルトで問題ありません。 smbldap-populate # OPENldap データベースの設定を初期化します。 後でテストするために、ここで別のユーザーを作成します。 smbldap-useradd -a -m User1 # ユーザー User2 を追加します # -a: 追加されたユーザーの種類が Windows であることを指定して、samba がユーザーを認識できるようにします。 # -m: ユーザーのホームディレクトリを作成することを指定します。 smbldap-passwd User1 #ユーザーのパスワードを変更する このユーザーのパスワード変更プロセスはここでは省略します。 これで、OPENldap のデータベースの初期化が完了し、OPENldap 内のコンテンツを照会できるようになります。下の図に示すように、これは 図では、UID = root と nobody のユーザーが確認できます。これらの特別なユーザーにはサーバーにログインしてほしくないので、次の設定では、フィルターを使用してこれらの 2 人のユーザーを除外します。 NSS 構成 ここで主に設定する必要があるのは NSS 設定です。NSS は LDAP 要求を nslcd に転送し、nslcd は OPENldap でユーザー情報を照会します。 まず、NSS を設定します。passwd セクションと group セクションに ldap 認証を追加するだけです。 # ファイル: /etc/nsswitch.conf passwd: ファイル ldap シャドウ: ファイル グループ: ファイル LDAP ホスト: ファイル dns myhostname ブートパラメータ: nisplus [NOTFOUND=return] ファイル イーサ: ファイル ネットマスク: ファイル ネットワーク: ファイル プロトコル: ファイル rpc: ファイル サービス: ファイル sss ネットグループ: nisplus sss 公開鍵: nisplus 自動マウント: ファイル nisplus sss エイリアス: ファイル nisplus 次に、nslcd を設定します。nslcd はデーモンとして実行されるため、設定後に再起動する必要があることに注意してください。 # ファイル:/etc/nslcd.conf uid-nslcd gid ldap uri ldap://127.0.0.1/ # ldap URL アドレス base dc=black,dc=com # ベース dn パス binddn cn=Manager,dc=black,dc=com # 接続するユーザーを指定します bindpw 123456 # パスワードを指定します ssl no # SSL 暗号化接続を使用しないように指定します。 filter passwd (&(objectClass=posixAccount)(uidNumber>=1000)) # passwd のフィルター ルールを記述します。 filter group (&(objectClass=posixGroup)(gidNumber>=500)) # 上記と同じ、グループは次のように記述されます コピー chmod 600 /etc/nslcd.conf # 構成ファイルの権限は非常に重要です。権限がないと、サービスを開始できません。 systemctl start nslcd # nslcd サービスを開始します。 以下のNSS構成が利用可能かどうかをテストします getent パスワード ユーザー1 ユーザー1:*:1001:513:システムユーザー:/var/smb/User1:/bin/bash 上記のように、設定した NSS および OPENldap サービスが有効になっています。次に、samba を設定して、利用できるようにしてみましょう。 Samba 権限設定 よく見ると、システム内のユーザーとの混乱を避けるために、ユーザーのホーム ディレクトリの場所を # ユーザーのホームディレクトリは、上記の smbldap-useradd コマンドによって作成されました。 # これで SELinux を直接設定できるようになりました。 semanage fcontext -a -t samba_share_t '/var/smb(/.*)?' # /var/smb パスのデフォルト タイプを変更します。ここでは、samba 共有で使用されるタイプを使用します。SELinux は、デフォルトでこのタイプへのアクセスを許可します。# samba が /home にアクセスできるようにするには、bool 値 samba_enable_home_dirs を有効にする必要があります。 # ただし、ここでは samba_share_t タイプを使用しているため、bool 値を有効にする必要はなく、samba は /var/smb と samba に必要なその他のファイルにのみアクセスできます。 restorecon -R /var/smb/ # 次に、/var/smb ディレクトリの下の SELinux タイプをリセットします。 コピー # ここで samba をテストできます smbclient -L //127.0.0.1/ -U User1 ここで、User1 はすでにログインして共有ディレクトリを照会できることがわかります。 次に、ここで直接ログインし、いくつかのファイルをアップロードしてテストを実行します。
要約する 上記は、samba + OPENldap を使用してファイル共有サーバーを構築する方法の詳細な説明です。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。 以下もご興味があるかもしれません:
|
>>: MySQL 8.0 バージョンで getTables がすべてのデータベース テーブルを返す問題の簡単な分析
<本文> <div id="ルート"> <h1&...
序文DBA として、仕事中に MySQL マスターとスレーブの同期遅延の問題に遭遇することがよくあり...
TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...
前提条件: Mac、zsh がインストールされ、bash のときに mysql がダウンロードされ、...
序文インデックスは、データベース内の 1 つ以上の列の値を並べ替え、データベースが効率的にデータを取...
ここでは比較的簡単なインストール方法のみを紹介します。 1. yumを使用してインストールするyum...
この記事では、アニメーション効果の非表示と表示を実現するためのJQueryの具体的なコードを参考まで...
目次1. シナリオ2. 解決策3. 結論4. 参考文献1. シナリオ日常の開発およびテスト作業には ...
序文最近、仕事で問題が発生しました。 Centos7 システムでは MySQL にリモート接続できな...
上の記事で、SWFObject V1.5 の使い方の紹介は一旦終了です。これから、SWFObject...
キープアライブとは何ですか?通常の開発では、コンポーネントによっては複数回初期化する必要のないものも...
ナビゲーション、少量のデータテーブル、中央揃え<!DOCTYPE html PUBLIC &q...
1: Baiduウェブサイトログイン入口ウェブサイト: http://www.baidu.com/s...
序文Linux では、コンパイルとリンクには Makefile を使用する必要がありますが、適切な ...
この記事では、マウスをドラッグしてdivのサイズを調整するJavaScriptの具体的なコードを参考...