AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-391989

William Seligman's questions

Martin Hope
William Seligman
Asked: 2023-11-09 00:37:37 +0800 CST

将 access 文件从 sendmail 转换为 postfix

  • 7

我希望将已有两年历史的高度配置的 sendmail 安装(当前在 AlmaLinux 9 上运行)转换为 postfix。其中的转换是将现有/etc/mail/access文件调整为/etc/postfix/access.

有些语句看起来可以直接复制,但如果可以的话请确认这一点:

# by default we allow relaying from localhost...
Connect:127.0.0.1               RELAY

# Allow systems on our DMZ to use this server.
Connect:123.44.55               RELAY

# Allow systems on our NAT network to use this server as well.
Connect:10.44                   RELAY

# Accept mail sent to our  domain.
To:company.example.com          OK

# Forward any mail sent to our mailing-list server.
mailinglist.company.example.com     RELAY

# Reject commonly-used non-existent addresses
From:[email protected]   ERROR:5.7.1:550 Fake source address
From:[email protected]              ERROR:5.7.1:550 Fake source address
From:[email protected]            ERROR:5.7.1:550 Fake source address
From:[email protected]            ERROR:5.7.1:550 Fake source address

# 28-Nov-2005: Too much spam is being relayed by these guys, and bounced to us.
Connect:66.155.233.70               ERROR:5.7.1:550 Your mail server is a spam relay

# 09-Jun-2016: Uber-bad domain list. There are almost no servers in these domains that do
# not send spam. 
accountants                     ERROR:5.7.1:550 Domain used to send spam
bid                             ERROR:5.7.1:550 Domain used to send spam

# 09-Jun-2016: We've got a problem: When an unknown user receives
# email on our mail server, our mail server will reject mail
# to these users with "DSN: User unknown". This sounds fine, except
# that for aliases it sends a new email with that message back to the server
# that sent it. This results in "backscatter": our mail server starts
# sending mail from spammers back to bogus servers or forged
# addresses. The following is a list of user names completely retired
# from our mail server. It may not solve this problem, but it will
# hopefully reduce it. 

To:aaron@                    ERROR:550 No such user 
To:betsy@                    ERROR:550 No such user 

我遇到困难的地方:Sendmail 允许我在每个系统或每个域的基础上设置邮件延迟和连接限制。我搜索了 postfix 文档,但我不知道如何做到这一点。

具体来说,如果我在 中包含以下语句/etc/mail/sendmail.mc:

