Linux sudo用户能否读取已启用sudo访问的命令文件?

Linux sudo用户能否读取已启用sudo访问的命令文件?,linux,sudo,elevated-privileges,Linux,Sudo,Elevated Privileges,我有一个普通的Linux用户,比如user1,它可以访问命令/usr/local/bin/command.sh /usr/local/bin/command.sh具有700权限。因此,user1能够成功运行 sudo/usr/local/bin/command.sh 现在我想知道,使用sudo命令,权限升级正在发生。他是否有可能或甚至有一点点可能读取/usr/local/bin/command.sh的内容?sudo by design是一个非常严格的基于命令的实现吗?一个词的答案是:不 (…)因

我有一个普通的Linux用户,比如user1,它可以访问命令/usr/local/bin/command.sh

/usr/local/bin/command.sh具有700权限。因此,user1能够成功运行

sudo/usr/local/bin/command.sh


现在我想知道,使用sudo命令,权限升级正在发生。他是否有可能或甚至有一点点可能读取/usr/local/bin/command.sh的内容?sudo by design是一个非常严格的基于命令的实现吗?

一个词的答案是:不

(…)因此user1能够成功运行(…)


严格来说,运行该可执行文件的不是
user1
,而是用户切换到使用sudo(在您的情况下是root),用户当然也可以读取该文件。现在,如果通过sudo运行的可执行文件中存在漏洞,您可以借助该漏洞读取任意代码。文件,但这将是不好的。

因此,根据设计,sudo只按原样执行命令。不多不少。当然,在我的例子中,作为根用户。因此,除非sudo本身存在一些漏洞或执行的命令可被利用,否则正在执行的命令文件是不可读的。我想制作一些脚本,并在不透露细节的情况下向普通用户提供访问权限。谢谢。KyTiSij:嗯,考虑到你的用户可能能够使用USB拇指驱动器或LIFECD来启动机器。然后您的脚本将不再是“不可读的”——除非您将其放入加密分区,该分区使用TPM或类似工具中的某种形式的测量引导保护密钥进行加密。一般来说,试图对计算机上运行的任何内容保密都是愚蠢的。