เจ…เฉฐเจคเจฐเจฐเจพเจธเจผเจŸเจฐเฉ€ เจฎเฉเจ•เจพเจฌเจฒเจฟเจ†เจ‚ เจฆเฉ‡ เจœเฉ‡เจคเฉ‚ SSH เจ…เจคเฉ‡ sudo เจฎเฉเฉœ เจธเจŸเฉ‡เจœ 'เจคเฉ‡ เจนเจจเฅค เจกเจฟเจธเจŸเจฟเฉฐเจ—เฉ‚เจ‡เจธเจผเจก เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ•เฉฐเจกเจ•เจŸเจฐ เจฆเฉเจ†เจฐเจพ เจ…เจ—เจตเจพเจˆ เจ•เฉ€เจคเฉ€ เจ—เจˆ

เจ‡เจคเจฟเจนเจพเจธเจ• เจคเฉŒเจฐ 'เจคเฉ‡, sudo เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ /etc/sudoers.d ะธ เจตเจฟเจธเฉ‚เจกเฉ‹, เจ…เจคเฉ‡ เจ•เฉเฉฐเจœเฉ€ เจ…เจงเจฟเจ•เจพเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ ~/.ssh/authorized_keys. เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเจพ เจตเจงเจฆเจพ เจนเฉˆ, เจ•เฉ‡เจ‚เจฆเจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจนเจจเจพเจ‚ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฆเฉ€ เจ‡เฉฑเจ›เจพ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ…เฉฑเจœ เจ•เจˆ เจนเฉฑเจฒ เจตเจฟเจ•เจฒเจช เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ:

  • เจธเฉฐเจฐเจšเจจเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเจฟเจธเจŸเจฎ - เจธเจฟเจฐ ', เจ•เจ เจชเฉเจคเจฒเฉ€, Ansimate, เจธเจพเจฒเฉเจŸ
  • เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ + เจเจธเจเจธเจกเฉ€
  • เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจ…เจคเฉ‡ เจฎเฉˆเจจเฉ‚เจ…เจฒ เจซเจพเจˆเจฒ เจธเฉฐเจชเจพเจฆเจจ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ•เจˆ เจตเจฟเจ—เจพเฉœ

เจฎเฉ‡เจฐเฉ€ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจฐเจพเจ เจตเจฟเฉฑเจš, เจ•เฉ‡เจ‚เจฆเจฐเฉ€เจ•เฉเจฐเจฟเจค เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจตเจฟเจ•เจฒเจช เจ…เจœเฉ‡ เจตเฉ€ เจ‡เฉฑเจ• เจธเฉเจฎเฉ‡เจฒ เจนเฉˆ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ + เจเจธเจเจธเจกเฉ€. เจ‡เจธ เจชเจนเฉเฉฐเจš เจฆเฉ‡ เจซเจพเจ‡เจฆเฉ‡ เจนเจจ:

  • เจธเฉฑเจšเจฎเฉเฉฑเจš เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ เจ•เฉ‡เจ‚เจฆเจฐเฉ€ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€.
  • เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเฉ€ เจตเฉฐเจก เจธเฉ‚เจกเฉ‹ เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจน เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเจจ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ.
  • เจ•เจˆ เจฒเฉ€เจจเจ•เจธ เจธเจฟเจธเจŸเจฎเจพเจ‚ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš, เจธเฉฐเจฐเจšเจจเจพ เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ OS เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฒเจˆ เจตเจพเจงเฉ‚ เจœเจพเจ‚เจšเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‡เจธเจผ เจ•เจฐเจจเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ…เฉฑเจœ เจฆเจพ เจธเฉ‚เจŸ เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฎเจฐเจชเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ + เจเจธเจเจธเจกเฉ€ เจ…เจงเจฟเจ•เจพเจฐ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจธเฉ‚เจกเฉ‹ เจ…เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ SSH เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ•เฉเฉฐเจœเฉ€เจ†เจ‚.
