如何让crontab访问域用户?


0

我正在使用RedHat 7.3服务器,用户需要访问crontab。但是,该用户是域用户(例如test @ [domain])。因此用户不会出现在/ etc / passwd文件中。

我已经尝试在cron.allow文件中添加他的名字和全名(后面有域名)。
这似乎没有用,stil许可否认。甚至可以为域用户(没有root访问权限)访问crontab吗?如果是,怎么样?

Answers:


0

Cron总是使用相同的方法来确定访问权限, 而不管 帐户类型。一张支票就是 关于cron.allow 文件,另一个通过PAM:

  1. Cron调用PAM来运行“帐户”(会计/授权)堆栈 /etc/pam.d/crond
  2. 该文件直接或间接(通过include / substack)将包含属于您的域客户端的模块 - 例如 pam_sss 如果你使用SSSD, pam_winbind 如果你使用Samba / Winbindd,或者 pam_ldap 如果你使用nslcd。
  3. pam_sss 联系SSSD,决定是否允许用户 test@domain 访问 crond 服务。如何做出决定取决于参数 sssd.conf - 例如,当加入Active Directory域时,它甚至可能会读取您的组策略,并根据Windows是否授予用户“批量登录”权限来决定。

    (我只是假设它是SSSD,因为用户名语法,因为RHEL创建了它。)

作为旁注,本地用户和域用户与技术方面没有区别。即便是 ...@domain 语法只是SSSD生成的一个花哨的用户名;这对系统的其他部分来说并不特别。所以,如果你使用 关于cron.allow 你通常必须包括它。

作为旁注的附注,使用SSSD可以具有不对称名称→UID→名称翻译(例如, test@domain →12345→ domain\test )。您不知道cron是逐字存储用户名还是从UID重建它。所以你应该跑 getent passwd <uid> 使用数字UID并包含生成的用户名 关于cron.allow 如果它与原始用户名不同(即你应列出两个版本)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.