samba原理-usernames

4170 ワード

SAMBAはLinuxサーバに共有ファイルサービスを導入し、Windowsにアクセスします.アクセス時のユーザーの認証LinuxはWindowsとは異なります.

1.Linuxユーザーモード


Linuxは一般的に以下のユーザーモードに分けられます.
  • 0:シャットダウン
  • 1:シングルユーザモード
  • 2:ネットワークサポートのないマルチユーザモード
  • 3:ネットワークでサポートされているマルチユーザモード
  • 4:予約、未使用
  • 5:X-Window対応のマルチユーザモード
  • をネットワークでサポート
  • 6:システムの再起動、すなわち
  • の再起動
    Linuxシステムが正常な状態にある場合、サーバホストが起動(または再起動)した後、システムブートプログラムによって自動的にLinuxシステムをマルチユーザモードに起動させ、正常なネットワークサービスを提供することができる.特注:シングルユーザーモードに入り、ネットワークサービスを起動せず、リモート接続をサポートしない
    Linuxシステムの異なる運行レベル(Run Level)はシステムの異なる運行状態を代表し、例えばLinuxサーバーが正常に運行する時運行レベル3にあり、ネットワークサービスを提供できるマルチユーザーモードである.一方、実行レベル1では、管理者がサーバホストの単一コンソール、すなわち「シングルユーザモード」で操作できるようにします.

    2.Linuxファイル権限


    Linuxファイルのメタデータにファイルの権限modが保存され、ファイルのUID、GIDが作成されます.
    [u1@localhost test]# stat file1 
      File: ‘file1’
      Size: 2           Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d    Inode: 134382061   Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2017-09-19 01:38:17.517410401 -0700
    Modify: 2017-09-19 01:38:14.854274421 -0700
    Change: 2017-09-19 01:38:14.854274421 -0700
     Birth: -
    You have new mail in /var/spool/mail/root
    [u1@localhost test]#

    上記のファイルfile 1のユーザには読み書き権限があり、ユーザグループや他のユーザには読み書き権限があります.uid/gidがファイルのメタデータに保存されていることにも注意してください.他のユーザーを切り替えてファイルを書くと、エラーが表示されます.
    [root@localhost test]# su u1
    [u1@localhost test]$ ll
    total 4
    -rw-r--r-- 1 root root 2 Sep 19 01:38 file1
    
    [u1@localhost test]$ echo "1" > file1
    bash: file1: Permission denied
    [u1@localhost test]$ 

    上記ユーザu 1はLinuxマルチユーザモードのうちの1ユーザである.そのため、ネットワーク(windowsクライアント)からLinuxにアクセスする場合は、ユーザー名も必要です.しかし,Linuxローカルアクセス時には既にu 1ユーザ状態に登録されており,u 1が開始する読み書き操作は,u 1のUID/GIDを要求の一部としてメタデータ中のアクセスするファイルのUID/GIDと比較し,権限認証を行う.では、ネットワークからのリクエストはどのようにユーザーの権限鑑定をすればいいのでしょうか.

    3.SAMBAユーザー認証


    要求はwindowsクライアントから来て、Linuxサーバーのsmbdプロセスは要求を受信します.異なるリクエストには異なるユーザー名、権限が含まれている可能性があるため、smbdは変換機能を提供する必要があります.Windowsアクセスリクエストのユーザーをuidに変換して保存します.Windowsユーザーadmin 1がsmaba共有ディレクトリにファイルを作成した場合、そのファイルのメタデータには、admin 1がsmbdで変換したuid/gidが保存されます.
    ただし,ユーザ変換機能を行うコンポーネントはsmbbではなく,他のコンポーネントであり,後述する.