เจ‡เจธ เจฒเจˆ, เจนเจพเจฒ เจคเจฃเจพเจ…เจชเฉ‚เจฐเจจ เจšเฉเฉฑเจช เจตเจฟเฉฑเจš เจœเฉฐเจฎ เจ—เจฟเจ†, เจ•เฉฐเจกเจ•เจŸเจฐ เจจเฉ‡ เจ†เจชเจฃเจพ เจกเฉฐเจกเจพ เจšเฉเฉฑเจ•เจฟเจ†, เจ…เจคเฉ‡ เจ†เจฐเจ•เฉˆเจธเจŸเจฐเจพ เจคเจฟเจ†เจฐ เจนเฉ‹ เจ—เจฟเจ†เฅค
เจšเจฒเฉ‹ เจšเฉฑเจฒเฉ€เจ.

เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ†:
- เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจกเฉ‹เจฎเฉ‡เจจ testopf.local เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจธเจฐเจตเจฐ 2012 R2 'เจคเฉ‡.
- เจฒเฉ€เจจเจ•เจธ เจนเฉ‹เจธเจŸ Centos 7 เจšเจฒเจพ เจฐเจฟเจนเจพ เจนเฉˆ
- เจตเจฐเจค เจ•เฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ…เจงเจฟเจ•เจพเจฐ เจเจธเจเจธเจกเฉ€
เจฆเฉ‹เจตเฉ‡เจ‚ เจนเฉฑเจฒ เจธเจ•เฉ€เจฎเจพ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจพเจ… เจ•เจฐเจฆเฉ‡ เจนเจจ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€, เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจŸเฉˆเจธเจŸ เจตเจพเจคเจพเจตเจฐเจจ เจตเจฟเฉฑเจš เจนเจฐ เจšเฉ€เจœเจผ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ•เฉ‡เจตเจฒ เจคเจฆ เจนเฉ€ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจพเจ… เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจฎเฉˆเจ‚ เจ‡เจน เจจเฉ‹เจŸ เจ•เจฐเจจเจพ เจšเจพเจนเจพเจ‚เจ—เจพ เจ•เจฟ เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจจเจฟเจธเจผเจพเจจเจพ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡, เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจธเจฟเจฐเจซ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจ•เจฒเจพเจธเจพเจ‚ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹.

เจ•เจพเจฐเจตเจพเจˆ 1: เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจธเฉ‚เจกเฉ‹ เจฆเฉเจ†เจฐเจพ เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€.

