【问题标题】:Make password protected file/command/executable使受密码保护的文件/命令/可执行文件
【发布时间】:2018-07-09 12:39:40
【问题描述】:

我已经为 .C 文件创建了可执行文件,并通过移动到 /bin 目录将该可执行文件作为命令。现在我该如何为该命令设置密码保护。就像每当我们想运行时,它应该要求输入密码才能执行。它应该适用于特定用户而不是所有用户(root除外)。****

【问题讨论】:

  • 在您的 C 代码中检查 uid
  • 您似乎误解了“密码保护”在 Linux 中的工作原理。没有这样的事情,至少一般情况下没有。您可以做的最接近的方法是检查您的 uid 是否为 0(以 root 身份运行),如果不是,则退出。

标签: c linux bash shell ubuntu


【解决方案1】:

这不是在类 Unix 世界中安全工作的方式。正确的做法是将执行权限限制为仅部分用户。如果该命令只能由一个用户访问,则它必须由该用户拥有,模式为r-x------。或者,您可以使用自定义组并将所有可以使用该命令的用户放在该组中。这里有趣的一点是该命令仍然可以由bin 用户拥有:

你应该使用(作为根):

# chown bin cmd
# chgrp grp cmd
# chmod 0550 cmd

这样,只有grp 组的成员可以使用命令cmd,并且只有root 可以更改或删除它。并且该命令在执行时不需要获得root权限。

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您可能有兴趣使用命令visudo 设置sudoers。它基本上允许为用户(有或没有密码)定义执行预定义命令的权限。

    对于ubuntu,这里有解释:https://doc.ubuntu-fr.org/sudoers

    【讨论】:

      【解决方案3】:
      sudo chmod 700 <file_path>
      

      这仅允许您运行、读取和写入文件。 Root 也将自动能够运行它,因为它拥有所有权限。

      编辑:您需要以您想要访问的用户身份执行此操作(或运行chown &lt;username&gt; &lt;path&gt;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-15
        • 2011-02-06
        • 2014-12-16
        • 2017-08-14
        • 1970-01-01
        • 2014-04-18
        • 2010-09-22
        • 1970-01-01
        相关资源
        最近更新 更多