当社にはWindows共有フォルダがあります。 Windowsからアクセスすると、ファイルのプロパティメニューが表示され、見つかります。メタデータ:作成者、最後の接続時間など
Linuxではこのフォルダをマウントしましたmount -t cifs
。フォルダの使用に関する統計を取得するためのスクリプトを作成したいと思います。
Linuxでこのメタデータにアクセスする方法はありますか?
UPD:またはをgetfacl
使用して操作を実行することはできません。これは、Windowsドメインサーバーの名前ではなく、このフォルダがマウントされたローカルLinuxユーザー名のみを提供するためです。stat
ls -la
UPD2:次のコマンドを使用して共有をマウントしました。sudo mount -t cifs //data/Shared /mnt/Shared -o uid=1000,gid=1000,user=<my_windows_account_name>,dom=<my_domain>,pass=<my_windows_password>
ここで、uid = 1000とgid = 1000は私のLinuxアカウントのuidとgidです。
答え1
あなたは使用しています
mount -t cifs //data/Shared /mnt/Shared -o uid=1000,gid=1000,user=<my_windows_account_name>,dom=<my_domain>,pass=
これは、ローカルシステムに次の2つを通知します。
- タプル{ユーザー、ドメイン、パスワード}で指定された資格情報を使用してリモートサーバーに認証します。
- UID 1000とGID 1000を持つユーザーアカウントから来たように、リモート共有へのすべてのアクセスを偽造します。
#1を続行する必要があります。ただし、root とアカウントの資格情報を表すローカル ユーザーだけが読み取れるセキュリティ ファイルにユーザーの資格情報を移動することをお勧めします。man mount.cifs
詳細については、次を参照してください。
# As root...
cat >/usr/local/etc/Shared.cifs <<'X'
username=my_windows_account_name
domain=my_domain
password=my_windows_password
X
chmod u=rw,go= /usr/local/etc/Shared.cifs
chown my_unix_account_name:root /usr/local/etc/Shared.cifs
# Then mount becomes
mount -t cifs //data/Shared /mnt/Shared -o credentials=/usr/local/etc/Share.cifs,noperm
ただし、#2の使用を中止し、代わりにローカルクライアントにADコンテキストで使用される名前を知らせる必要があります。ここにはあまりにも多くの内容がありますが、ポイントは次のとおりです。
- インストール
realmd
と依存samba
関係 - DNSサーバーがADドメインサーバー(またはそれに対応するローカルサーバー)であることを確認してください。
- 検索を実行し
realm discover
、正しいADドメインを表示できることを確認してください。 realm join {domain}
ドメインに参加するには実行してください。
これで、他のADユーザーがローカルシステムにログインすることを拒否できます。見てみるコマンドはrealm deny -all
と の変形realm permit --groups 'domain admins'
とAllowUsers
とのAllowGroups
変形です/etc/ssh/sshd_config
。ドメイン管理者でない場合は、この設定を変更する必要があります。マニュアルページはとても素晴らしいです。
次のコマンドを使用して、接続が成功したかどうかをテストできます。
net ads testjoin
getent password my_windows_account_name # As above
getent group "domain admins" # An example group that will exist
答え2
このstat
コマンドは、ファイル/ディレクトリのタイムスタンプ、所有権、およびその他のメタデータをスクリプトに優しい方法で表示できます。man 1 stat
詳しくは参考資料をご覧ください。
特権、特に ACL の場合、getfacl
これが必要なコマンドです。他のさまざまな属性にはがありますgetfattr
。
すべてのサブディレクトリを含む特定のディレクトリにどれだけのデータがあるかを知りたい場合は、このdu
コマンドが必要です。