เจธเจฐเจ•เจŸ เจฆเจพ เจตเจฟเจธเจฅเจพเจฐ เจ•เจฐเจจ เจฒเจˆ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจจเจตเฉ€เจจเจคเจฎ เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจธเฉ‚เจกเฉ‹ - 1.8.27 เจ…เฉฑเจœ เจคเฉฑเจ•เฅค เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ•เจพเจชเฉ€ เจ•เจฐเฉ‹ schema.ActiveDirectory ./doc เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจกเฉ‹เจฎเฉ‡เจจ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจคเฉฑเจ•เฅค เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจชเฉเจฐเจฌเฉฐเจงเจ• เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจตเจพเจฒเฉ€ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจคเฉ‹เจ‚ เจœเจฟเฉฑเจฅเฉ‡ เจซเจพเจˆเจฒ เจฆเฉ€ เจจเจ•เจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจšเจฒเจพเจ“:
ldifde -i -f schema.ActiveDirectory -c dc=X dc=testopf,dc=local
(เจ†เจชเจฃเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจจเจพ เจญเฉเฉฑเจฒเฉ‹)
เจ–เฉเฉฑเจฒเจพ adsiedit.msc เจ…เจคเฉ‡ เจกเจฟเจซเฉŒเจฒเจŸ เจชเฉเจฐเจธเฉฐเจ— เจจเจพเจฒ เจœเฉเฉœเฉ‹:
เจกเฉ‹เจฎเฉ‡เจจ เจฆเฉ‡ เจฐเฉ‚เจŸ 'เจคเฉ‡ เจ‡เฉฑเจ• เจตเฉฐเจก เจฌเจฃเจพเจ“ เจธเจตเฉˆเจŸเจฐ. (เจฌเฉเจฐเจœเฉ‚เจ†เจœเจผเฉ€ เจœเจผเจฟเฉฑเจฆ เจจเจพเจฒ เจฆเจพเจ…เจตเจพ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจ‡เจธ เจ‡เจ•เจพเจˆ เจตเจฟเฉฑเจš เจญเฉ‚เจค เจนเฉˆ เจเจธเจเจธเจกเฉ€ เจ•เจฟเจธเฉ‡ เจตเจธเจคเฉ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจฆเจพ เจนเฉˆ sudoRole เจตเจธเจคเฉ‚เจ†เจ‚. เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจตเจฟเจธเจคเฉเจฐเจฟเจค เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ•เจฐเจจ เจ…เจคเฉ‡ เจฒเฉŒเจ—เจธ เจฆเจพ เจ…เจงเจฟเจเจจ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‡เจน เจธเจพเจนเจฎเจฃเฉ‡ เจ†เจ‡เจ† เจ•เจฟ เจ–เฉ‹เจœ เจชเฉ‚เจฐเฉ‡ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจŸเฉเจฐเฉ€ เจตเจฟเฉฑเจš เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค)
เจ…เจธเฉ€เจ‚ เจกเจฟเจตเฉ€เจœเจผเจจ เจตเจฟเฉฑเจš เจ•เจฒเจพเจธ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจชเจนเจฟเจฒเจพ เจ†เจฌเจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ sudoRole. เจจเจพเจฎ เจจเฉ‚เฉฐ เจฌเจฟเจฒเจ•เฉเจฒ เจฎเจจเจฎเจฐเจœเจผเฉ€ เจจเจพเจฒ เจšเฉเจฃเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจธเจฟเจฐเจซเจผ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจชเจ›เจพเจฃ เจฒเจˆ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
เจธเจ•เฉ€เจฎเจพ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ เจคเฉ‹เจ‚ เจธเฉฐเจญเจต เจ‰เจชเจฒเจฌเจง เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚, เจฎเฉเฉฑเจ– เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจนเจจ:

  • sudoCommand โ€” เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจนเฉ‹เจธเจŸ เจ‰เฉฑเจคเฉ‡ เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจนเฉˆเฅค
  • sudoHost โ€” เจ‡เจน เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจญเฉ‚เจฎเจฟเจ•เจพ เจ•เจฟเจธ เจฎเฉ‡เจœเจผเจฌเจพเจจ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจตเจœเฉ‹เจ‚ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจธเจพเจฐเฉ‡, เจ…เจคเฉ‡ เจจเจพเจฎ เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจฎเฉ‡เจœเจผเจฌเจพเจจ เจฒเจˆเฅค เจฎเจพเจธเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจตเฉ€ เจธเฉฐเจญเจต เจนเฉˆเฅค
  • sudoUser โ€” เจฆเฉฑเจธเฉ‹ เจ•เจฟ เจ•เจฟเจนเฉœเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจนเฉˆ เจธเฉ‚เจกเฉ‹.
    เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจน เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจจเจพเจฎ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• โ€œ%โ€ เจšเจฟเฉฐเจจเฉเจน เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹เฅค เจœเฉ‡เจ•เจฐ เจ—เจฐเฉเฉฑเจช เจฆเฉ‡ เจจเจพเจฎ เจตเจฟเฉฑเจš เจ–เจพเจฒเฉ€ เจฅเจพเจ‚เจตเจพเจ‚ เจนเจจ, เจคเจพเจ‚ เจšเจฟเฉฐเจคเจพ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจ—เฉฑเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจฒเฉŒเจ—เจธ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฐเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจธเจชเฉ‡เจธ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจฆเจพ เจ•เฉฐเจฎ เจตเจฟเจงเฉ€ เจฆเฉเจ†เจฐเจพ เจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจเจธเจเจธเจกเฉ€.

