在我们公司,我们有一个共享的 Windows 文件夹。如果我从 Windows 访问它,我可以弹出文件的属性菜单并找到它的元数据:创建它的人、上次访问时间等等。
在 linux 上,我使用mount -t cifs
. 我想编写一个脚本来获取有关文件夹使用情况的一些统计信息。
有没有办法从 linux 访问这个元数据?
UPD:我不能使用getfacl
,stat
或ls -la
用于我的任务,因为所有这些都只给了我安装此文件夹的本地 linux 用户名,而不是来自 Windows 域服务器的名称。
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,尽管我强烈建议您将用户凭据移动到只能由 root 和代表帐户凭据的本地用户读取的安全文件中。详情见
man mount.cifs
_但是,您需要停止使用 #2,而是让您的本地客户了解 AD 上下文中使用的名称。这对这里来说太多了,但要领是这些
realmd
和samba
依赖realm discover
以查找并检查您是否可以看到正确的 AD 域realm join {domain}
加入域您现在可能想要拒绝其他 AD 用户登录到您的本地系统。要查看的命令是 和 的变体
realm deny -all
,realm permit --groups 'domain admins'
以及AllowUsers
和AllowGroups
in/etc/ssh/sshd_config
。如果您不是域管理员,则需要相应地进行更改。手册页非常好。您可以使用以下命令测试连接是否成功
该
stat
命令可以以适合脚本编写的方式显示文件/目录时间戳、所有权和其他一些元数据:man 1 stat
有关更多信息,请参阅。对于权限,尤其是 ACL,
getfacl
是您需要的命令。对于其他其他属性,有getfattr
.如果您想知道特定目录(包括其所有子目录)中有多少数据,则需要该
du
命令。