我需要哪些权限才能发送其他人/根文件?

我需要哪些权限才能发送其他人/根文件?

因此,我在系统中使用了一些权限,然后我注意到没有指定将文件发送到其他地方的权限。

作为一个简单的用户,我尝试了以下命令: 我很满意收到一条消息,但仍然不清楚发送文件需要什么权限。mail -a //etc/shadow [email protected]Permission Denied

我的意思是,我使用mail邮件协议的命令,但是其他命令或其他协议呢?

顺便说一句,该文件的权限shadow是:

-rw-r-----   1 root  shadow    1759 Oct 23  2017 shadow

答案1

没有,因为“发送”文件并不是真正的文件系统级操作。该mail命令的作用是打开文件进行读取,读取数据,然后通过网络套接字发送(写入)它(可能在电子邮件的情况下进行编码,但这并不重要)。同样,FTP 客户端scp或任何其他客户端也会执行相同的操作,它们会像平常一样读取文件。

您没有 的读取权限/etc/shadow,因此mail使用您的用户 ID 运行无法打开它进行读取。

Linux确实有sendfile()系统调用read(),它直接在两个文件描述符之间复制数据,但这与调用一个文件描述符和write()另一个文件描述符基本相同,只是它发生在内核中,因此系统调用开销较少。它也需要打开源代码才能阅读。

相关内容