เจ…เฉฐเจคเจฐเจฐเจพเจธเจผเจŸเจฐเฉ€ เจฎเฉเจ•เจพเจฌเจฒเจฟเจ†เจ‚ เจฆเฉ‡ เจœเฉ‡เจคเฉ‚ SSH เจ…เจคเฉ‡ sudo เจฎเฉเฉœ เจธเจŸเฉ‡เจœ 'เจคเฉ‡ เจนเจจเฅค เจกเจฟเจธเจŸเจฟเฉฐเจ—เฉ‚เจ‡เจธเจผเจก เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ•เฉฐเจกเจ•เจŸเจฐ เจฆเฉเจ†เจฐเจพ เจ…เจ—เจตเจพเจˆ เจ•เฉ€เจคเฉ€ เจ—เจˆ
เจšเจฟเฉฑเจคเจฐ 1. เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฆเฉ‡ เจฐเฉ‚เจŸ เจตเจฟเฉฑเจš sudoers เจธเจฌ-เจกเจฟเจตเฉ€เจœเจผเจจ เจตเจฟเฉฑเจš sudoRole เจ†เจฌเจœเฉˆเจ•เจŸ

เจ…เฉฐเจคเจฐเจฐเจพเจธเจผเจŸเจฐเฉ€ เจฎเฉเจ•เจพเจฌเจฒเจฟเจ†เจ‚ เจฆเฉ‡ เจœเฉ‡เจคเฉ‚ SSH เจ…เจคเฉ‡ sudo เจฎเฉเฉœ เจธเจŸเฉ‡เจœ 'เจคเฉ‡ เจนเจจเฅค เจกเจฟเจธเจŸเจฟเฉฐเจ—เฉ‚เจ‡เจธเจผเจก เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ•เฉฐเจกเจ•เจŸเจฐ เจฆเฉเจ†เจฐเจพ เจ…เจ—เจตเจพเจˆ เจ•เฉ€เจคเฉ€ เจ—เจˆ
เจšเจฟเฉฑเจคเจฐ 2. sudoRole เจ†เจฌเจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจฆเจฐเจธเจพเจ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจนเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฆเฉฑเจธเจคเจพเฅค

เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจธเฉˆเจŸเจ…เจช เจฒเฉ€เจจเจ•เจธ เจธเจพเจˆเจก 'เจคเฉ‡ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค
เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš /etc/nsswitch.conf เจซเจพเจˆเจฒ เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจฒเจพเจˆเจจ เจœเฉ‹เฉœเฉ‹:

sudoers: files sss

เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš /etc/sssd/sssd.conf เจญเจพเจ— เจตเจฟเฉฑเจš [sssd] เจธเฉ‡เจตเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ เจธเฉ‚เจกเฉ‹

cat /etc/sssd/sssd.conf | grep services
services = nss, pam, sudo

เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ sssd เจกเฉˆเจฎเจจ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจ…เฉฑเจชเจกเฉ‡เจŸ เจนเจฐ 6 เจ˜เฉฐเจŸเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจชเจฐ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจนเฉเจฃเฉ‡ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจคเจพเจ‚ เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฐเจจเจพ เจธเจฎเจพเจ‚ เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฟเจ‰เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ?

sss_cache -E

เจ‡เจน เจ…เจ•เจธเจฐ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉˆเจธเจผ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ•เจฐเจจ เจจเจพเจฒ เจฎเจฆเจฆ เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเจฆเฉ€. เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจธเฉ‡เจตเจพ เจฌเฉฐเจฆ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจธเฉ‡เจตเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

