この最小例では、ネットワークに 3 つのシステムがあります。 Windowsサーバーは、ドメイン(すべての関連項目を含む)、Synology NAS(一部のデータとバックアップの保存用)、および同じNASにアクセスする必要があるLinuxホストとして機能します。
NASで別の権限セットを操作したり維持したくないため、LinuxホストはこれにWindowsホストと同じアクセスメカニズムを使用する必要があります。共有をCIFSとしてマウントし、Kerberosチケットを要求します。 Windowsサーバー。この機能とシェアは増え続けています。
ところで、私は次のようにしか説明できないことに出会いました。何してるの?。
ドメインにwuBとwuVという2人のユーザーがいるとします。ユーザーwuVがSynology共有にフォルダを作成しました。これで、LinuxホストからユーザーwuB(Windowsドメイン)としてこのファイルにアクセスしようとしています。
私のLinuxコンピュータで次のコマンドを実行します。
$ kinit [email protected]
$ mount --verbose -t cifs -o sec=krb5i,vers=2.0,username=root,uid=0000,gid=0000,iocharset=utf8,dir_mode=0777,file_mode=0777,noperm //mysynology.company.com/backup /var/backups/synology1
mount.cifs kernel mount options (...)
$ cd /var/backups/synology1/
$ ls
existing_dir_owned_by_wuV
$ mkdir testdir
$ cd testdir
$ touch testfile
$ echo "yessir" > testfile
$ cat testfile
yessir
$ ls -lha
drwxrwxrwx 2 root root 0 Sep 20 12:28 .
drwxrwxrwx 2 root root 0 Sep 20 12:28 ..
-rwxrwxrwx 1 root root 6 Sep 20 12:28 testfile
$ cd ..
$ cd existing_dir_owned_by_wuV
$ ls -la
'.' : permission denied
$ cat existing_file_in_subfolder
permission denied
$ cd ..
$ cat existing_file_in_mainfolder
hello world
Synologyで所有権を確認します。テストフォルダはcompany.com/wuB所有としてマークされ、既存のフォルダはcompany.com/wuV所有としてマークされます。これは、はい、WindowsユーザーwuBで共有にアクセスしていることを意味します。
Synologyでは、Windows / NTFSスタイルの権限は共有自体にのみ設定されます。継承する権限のみがあります。 wuVとwuBの両方が次のように表示されます。読み書き共有内のすべてのファイルにアクセスします。インストール中、Linuxの権限は777に設定されます。私はすべてをやっています。根Linuxシステムでは、権限の問題はそこでも発生しません。
どうやってこれができますか?
この問題をどのように解決できますか?
答え1
同様の問題がある人のために答えを見つけました。
Synology の NTFS 権限の表示は、デフォルトで次のとおりです。間違った。 SMB/CIFS がコンテンツを保存する方法とまったく一致しない方法でキャッシュし、独自の現実バージョンを表示します。同じユーザーとしてWindowsシステムにフォルダをインストールしてこれを見つけました。一部の既存のディレクトリにアクセスできません。
追跡することが判明しました遺産オフロード車です。 NTFS権限はより複雑です。各フォルダには独自の権限があります。継承するバナー。これらのいずれかがオフになっても、共有に対する権限は適用されません。欠陥のあるプログラムが管理者の継承された設定を尊重せずに、自分が書いているいくつかのフォルダ/ファイルを生成していることがわかりました。 (管理者はとにかくこれらの権限を変更できません。)これが可能な理由は、Windows委員会の設計上の欠陥の1つです。
回避策は、問題のある各フォルダに継承を設定することです(すべてのファイルとサブフォルダに対してこれを行います)。これはcaclを使用して自動化したり、同じエクスプローラウィンドウで行うことができます。
この答えを見て、ntfssecaudit
WindowsシステムなしでLinuxホストで同じことをする方法も見つけました。また、リンクされたユーザーにコンテンツを表示する権限がある場合は、継承が中断されたことが報告されます。これは、Kerberosチケットで再インストールすることで簡単に解決できますadministrator
。