我听说以与任务所有者完全不同的权限集的用户身份运行可执行文件是一种很好的做法。事实上,我听说最好以具有完全相反权限集的不同用户身份运行它。我可以理解限制运行时用户的权限,但这不能通过该setuid
功能来实现吗?
答案1
如果我理解正确的话,您有一个由普通用户运行的应用程序,其关联文件不可被普通用户写入,以防止意外删除。为此,您不需要 setuid。您需要做的就是:
chown -R root.root /opt/theapp
chmod -R g-w /opt/theapp
chmod -R o-w /opt/theapp
chmod 755 /opt/theapp/bin/theexe
这意味着您将文件的所有权授予 root,禁止所有其他用户写入并允许每个用户读取和执行但不允许写入可执行文件。
答案2
我想说这通常是一个坏主意;几乎在每种情况下,您都希望可执行文件具有与您相同的权限,因为您通常希望让可执行文件对您的文件执行其设计的任何操作。例如,如果您将文本编辑器设置为非特权用户,您将无法编辑任何文本文件...