service sssd stop
rm -rf /var/lib/sss/db/*
service sssd start

เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจตเจœเฉ‹เจ‚ เจœเฉเฉœเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจœเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ sudo เจฆเฉ‡ เจ…เจงเฉ€เจจ เจ‰เจธ เจฒเจˆ เจ•เฉ€ เจ‰เจชเจฒเจฌเจง เจนเฉˆ:

su user1
[user1@testsshad log]$ id
uid=1109801141(user1) gid=1109800513(domain users) groups=1109800513(domain users),1109801132(admins_)
[user1@testsshad log]$ sudo -l
[sudo] password for user1:
Matching Defaults entries for user1 on testsshad:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User user1 may run the following commands on testsshad:
    (root) /usr/bin/ls, /usr/bin/cat

เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจฆเฉ‚เจœเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเจพเจฒ เจตเฉ€ เจ…เจœเจฟเจนเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

su user2
[user2@testsshad log]$ id
uid=1109801142(user2) gid=1109800513(domain users) groups=1109800513(domain users),1109801138(sudo_root)
[user2@testsshad log]$ sudo -l
Matching Defaults entries for user2 on testsshad:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User user2 may run the following commands on testsshad:
    (root) ALL

เจ‡เจน เจชเจนเฉเฉฐเจš เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจฎเฉ‚เจนเจพเจ‚ เจฒเจˆ เจธเฉ‚เจกเฉ‹ เจฐเฉ‹เจฒ เจจเฉ‚เฉฐ เจ•เฉ‡เจ‚เจฆเจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš ssh เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจตเจฐเจคเจฃเจพ

เจธเจ•เฉ€เจฎ เจฆเฉ‡ เจฅเฉ‹เฉœเฉ‡ เจœเจฟเจนเฉ‡ เจตเจฟเจธเจคเจพเจฐ เจจเจพเจฒ, ssh เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจฒเฉ€เจจเจ•เจธ เจนเฉ‹เจธเจŸเจพเจ‚ 'เจคเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค

sssd เจฆเฉเจ†เจฐเจพ เจ…เจงเจฟเจ•เจพเจฐ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
PowerShell เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹เฅค
AddsshPublicKeyAttribute.ps1เจซเฉฐเจ•เจธเจผเจจ New-AttributeID {
$Prefix="1.2.840.113556.1.8000.2554"
$GUID=[System.Guid]::NewGuid().ToString()
$Parts=@()
$Parts+=[UInt64]::Parse($guid.SubString(0,4),โ€œAllowHexSpecifierโ€)
$Parts+=[UInt64]::Parse($guid.SubString(4,4),โ€œAllowHexSpecifierโ€)
$Parts+=[UInt64]::Parse($guid.SubString(9,4),โ€œAllowHexSpecifierโ€)
$Parts+=[UInt64]::Parse($guid.SubString(14,4),โ€œAllowHexSpecifierโ€)
$Parts+=[UInt64]::Parse($guid.SubString(19,4),โ€œAllowHexSpecifierโ€)
$Parts+=[UInt64]::Parse($guid.SubString(24,6),โ€œAllowHexSpecifierโ€)
$Parts+=[UInt64]::Parse($guid.SubString(30,6),โ€œAllowHexSpecifierโ€)
$oid=[String]::Format(ยซ{0}.{1}.{2}.{3}.{4}.{5}.{6}.{7}ยป,$prefix,$Parts[0],
$Parts[1],$Parts[2],$Parts[3],$Parts[4],$Parts[5],$Parts[6])
$oid
}
$schemaPath = (Get-ADRootDSE)เฅคschemaNamingContext
$oid = New-AttributeID
$ เจ—เฉเจฃ = @{
lDAPDisplayName = 'sshPublicKey';
attributeId = $oid;
oMSyntax = 22;
attributeSyntax = "2.5.5.5";
isSingleValued = $true;
adminDescription = 'SSH เจฒเจพเจ—เจ‡เจจ เจฒเจˆ เจฏเฉ‚เจœเจผเจฐ เจชเจฌเจฒเจฟเจ• เจ•เฉเฉฐเจœเฉ€';
}

เจจเจตเจพเจ‚-ADObject -เจจเจพเจฎ sshPublicKey -Type เจ—เฉเจฃ เจธเจ•เฉ€เจฎ -เจชเจพเจฅ $schemapath -เจนเฉ‹เจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ $ เจ—เฉเจฃ
$userSchema = get-adobject -SearchBase $schemapath -Filter 'name -eq "user"'
$userSchema | เจธเฉˆเฉฑเจŸ-ADObject -Add @{mayContain = 'sshPublicKey'}

เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจœเฉ‹เฉœเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจกเฉ‹เจฎเฉ‡เจจ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
เจšเจฒเฉ‹ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจตเฉฑเจฒ เจตเจงเจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ•เจฟเจธเฉ‡ เจตเฉ€ เจขเฉฐเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ ssh เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเจพ เจคเจฟเจ†เจฐ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค
เจ…เจธเฉ€เจ‚ เจชเฉเจŸเฉ€เจœเฉ‡เจจ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, "เจœเจจเจฐเฉ‡เจŸ" เจฌเจŸเจจ เจจเฉ‚เฉฐ เจฆเจฌเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจฎเจพเจŠเจธ เจจเฉ‚เฉฐ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจฒเฉˆ เจœเจพเจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค
เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ‡ เจชเฉ‚เจฐเจพ เจนเฉ‹เจฃ 'เจคเฉ‡, เจ…เจธเฉ€เจ‚ เจœเจจเจคเจ• เจ…เจคเฉ‡ เจจเจฟเฉฑเจœเฉ€ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ 'เจคเฉ‡ เจ…เฉฑเจชเจฒเฉ‹เจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเจพ เจ†เจจเฉฐเจฆ เจฒเฉˆ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ "" เจคเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆOpenSSH authorized_keys เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจชเฉ‡เจธเจŸ เจ•เจฐเจจ เจฒเจˆ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€:".
เจ…เฉฐเจคเจฐเจฐเจพเจธเจผเจŸเจฐเฉ€ เจฎเฉเจ•เจพเจฌเจฒเจฟเจ†เจ‚ เจฆเฉ‡ เจœเฉ‡เจคเฉ‚ SSH เจ…เจคเฉ‡ sudo เจฎเฉเฉœ เจธเจŸเฉ‡เจœ 'เจคเฉ‡ เจนเจจเฅค เจกเจฟเจธเจŸเจฟเฉฐเจ—เฉ‚เจ‡เจธเจผเจก เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ•เฉฐเจกเจ•เจŸเจฐ เจฆเฉเจ†เจฐเจพ เจ…เจ—เจตเจพเจˆ เจ•เฉ€เจคเฉ€ เจ—เจˆ
เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจตเจฟเฉฑเจš เจ•เฉเฉฐเจœเฉ€ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹เฅค
เจตเจฟเจ•เจฒเจช 1 - GUI:
เจ…เฉฐเจคเจฐเจฐเจพเจธเจผเจŸเจฐเฉ€ เจฎเฉเจ•เจพเจฌเจฒเจฟเจ†เจ‚ เจฆเฉ‡ เจœเฉ‡เจคเฉ‚ SSH เจ…เจคเฉ‡ sudo เจฎเฉเฉœ เจธเจŸเฉ‡เจœ 'เจคเฉ‡ เจนเจจเฅค เจกเจฟเจธเจŸเจฟเฉฐเจ—เฉ‚เจ‡เจธเจผเจก เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ•เฉฐเจกเจ•เจŸเจฐ เจฆเฉเจ†เจฐเจพ เจ…เจ—เจตเจพเจˆ เจ•เฉ€เจคเฉ€ เจ—เจˆ
เจตเจฟเจ•เจฒเจช 2 - PowerShell:
get-aduser user1 | set-aduser -add @{sshPublicKey = 'AAAAB...XAVnX9ZRJJ0p/Q=='}
เจ‡เจธ เจฒเจˆ, เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš เจนเฉˆ: เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจœเจฟเจธ เจตเจฟเฉฑเจš sshPublicKey เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจญเจฐเฉ€ เจ—เจˆ เจนเฉˆ, เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉฐเจฐเจšเจฟเจค เจชเฉเจŸเฉ€ เจ•เจฒเจพเจ‡เฉฐเจŸเฅค เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเจพ เจœเจฟเจนเจพ เจฌเจฟเฉฐเจฆเฉ‚ เจฌเจšเจฟเจ† เจนเฉˆ: เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจ—เฉเจฃเจพเจ‚ เจคเฉ‹เจ‚ เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ sshd เจกเฉˆเจฎเจจ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฎเจœเจฌเฉ‚เจฐ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจฌเฉเจฐเจœเฉ‚เจ† เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจคเฉ‡ เจชเจพเจˆ เจ—เจˆ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจœเจฟเจนเฉ€ เจฒเจฟเจชเฉ€ เจ‡เจธ เจจเจพเจฒ เจธเจซเจฒเจคเจพเจชเฉ‚เจฐเจตเจ• เจธเจฟเฉฑเจ เจธเจ•เจฆเฉ€ เจนเฉˆ.

cat /usr/local/bin/fetchSSHKeysFromLDAP
#!/bin/sh
ldapsearch -h testmdt.testopf.local -xb "dc=testopf,dc=local" '(sAMAccountName='"${1%@*}"')' -D [email protected] -w superSecretPassword 'sshPublicKey' | sed -n '/^ /{H;d};/sshPublicKey:/x;$g;s/n *//g;s/sshPublicKey: //gp'

เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฐเฉ‚เจŸ เจฒเจˆ 0500 'เจคเฉ‡ เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ เจธเฉˆเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

chmod 0500  /usr/local/bin/fetchSSHKeysFromLDAP

เจ‡เจธ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• เจชเฉเจฐเจฌเฉฐเจงเจ• เจ–เจพเจคเจพ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเจพเจฒ เจฌเฉฐเจจเฉเจนเจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจฒเฉœเจพเจˆ เจฆเฉ€เจ†เจ‚ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเฉ‡ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจธเฉˆเฉฑเจŸ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจ–เจพเจคเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
เจ…เจงเจฟเจ•เจพเจฐ เจธเฉˆเฉฑเจŸ เจนเฉ‹เจฃ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ, เจธเจ•เจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ‡ เจธเจผเฉเฉฑเจง เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเจพเจธเจตเจฐเจก เจฆเฉ‡ เจชเจฒ เจฆเฉเจ†เจฐเจพ เจฎเฉˆเจ‚ เจจเจฟเฉฑเจœเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจนเฉเจค เจ‰เจฒเจเจฃ เจตเจฟเฉฑเจš เจธเฉ€เฅค
เจนเฉฑเจฒ เจตเจฟเจ•เจฒเจช:

  • เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจชเจพเจธเจตเจฐเจก เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจฆเจพ เจนเจพเจ‚:
    echo -n Supersecretpassword > /usr/local/etc/secretpass

  • เจฎเฉˆเจ‚ เจฐเฉ‚เจŸ เจฒเจˆ เจซเจพเจˆเจฒ เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ 0500 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจนเฉˆ
    chmod 0500 /usr/local/etc/secretpass

  • ldapsearch เจฒเจพเจ‚เจš เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ: เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ -w superSecretPassword เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เจธ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเจพ เจนเจพเจ‚ -y /usr/local/etc/secretpass

