我一直在做一些 shell 编写,并遇到了access()
检查文件是否存在、是否可以读取等的建议。似乎超级容易实现并且比stat()
. 当我开始查看它的手册页时,我注意到不建议使用它,因为它可能导致安全漏洞。手册页是这样说的:
使用 access() 来检查用户是否被授权例如在使用 open(2) 实际打开文件之前打开文件会产生安全漏洞,因为用户可能会利用检查和打开文件之间的短时间间隔来操作它。
有谁知道如何利用它,或者它是否仅适用于open()
检查文件后使用?我知道很多人说要stat()
改用,但access()
它很容易实现,尤其是对于我使用它的 shell。