【问题标题】:Postfix: set privileges for a certain command pipe alias [closed]后缀:为某个命令管道别名设置权限[关闭]
【发布时间】:2012-11-03 21:46:49
【问题描述】:

我正在尝试为 Postfix 中的命令设置一个别名来管道传入邮件。所以我的/etc/aliases 中有这样的东西:

myuser: "|/usr/bin/command --parameter1 --parameter2"

问题在于 Postfix 以用户 nobody:nogroup 的身份执行 /usr/bin/command。根据this description,它可以更改,但不能更改单个别名。那么问题是如何为某个别名设置用户?为目录/usr/bin/command 设置nobody:nogroup 应该运行不是一个选项。

【问题讨论】:

    标签: linux permissions pipe alias postfix-mta


    【解决方案1】:

    /usr/bin/command替换为/usr/bin/sudo -u <user> /usr/bin/command并配置sudo以允许nobody执行此命令。

    [编辑]您的问题有两种解决方案:

    1. 使nobody:nogroup 的所有必要文件都可以读/写
    2. 更改用户(使用suid scriptsu/sudo)。

    如果您不喜欢其中任何一个,那么您的问题就没有解决方案。在aliases(5) 中不能这样做,因为格式不支持这个(其他程序也读取这个文件,所以 postfix 不能改变语法)。

    您可以使用default_privs,但这会更改所有外部命令的用户,而您不希望这样(巨大的安全风险)。

    【讨论】:

    • 我已经考虑过了,但在我看来这是一个非常粗暴的解决方案。离 chown nobody:nogroup 到我需要的目录不远。这真的是在 Postfix 中更改别名命令的所有者的常用方法吗?
    • @FmyOen:Linux 没有提供任何其他方法来解决这个问题。 sudo至少限制了这个操作;当您chown 文件时,任何人都可以阅读(甚至可能更改)它们。
    • 也许我们可以使用一些 Postfix 设置来解决这个问题?我的意思不是指定 Postfix 应该执行哪些命令,而是指定它应该如何执行。
    • 也许,但在内部,Postfix 调用 sudo(或 sudo 使用的内核 API)。
    • 实际上你可以简单地 create a secondary aliases 由想要的用户拥有。一旦在main.cf 中注册,所有管道命令都以aliases.db 文件所有者的用户身份运行,其中许多在alias_database/alias_maps 的逗号分隔列表中
    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 2018-08-02
    • 2014-12-11
    • 2017-03-06
    • 2013-11-28
    相关资源
    最近更新 更多