เจ…เฉฑเจœ เจฆเฉ‡ เจธเฉ‚เจŸ เจตเจฟเฉฑเจš เจ…เฉฐเจคเจฎ เจ•เฉ‹เจฐเจก sshd_config เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ

cat /etc/ssh/sshd_config | egrep -v -E "#|^$" | grep -E "AuthorizedKeysCommand|PubkeyAuthe"
PubkeyAuthentication yes
AuthorizedKeysCommand /usr/local/bin/fetchSSHKeysFromLDAP
AuthorizedKeysCommandUser root

เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจธเจพเจจเฉ‚เฉฐ ssh เจ•เจฒเจพเจ‡เฉฐเจŸ เจตเจฟเฉฑเจš เจธเฉฐเจฐเจšเจฟเจค เจ•เฉเฉฐเจœเฉ€ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ‡ เจจเจพเจฒ เจนเฉ‡เจ  เจฒเจฟเจ–เจฟเจ† เจ•เฉเจฐเจฎ เจฎเจฟเจฒเจฆเจพ เจนเฉˆ:

  1. เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ†เจชเจฃเฉ‡ เจฒเฉŒเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพ เจ•เฉ‡ เจธเจฐเจตเจฐ เจจเจพเจฒ เจœเฉเฉœเจฆเจพ เจนเฉˆเฅค
  2. sshd เจกเฉˆเจฎเจจ, เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฐเจพเจนเฉ€เจ‚, เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ—เฉเจฃ เจคเฉ‹เจ‚ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจ•เฉฑเจขเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเจฎเจพเจฃเฉ€เจ•เจฐเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  3. sssd เจกเฉˆเจฎเจจ เจ—เจฐเฉเฉฑเจช เจฎเฉˆเจ‚เจฌเจฐเจธเจผเจฟเจช เจฆเฉ‡ เจ…เจงเจพเจฐ 'เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจงเจฟเจ†เจจ เจฆเจฟเจ“! เจœเฉ‡เจ•เจฐ เจ‡เจน เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจคเจพเจ‚ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจกเฉ‹เจฎเฉ‡เจจ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ•เฉ‹เจฒ เจนเฉ‹เจธเจŸ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค
  4. เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ sudo เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, sssd เจกเฉˆเจฎเจจ เจฐเฉ‹เจฒ เจฒเจˆ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจœเฉ‡ เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚ เจฎเฉŒเจœเฉ‚เจฆ เจนเจจ, เจคเจพเจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจธเจฎเฉ‚เจน เจธเจฆเฉฑเจธเจคเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ (เจœเฉ‡ sudoRoles เจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจฎเฉ‚เจนเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ)

เจจเจคเฉ€เจœเจพ

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚, เจธเฉ‚เจกเฉ‹ เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ - เจ‡เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚, เจกเฉ‹เจฎเฉ‡เจจ เจ–เจพเจคเจฟเจ†เจ‚ เจฆเฉเจ†เจฐเจพ เจฒเฉ€เจจเจ•เจธ เจนเฉ‹เจธเจŸเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจธเจฎเฉ‚เจน เจตเจฟเฉฑเจš เจฎเฉˆเจ‚เจฌเจฐเจธเจผเจฟเจช เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจ•เฉ‡ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
เจ•เฉฐเจกเจ•เจŸเจฐ เจฆเฉ‡ เจกเฉฐเจกเฉ‡ เจฆเฉ€ เจ…เฉฐเจคเจฎ เจฒเจนเจฟเจฐ - เจ…เจคเฉ‡ เจนเจพเจฒ เจธเจผเจฐเจงเจพเจฎเจˆ เจšเฉเฉฑเจช เจตเจฟเฉฑเจš เจœเฉฐเจฎ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจฒเจฟเจ–เจคเฉ€ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจ—เจ เจธเจฐเฉ‹เจค:

เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฐเจพเจนเฉ€เจ‚ เจธเฉ‚เจกเฉ‹
เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฐเจพเจนเฉ€เจ‚ Ssh เจ•เฉเฉฐเจœเฉ€เจ†เจ‚
เจชเจพเจตเจฐเจธเจผเฉ‡เจฒ เจธเจ•เฉเจฐเจฟเจชเจŸ, เจเจ•เจŸเจฟเจต เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจธเจ•เฉ€เจฎเจพ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจœเฉ‹เฉœ เจฐเจนเฉ€ เจนเฉˆ
sudo เจธเจฅเจฟเจฐ เจฐเฉ€เจฒเฉ€เจœเจผ

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