如何找出谁在Lion服务器上访问过文件?


1

我有一个狮子服务器,可由多人访问。是否有可能找出哪些用户访问过文件?


他们究竟是如何访问服务器的?SMB?AFP?对于您正在寻找的内容,没有内置的解决方案...是您要监控的特定文件,还是您想拥有一般活动日志?
slhck

他们正在连接SMB,我想了解已经存在的文件。所以它看起来没有希望
geminiCoder

Answers:


0

在研究了这个主题后,我不相信这是可能的,因为你需要设置一个日志程序,它默认不是内置的。您可以让最后一个人访问该文件,但不能访问以前的访问者。


0

我没有资格回答这个问题,因为我没有在Macos上运行服务的经验,但另一个答案似乎极具误导性,我将尝试纠正。

除非我非常误解,Macos中的SMB实现是Samba,它也用于大多数基于Linux和BSD的操作系统。对于Samba的当前Gentoo Linux安装,以下说明是正确的,因此转录文件路径,服务管理命令和日志记录细节仍然是padawan系统管理员的练习。

打开smb.conf文件,将以下行更改或添加到配置的全局部分:

log level = 2

同时查找此条目,它会告诉您日志文件的最终位置:

log file = /var/log/samba/log.%m

(客户端IP地址替换为%m部件。)

保存文件,然后重新启动Samba服务。乐在为客户地址(让我们使用的IPv4回环现在)日志文件/var/log/samba/log.127.0.0.1。在unix shell中,这可以完成

$ tail -f /var/log/samba/log.127.0.0.1

如果您现在通过环回地址和get文件访问共享(在不同的shell中),则会显示此信息以及用于访问的用户名。

$ smbclient ${whatever_options_you_need} //127.0.0.1/${sharename}
smb: \> get testfile.txt

日志文件中的结果应该是这样的:

[2012/09/16 13:10:13.562687,  2] smbd/open.c:704(open_file)
  ${user} opened file testfile.txt read=Yes write=No (numopen=1)
[2012/09/16 13:10:13.564096,  2] smbd/close.c:696(close_normal_file)
  ${user} closed file testfile.txt (numopen=0) NT_STATUS_OK
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.