Cron

(root) 使用 PAM 授權使用者失敗(權限被拒絕)

  • August 24, 2021

在跟踪 /var/log/cron 時,我注意到 cron 作業由於 PAM 權限而失敗。在我的 access.conf 中,我確實有以下未註釋的內容,以確保(或我認為確保)root 確實有權執行 cron 作業。

# User "root" should be allowed to get access via cron .. tty5 tty6.
+ : root : cron crond :0 tty1 tty2 tty3 tty4 tty5 tty6

我在 Centos 7 Kernel 3.10.0-693.21.1.el7.x86_64 上,我們已經通過領域、sssd、kerberos 將它連接到我們的 Windows 活動目錄實例。我的安裝步驟可以在這裡找到Best Auth Mech to Connect to Windows AD

我現在不知所措,無法弄清楚可能是什麼原因造成的。我仔細檢查了root密碼沒有過期,也沒有過期。目前的 root 訪問權限是通過 windows 安全組配置的。

任何幫助將不勝感激!

編輯 我在 pam_access.so 的末尾添加了調試並得到以下資訊

crond[17411]: pam_access(crond:account): login_access: user=root, from=cron, file=/etc/security/access.conf crond[17411]: pam_access(crond:account): line 60: - : ALL EXCEPT wheel shutdown sync : LOCAL root crond[17411]: pam_access(crond:account): list_match: list=ALL EXCEPT wheel shutdown sync, item=root crond[17411]: pam_access(crond:account): user_match: tok=ALL, item=root crond[17411]: pam_access(crond:account): string_match: tok=ALL, item=root crond[17411]: pam_access(crond:account): user_match: tok=wheel, item=root crond[17411]: pam_access(crond:account): string_match: tok=wheel, item=root crond[17411]: pam_access(crond:account): user_match: tok=shutdown, item=root crond[17411]: pam_access(crond:account): string_match: tok=shutdown, item=root crond[17411]: pam_access(crond:account): user_match: tok=sync, item=root crond[17411]: pam_access(crond:account): string_match: tok=sync, item=root crond[17411]: pam_access(crond:account): user_match=1, "root" crond[17411]: pam_access(crond:account): list_match: list=LOCAL root, item=root crond[17411]: pam_access(crond:account): from_match: tok=LOCAL, item=cron crond[17411]: pam_access(crond:account): string_match: tok=LOCAL, item=cron crond[17411]: pam_access(crond:account): from_match=1, "cron" crond[17411]: pam_access(crond:account): access denied for user根’來自’cron'

我最終將我的 access.conf 重新排列到下面。從某種意義上說,我將 cron 條目作為配置文件中的第二個條目,這似乎正確設置了 root 訪問 cron 的權限。

#
# Disallow non-root logins on tty1
#
#-:ALL EXCEPT root:tty1
#
# User "root" should be allowed to get access via cron .. tty5 tty6.
+ : root : cron crond :0 tty1 tty2 tty3 tty4 tty5 tty6
#
# Disallow console logins to all but a few accounts.
#
-:ALL EXCEPT wheel shutdown sync:LOCAL root

如果有人知道,但我懷疑權限是建立在它們在配置中的輸入方式上的。即使您通過配置中的條目獲得權限,如果該條目之前的一行拒絕您訪問,它會覆蓋授予條目,因為它首先出現?

引用自:https://unix.stackexchange.com/questions/451343