FEATURE(`greet_pause', `500')  dnl 
FEATURE(`ratecontrol', `nodelay', `terminate') dnl
define(`confCONNECTION_RATE_THROTTLE',`200') dnl
define(`confCONNECTION_RATE_WINDOW_SIZE',`60s') dnl
FEATURE(`conncontrol', `nodelay', `terminate') dnl

然后在 中/etc/mail/access,我可以包含如下语句:

GreetPause:batchmanager.company.example.com    400
GreetPause:company.example.com   0
GreetPause:mailinglist.company.example.com  0
GreetPause:127.0.0.1            0
GreetPause:friend.other.com     20
GreetPause:friendly.other.gov   20
GreetPause:10.44                0

ClientRate:123.44.55.66         6000    # mailinglist
ClientRate:123.44.55.77         60      # batchmanager
ClientRate:127.0.0.1            0
ClientRate:123.44.55            60

ClientConn:123.44.55.77         5       # batchmanager
ClientConn:123.44.55.66       500       # mailinglist

还有一些远程站点的 TLS 配置似乎存在问题。或者也许是我们有问题,但只有这些网站选择检测并拒绝它。我在以下位置解决这个问题/etc/mail/access:

Try_TLS:yetanother.different.com NO

我已经做过 RTFM,但没有运气。关于如何在 postfix 中实现这些功能有什么想法吗?

postfix
  • 1 个回答
  • 117 Views
Martin Hope
William Seligman
Asked: 2023-09-09 02:49:46 +0800 CST

使用 PXE 进行 DHCP 故障转移

  • 5

我正在尝试设置 DHCP 故障转移,并允许从其中一台 DHCP 服务器进行 PXE 引导。根据 DHCP 规范的要求,我为“常规”DHCP 和 PXE 启动设置了单独的池。我的故障转移配置工作正常,但应该响应 PXE 请求的 DHCP 配置不再工作。

背景:我最近升级到了 AlmaLinux 9(从 CentOS 7),它运行 ISC DHCP 4.4。在旧配置中,我没有 DHCP 故障转移,并且允许从整个池进行 PXE 引导。由于我们站点的硬件故障历史记录,我想设置 DHCP 故障转移。

出于此配置的目的,我们将应该响应 PXE 请求的系统称为“主”DHCP 服务器。/etc/dhcp/dhcpd/conf这是该服务器的一个片段。请注意,我设置了一个单独的池来处理 PXE/BOOTP 查询。(请原谅这些评论的说教语气。它们是为我做系统管理员工作的。)

authoritative; # Send out acknowledgements to DHCP client queries.

failover peer "dhcp-failover" {
  primary; # declare this to be the primary server
  address 10.4.7.9;
  port 647;
  peer address 10.4.7.210;
  peer port 647;
  # How many seconds to wait before we assume that the other has failed.
  max-response-delay 30;
  # How many BNDUPD messages to send before receiving BNDACK.
  max-unacked-updates 10;
  # How many seconds to wait before disabling load balancing.
  load balance max seconds 3;
  # Maximum Client Lead Time = How long a lease may be renewed
  # without contacting the other DHCP peer.
  mclt 1800;
  # The split between primary and secondary. 128 means a
  # 50% split between peers; 255 means the primary handles
  # everything until it fails. 
  split 128;
}

# This is the primary DHCP server. Respond to BOOTP requests.
allow booting;
allow bootp;

option domain-name "company.example.com";
option time-offset -18000; # Eastern Standard Time

# Is this a DHCP query (as opposed to a BOOTP query)?
class "dhcp" {
      match if exists dhcp-message-type;
}
class "pxe" {
      match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
}

subnet 10.4.0.0 netmask 255.255.0.0 {
    default-lease-time 86400; # one day (in seconds)
    option subnet-mask 255.255.0.0;
    option broadcast-address 10.4.255.255;
    option routers 10.4.0.1;
    option domain-name-servers 10.4.7.7, 10.4.7.29; 
    option domain-name "company.example.com";
    option time-offset -18000; # Eastern Standard Time
    option ntp-servers 10.4.7.105, 10.4.7.7, 10.4.7.29;

    pool {
         failover peer "dhcp-failover";
         deny dynamic bootp clients;
         deny members of "pxe";
         range 10.4.45.1 10.4.45.250; # DHCP pool on private network
    }
    # A separate pool for BOOTP services.
    pool {
         range dynamic-bootp 10.4.45.251 10.4.45.255; # DHCP pool on private network
         allow dynamic bootp clients;
         deny members of "dhcp";
         allow members of "pxe";
         next-server 10.4.7.9;    # On which system the bootp filename is located.

         if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {

            if substring(option vendor-class-identifier,15,5) = "00007" {
               log(info,"UEFI PXE Boot - private network");
               filename "pxelinux/grubx64.efi"; # The file to load for EFI systems.
               }
            else {
                log(info,"BIOS PXE Boot - private network");
                filename "pxelinux.0"; # The file to load via bootp for BIOS systems.
                }
        }
    }
}

这是来自/etc/dhcp/dhcpd.conf故障转移/辅助/非 PXE 服务器:

authoritative; # Send out acknowledgements to DHCP client queries. 

failover peer "dhcp-failover" {
  secondary; # declare this to be the secondary server
  address 10.4.7.210;
  port 647;
  peer address 10.4.7.9;
  peer port 647;
  # How many seconds to wait before we assume that the other has failed.
  max-response-delay 30;
  # How many BNDUPD messages to send before receiving BNDACK.
  max-unacked-updates 10;
  # How many seconds to wait before disabling load balancing.
  load balance max seconds 3;
}

# Make sure that this failover DHCP server does _not_
# respond to bootp.
deny bootp;

option domain-name "company.example.com";
option time-offset -18000; # Eastern Standard Time

# Is this a DHCP query (as opposed to a BOOTP query)?
class "dhcp" {
      match if exists dhcp-message-type;
}
class "pxe" {
      match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
}

subnet 10.4.0.0 netmask 255.255.0.0 {
    default-lease-time 86400; # one day (in seconds)
    option subnet-mask 255.255.0.0;
    option broadcast-address 10.4.255.255;
    option routers 10.4.0.1;
    option domain-name-servers 10.4.7.7, 10.4.7.29; 
    option domain-name "company.example.com";
    option time-offset -18000; # Eastern Standard Time
    option ntp-servers 10.4.7.105, 10.4.7.7, 10.4.7.29;

    # Note that there are a few IP addresses in the range of the primary
    # server that are not included here. This is for BOOTP, which is
    # not handled by the secondary server.
    pool {
         failover peer "dhcp-failover";
         deny dynamic bootp clients;     
         deny members of "pxe";
         range 10.4.45.1 10.4.45.250; # DHCP pool on private network
    }
}

我知道我对“dhcp”和“pxe”类做得太过了。我在尝试解决问题时添加了它们。除了引入下面的日志消息之外,它们没有任何作用peer holds all free leases。

这是我在“主”服务器的日志中看到的内容。请注意,这52:54:00:31:f2:7f是我设置为通过 PXE 启动的测试系统的 MAC 地址,然后它“放弃”并从磁盘启动。

Sep  8 14:20:46 dhcpd dhcpd[17922]: DHCPDISCOVER from 52:54:00:31:f2:7f via enp7s0: peer holds all free leases
Sep  8 14:20:49 dhcpd dhcpd[17922]: DHCPDISCOVER from 52:54:00:31:f2:7f via enp7s0: peer holds all free leases
Sep  8 14:20:57 dhcpd dhcpd[17922]: DHCPDISCOVER from 52:54:00:31:f2:7f via enp7s0: peer holds all free leases
Sep  8 14:21:13 dhcpd dhcpd[17922]: DHCPDISCOVER from 52:54:00:31:f2:7f via enp7s0: peer holds all free leases

这是来自“辅助”服务器上的日志。这与客户端首次启动时大约一分钟的延迟是一致的,因为它试图找到 PXE 服务器,直到它从操作系统启动切换到以通常的方式获取 DHCP 地址。

Sep  8 14:20:46 dhcpdsec dhcpd[67768]: DHCPDISCOVER from 52:54:00:31:f2:7f via enp7s0: peer holds all free leases
Sep  8 14:20:46 dhcpdsec dhcpd[67768]: bind update on 10.4.45.183 from dhcp-failover rejected: incoming update is less critical than outgoing update
Sep  8 14:20:49 dhcpdsec dhcpd[67768]: DHCPDISCOVER from 52:54:00:31:f2:7f via enp7s0: peer holds all free leases
Sep  8 14:20:57 dhcpdsec dhcpd[67768]: DHCPDISCOVER from 52:54:00:31:f2:7f via enp7s0: peer holds all free leases
Sep  8 14:21:13 dhcpdsec dhcpd[67768]: DHCPDISCOVER from 52:54:00:31:f2:7f via enp7s0: peer holds all free leases
Sep  8 14:22:03 dhcpdsec dhcpd[67768]: DHCPREQUEST for 10.4.45.183 from 52:54:00:31:f2:7f via enp7s0
Sep  8 14:22:04 dhcpdsec dhcpd[67768]: DHCPACK on 10.4.45.183 to 52:54:00:31:f2:7f via enp7s0

通过在早期测试中的反复尝试,我确认 的值substring (option vendor-class-identifier, 0, 9)确实是PXEClient。

我已经尝试停止两台机器上的 dhcpd 守护进程并手动编辑 in 的52:54:00:31:f2:7f条目/var/lib/dhcpd/dhcpd.leases。不用找了。

有任何想法吗?

编辑:我想到,发布我以前的 DHCP 配置(无需故障转移)可能会有所帮助。PXE 启动工作正常:

subnet 10.4.0.0 netmask 255.255.0.0 {
    range dynamic-bootp 10.4.45.1 10.4.45.254; # DCHP pool on private network
    default-lease-time 86400; # one day (in seconds)
    option subnet-mask 255.255.0.0;
    option broadcast-address 10.4.255.255;
    option routers 10.4.0.1;
    option domain-name-servers 10.4.7.7, 10.4.7.29; 
    option domain-name "nevis.columbia.edu";
    option time-offset -18000; # Eastern Standard Time
    option ntp-servers 10.4.7.105, 10.4.7.7, 10.4.7.29;
    next-server 10.4.7.9;    # On which system the bootp filename is located.

    if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {

        if substring(option vendor-class-identifier,15,5) = "00007" {
            log(info,"UEFI PXE Boot - private network");
            filename "pxelinux/grubx64.efi"; # The file to load for EFI systems.
            }
        else {
            log(info,"BIOS PXE Boot - private network");
            filename "pxelinux.0"; # The file to load via bootp for BIOS systems.
        }
    }
}
pxe-boot
  • 1 个回答
  • 62 Views
Martin Hope
William Seligman
Asked: 2023-01-01 10:23:40 +0800 CST

sendmail 和基于 LDAP 的别名

  • 5

环境:CentOS 7.9、Sendmail 8.14、OpenLDAP 2.4

我试图让 sendmail 从 LDAP 数据库中读取它的别名(这已经与 NIS 一起工作多年,但 NIS 正在逐渐消失)。我的邮件服务器是一个 LDAP 客户端。在mailserver:/etc/mail/sendmail.mc:

define(confLDAP_DEFAULT_SPEC, `-H ldaps://ldap.myoffice.mycompany.org -b "ou=Aliases,dc=myoffice,dc=mycompany,dc=org" -d "uid=sendmail,dc=myoffice,dc=mycompany,dc=org" -M simple -P /etc/mail/secret')dnl
define(`ALIAS_FILE',`ldap:-k (&(objectClass=nisMailAlias)(cn=%0)) -v "rfc822MailMember",/etc/aliases')dnl

推导出第一行是痛苦的,因为我的 web-fu 很差,因为我在 LDAP 的 sendmail K 宏上搜索文档。这个页面是我能找到的最好的页面,它似乎适用于旧版本的 sendmail。

当我在邮件服务器上重新启动 sendmail 并尝试使用别名数据库时,响应是:

# sendmail -bv sysadmin
ldap_init/ldap_bind failed to ldaps://ldap.myoffice.mycompany.org in map Alias0: Protocol error
sysadmin... deliverable: mailer local, user sysadmin

请注意,当我恢复到 NIS 版本时,别名解析;这是我期待的输出:

# sendmail -bv sysadmin
myname... deliverable: mailer local, user myname

在mailserver:/etc/openldap/ldap.conf:

BASE    dc=myoffice,dc=mycompany,dc=org
URI     ldaps://ldap.myoffice.mycompany.org ldaps://ldap-replica-1.myoffice.mycompany.org ldaps://ldap-replica-2.myoffice.mycompany.org

SIZELIMIT       unlimited

TLS_CACERT /etc/mail/certs/certs-latest/__myoffice_mycompany_org.cer
TLS_CACERTDIR /etc/mail/certs/certs/certs-latest

__myoffice_mycompany_org.cer是 PEM 格式,包含我的站点的证书链和通配符证书,*.myoffice.mycompany.org.

对于 sendmail 之外的身份验证和搜索,通过邮件服务器的 LDAP 客户端配置进行的 LDAP 搜索似乎工作正常。这是我的测试,所有测试都产生了我期望的结果:

# Authentication-type searches
ldapsearch -LLL -x -H ldaps://ldap.myoffice.mycompany.org "(uid=myname)"
ldapsearch -LLL -x uid=myname -b dc=myoffice,dc=mycompany,dc=org
ldapsearch -LLL -x uid=myname

# Mail-aliase-type searches
ldapsearch -x -h ldap.myoffice.mycompany.org -b "ou=Aliases,dc=myoffice,dc=mycompany,dc=org" "cn=sysadmin"
ldapsearch -x -H ldaps://ldap.myoffice.mycompany.org -b "ou=Aliases,dc=myoffice,dc=mycompany,dc=org" "cn=sysadmin"
ldapsearch -H ldaps://ldap.myoffice.mycompany.org -b "ou=Aliases,dc=myoffice,dc=mycompany,dc=org" "(cn=sysadmin)" -D "uid=sendmail,dc=myoffice,dc=mycompany,dc=org" -y /etc/mail/secret

最后三个命令的输出是相同的,并且表明我根据以下内容在 LDAP 服务器上设置了别名misc.schema:

# extended LDIF
#
# LDAPv3
# base <ou=Aliases,dc=myoffice,dc=mycompany,dc=org> with scope subtree
# filter: cn=sysadmin
# requesting: ALL
#

# sysadmin, Aliases, myoffice.mycompany.org
dn: cn=sysadmin,ou=Aliases,dc=myoffice,dc=mycompany,dc=org
cn: sysadmin
objectClass: nisMailAlias
objectClass: top
rfc822MailMember: myname

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

请注意,对于ldapsearch上面的最后一项,为了尝试调试正在发生的事情,我uid=sendmail,dc=myoffice,dc=mycompany,dc=org在我的 LDAP 服务器上创建了一个单独的用户,明文密码在/etc/mail/secret.

在sendmail.mc中,我也尝试过:

define(confLDAP_DEFAULT_SPEC, `-h ldap.myoffice.mycompany.org -b "ou=Aliases,dc=myoffice,dc=mycompany,dc=org"')dnl
define(confLDAP_DEFAULT_SPEC, `-H ldaps://ldap.myoffice.mycompany.org -b "ou=Aliases,dc=myoffice,dc=mycompany,dc=org"')dnl

但结果是一样的。

只是为了确认该帐户myname存在(尽管我怀疑这是问题所在):

# ldapsearch -LLL -x uid=myname -b dc=myoffice,dc=mycompany,dc=org
dn: uid=myname,ou=People,dc=myoffice,dc=mycompany,dc=org
uid: myname
cn: Bill Myname
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowLastChange: 17316
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 11230
gidNumber: 10130
homeDirectory: /myoffice/desktop/home/myname
gecos: Bill Myname,Room 321,x2280

我错过了什么?或者换句话说,sendmail 中的 LDAP 查找与 CentOS 其余部分中的 LDAP 查找有何不同?

编辑:

我发现一个网页表明问题可能是 CentOS 7 上的 sendmail 可能使用其 NSS 存储中的证书,而不仅仅是CERT_DIR目录中的文本文件。我按照该页面上建议的说明进行操作:

cd /etc/openldap/certs
certutil -A -d . -n "Myoffice 2022" -a -i /etc/mail/certs/certs-latest/__myoffice_mycompany_org.cer -t "CT,c,"

但这并没有改变 sendmail 的 LDAP+aliases 行为。

ldap
  • 1 个回答
  • 39 Views
Martin Hope
William Seligman
Asked: 2017-03-30 09:02:52 +0800 CST

安装 NFS 的 /var/spool/mail 用于 dovecot 和 procmail 的权限问题

  • 0

我的邮件服务器设置工作了多年。最近我开始遇到以下问题:

邮件设置:sendmail+dovecot+procmail

主机文件服务器:CentOS 6.8,NFS 将邮件目录导出到...

邮件服务器:CentOS 7.3,通过 libvirtd/qemu 作为来宾 VM 在主机上运行,​​NFS 从主机挂载 /var/spool/mail。

症状:dovecot 和 procmail 都发出了错误(详情如下),似乎表明它们没有写入 /var/spool/mail 的权限。但是,/var/spool/mail 在 NFS 文件服务器和邮件 NFS 客户端上都具有我知道如何授予的最通用权限。

在邮件服务器(NFS 客户端)上:

 $ ls -lhd /var/spool/mail
 drwxrwxrwt 5 root mail 6.8M Mar 29 12:37 /var/spool/mail

在邮件服务器:/etc/fstab 中:

 filehost:/mail/inbox      /var/spool/mail         nfs     defaults        0 0

在 NFS 主机上:

 $ ls -lhd /mail/inbox
 drwxrwxrwt. 5 root mail 6.8M Mar 29 12:41 /mail/inbox

在文件主机:/etc/exports 中:

 /mail/inbox          mailserver(rw,no_root_squash,async,nohide)

两个系统都没有运行 SELinux 或 iptables(我依赖于我们网站的防火墙)。

我看到的东西种类:

  • 名称类似于 BOGUS.normaluser.hex-string 的文件。对应的日志信息是

    3 月 29 日 12:14:34 邮件服务器 procmail[20922]:将伪造的“/var/spool/mail/normaluser.lock”重命名为“/var/spool/mail/BOGUS.normaluser.xGAs”

    这可能非常烦人,因为有时不仅锁定文件被声明为虚假,而且普通用户的收件箱也是如此。从普通用户的角度来看,他们的收件箱在他们阅读邮件时消失了。

  • 名称以下划线开头的文件,例如 _2-E,eu92YB.mailserver.domain。

    没有相应的日志消息。这些文件的内容(总是 1 字节或 31-33 字节)表明这些是锁定文件。我昨天看到的一个网页描述了有人使用 strace 来识别 procmail 正在编写这些文件,但我不知道如何使用 strace 为自己确认这一点(我今天找不到该页面)。

    当我列出文件时,我看到它们是 chmod 400,这可能是它们没有被删除的原因:

-r-------- 1 个普通用户邮件 1 Mar 29 12:30 _uZF%kE-2YB.mailserver.domain
-r-------- 1 个普通用户邮件 1 Mar 29 12:30 _uZF+kE-2YB.mailserver.domain
-r-------- 1 个普通用户邮件 1 Mar 29 12:31 _uZF,kF-2YB.mailserver.domain
-r-------- 1 个普通用户邮件 1 Mar 29 12:31 _uZF.kF-2YB.mailserver.domain
-r-------- 1 个普通用户邮件 1 Mar 29 12:31 _uZF+kF-2YB.mailserver.domain
  • 不会消失的锁文件。典型的邮件日志条目:
3 月 29 日 12:31:01 mailserver dovecot: imap(normaluser): Error: unlink(/var/spool/mail/normaluser.lock) failed: Operation not allowed

3 月 29 日 12:31:01 mailserver dovecot: imap(normaluser): Error: file_dotlock_create() failed with mbox file /var/spool/mail/normaluser: Operation not allowed

对于用户而言,不会消失的锁定文件意味着他们所有的邮件处理都会停止,直到我手动删除锁定文件。权限看起来很正常:

-rw------- 1 normaluser theirgroup 33 Mar 29 12:30 normaluser.lock

我根据 dovecot wiki 使用了 dovecot 选项,希望我在某个地方犯了错误。当前的相关值为:

 mmap_disable = yes
 dotlock_use_excl = yes
 mail_fsync = optimized
 mail_nfs_storage = no
 mail_nfs_index = no
 mail_privileged_group=mail

设置 mail_nfs_storage=yes 似乎没有任何改变,因为该参数(根据 dovecot wiki)与通过 NFS 访问同一目录的多个邮件服务器有关,这里不是这种情况。

我用谷歌搜索和摆弄,我无法找到问题所在。我正在询问我忽略的任何内容,或者关于我可以运行的其他诊断的建议。

之后:

我越来越接近解决方案。在客户端邮件服务器上:

 $ cd /var/spool/mail
 $ sudo -u normaluser touch test
 $ sudo -u normaluser rm test

没问题。

 $ sudo -u dovenull touch test
 $ sudo -u dovenull rm test
 rm: cannot remove ‘test’: Operation not permitted
 $ ls -lh test
 -rw-r--r-- 1 nobody nobody 0 Mar 31 12:03 test

啊哈!不允许 dovenull 帐户在 NFS 导入的目录中执行任何操作。我尝试向 NFS 服务器添加一个 dovenull 帐户(具有相同的 uid/gid),但这并没有解决问题:

 $ sudo -u dovenull rm test
 rm: cannot remove ‘test’: Operation not permitted
 $ ls -lh test
 -rw-r--r-- 1 dovenull dovenull 0 Mar 31 12:03 test

这感觉像是一个 idmap 问题。以下是客户端和服务器上 idmap.conf 中唯一未注释的行:

[General]
Domain = mydomain.com
[Mapping]
Nobody-User = nobody
Nobody-Group = nobody
[Translation]
Method = nsswitch

我很近……我能感觉到……

再后来:

我能感觉到我想要的一切,但这并不意味着我有答案。我得到了能够在 /var/spool/mail 中创建和删除的 dovenull 帐户(这与仔细查看 /etc/nssswitch.conf 并意识到我必须重新启动 NIS 有关),但这并没有解决我的问题问题。dovenull 帐户不写入 /var/spool/mail。

我使用了auditctl:

auditctl -w /var/spool/mail -p war -k mail-inbox
ausearch -k mail-inbox > mail-inbox.txt

并验证额外的 .lock 文件和 BOGUS 文件是由 dovecot 创建的,而“_”下划线文件是由 procmail 创建的。除非有人想看,否则我不会费心发布审计日志;他们显示的是正在使用正确的权限(uid、gid、euid 等)创建文件,并且即使使用相同的权限进行删除调用,删除也不成功。

那么什么可能导致文件被创建,但无法被删除呢?

centos6
  • 1 个回答
  • 1141 Views
Martin Hope
William Seligman
Asked: 2016-12-30 09:57:07 +0800 CST

应该向终端打印消息的 Systemd 单元脚本不起作用

  • 0

我有一个运行 named-chroot 的 CentOS7 服务器。问题是 named 和 named-chroot 是 CentOS7 中独立的 systemd 服务,我有一个稳定的系统和一个短的内存。在需要 BIND 维护之间几个月过去了。当我有 BIND 工作要做时,我总是忘记输入

systemctl restart named-chroot

而是输入

systemctl restart named

如果我弄错了,则不会警告我正在启动不正确的服务。

我想使用 systemd 配置来编辑命名服务,以提醒我犯了一个错误。到目前为止,我已经覆盖了标准命名服务:我使用

systemctl edit named

并输入以下内容:

[Unit]
Description=You want named-chroot
Wants=
Before=
After=

[Service]
Type=simple
EnvironmentFile=
Environment=
ExecStartPre=
ExecStart=
ExecStart=/bin/bash -c "/usr/bin/echo 'No, you want named-chroot'"
ExecReload=
ExecReload=/bin/bash -c "/usr/bin/echo 'No, you want named-chroot'"
ExecStop=
ExecStop=/bin/bash -c "/usr/bin/echo 'No, you want named-chroot'"
StandardOutput=journal+console
PrivateTmp=false

这是我得到的。echo 命令的结果将在 journalctl 和 systemctl 状态中可见。当然,理想的情况是让它们打印在终端上,但我还没有想通。这不起作用:

StandardOutput=tty
TTYPath=/dev/tty

也不是其变体;我收到错误消息,告诉我 /dev/tty 在 bash 中不可用!

另一个问题:即使使用上述文件,像这样的命令也可能导致 named-chroot 停止而没有可见的指示符或警告:

systemctl restart named
systemctl start named

当我覆盖了我能找到的每个命名服务选项时,我无法弄清楚为什么由 named-chroot 启动的命名守护程序会受到我修改后的命名脚本的影响。

如果您是系统专家,请帮助我完成这项工作。

bind chroot centos7 systemd
  • 2 个回答
  • 2369 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve