chroot命令和chroot()系统调用之间的区别是什么

chroot命令和chroot()系统调用之间的区别是什么,chroot,Chroot,有人能帮助我理解chroot命令和chroot()系统调用之间的真正区别吗?系统调用是程序与内核交互的一种方式 unix工具命令要么是一个小型独立程序(在本例中),要么是一个内置的shell(在某些其他情况下)。这允许用户或脚本执行操作,而无需为此提供低级程序代码 如果命令和系统调用具有相同的名称,则该命令通常提供一种实现系统调用功能或类似功能的方法 系统调用记录在手册第2节中,而命令可能在其他地方,如第8页。所以如果你打字 man 2 chroot您将获得系统调用的文档 如果你打字 man8c

有人能帮助我理解chroot命令和chroot()系统调用之间的真正区别吗?

系统调用是程序与内核交互的一种方式

unix工具命令要么是一个小型独立程序(在本例中),要么是一个内置的shell(在某些其他情况下)。这允许用户或脚本执行操作,而无需为此提供低级程序代码

如果命令和系统调用具有相同的名称,则该命令通常提供一种实现系统调用功能或类似功能的方法

系统调用记录在手册第2节中,而命令可能在其他地方,如第8页。所以如果你打字

man 2 chroot
您将获得系统调用的文档

如果你打字

man8chroot
(或者在许多情况下根本无法指定页面)您将获得该命令的文档

如果你打字


哪个chroot
您将找到实现该命令的可执行文件的位置,假设它像通常一样位于您的搜索路径中。

我认为这是今天最愚蠢的问题。这个问题非常清楚,而且完全合适。那么,好吧,答案将是:与mkdir()相同系统调用和mkdir命令。Ingo,我不认为这是一个愚蠢的问题。如果您不知道的话,我找到了答案,并发现使用chroot()作为系统调用时存在安全漏洞,这与使用chroot命令的情况不同。chroot机制用于沙箱系统(主要是unix),以便可以在隔离环境中执行未经测试的代码。chroot()允许退出此环境,可能会损坏安全文件。