看为什么普通用户不能“chown”文件?因为无限制地访问 chown 是一个坏主意。但是,我想实现一个受限版本。我想允许用户 adam 将文件提供给用户 bobby,并且只允许此传输。
答案1
我想允许用户 adam 将文件提供给用户 bobby,并且只允许此传输。
为此,您需要有一个以 root 身份运行的程序,进行必要的检查并更改给定文件的所有者。以 root 身份运行很容易,您可以使用sudo
setuid 程序,正确完成检查以使程序不会被滥用,但比较困难。
可能有效的方法是:1)打开文件2)用于fstat()
检查其所有者3)然后fchown()
更改所有者。
需要通过 fd 来处理文件,因为通过文件访问姓名不保证正在检查的文件是稍后操作的文件。该文件可以在两者之间进行更改。
另一种选择是实现一种“上传服务”,该服务将通过网络从 接收文件(其内容)adam
,然后bobby
根据接收到的数据创建全新的文件。
我认为这些都不是现成的工具,尽管后者类似于电子邮件。
答案2
您可以chmod
允许每个人都可以写入该文件,然后所有权就变得不那么重要了。
chmod 777 file
让每个人都可以对该文件执行几乎任何操作。