ื“ื™ ื•ื•ื™ื ืขืจื– ืคื•ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืึทืฆื™ืึธื ืึทืœืข ืงืึทืžืคึผืึทื˜ื™ืฉืึทื ื– SSH ืื•ืŸ Sudo ื–ืขื ืขืŸ ื•ื•ื™ื“ืขืจ ืื•ื™ืฃ ื“ืขืจ ื‘ื™ื ืข. ื’ืขืคื™ืจื˜ ื“ื•ืจืš ืื•ื ื˜ืขืจืฉื™ื™ื“ืŸ ืึทืงื˜ื™ื•ื• Directory ืงืึธื ื“ื•ืงื˜ืึธืจ

ื”ื™ืกื˜ืึธืจื™ืฉ, ืกื•ื“ืึธ ืคึผืขืจืžื™ืฉืึทื ื– ื–ืขื ืขืŸ ื’ืึทื•ื•ืขืจื ื“ ื“ื•ืจืš ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื˜ืขืงืขืก ืคึฟื•ืŸ /etc/sudoers.d ะธ visado, ืื•ืŸ ืฉืœื™ืกืœ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืื™ื– ื’ืขืคื™ืจื˜ ืื•ื™ืก ื ื™ืฆืŸ ~/.ssh/authorized_keys. ืึธื‘ืขืจ, ื•ื•ื™ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ื•ื•ืืงืกื˜, ืขืก ืื™ื– ืึท ืคืึทืจืœืึทื ื’ ืฆื• ืคื™ืจืŸ ื“ื™ ืจืขื›ื˜ ืกืขื ื˜ืจืึทืœื™. ื”ื™ื™ึทื ื˜ ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืขื˜ืœืขื›ืข ืœื™ื™ื–ื•ื ื’ ืึธืคึผืฆื™ืขืก:

  • ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืžืึทื ืึทื’ืขืžืขื ื˜ ืกื™ืกื˜ืขื - ืงืึธื›ืขืจ, ืœื™ืึทืœืงืข, Ansible, ื–ืึทืœืฅ
  • ืึทืงื˜ื™ื•ื• Directory + ืกืกืกื“
  • ืคืึทืจืฉื™ื“ืŸ ืคึผืขืจื•ื•ืขืจืกื™ืึธื ืก ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืกืงืจื™ืคึผืก ืื•ืŸ ืžืึทื ื•ืึทืœ ื˜ืขืงืข ืขื“ื™ื˜ื™ื ื’

ืื™ืŸ ืžื™ื™ืŸ ืกืึทื‘ื“ื–ืฉืขืงื˜ื™ื•ื• ืžื™ื™ื ื•ื ื’, ื“ืขืจ ื‘ืขืกื˜ืขืจ ืึธืคึผืฆื™ืข ืคึฟืึทืจ ืกืขื ื˜ืจืึทืœื™ื™ื–ื“ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืื™ื– ื ืึธืš ืึท ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืึทืงื˜ื™ื•ื• Directory + ืกืกืกื“. ื“ื™ ืึทื“ื•ื•ืึทื ื™ื“ื–ืฉื™ื– ืคื•ืŸ ื“ืขื ืฆื•ื’ืึทื ื’ ื–ืขื ืขืŸ:

  • ื‘ืืžืช ืึท ืื™ื™ืŸ ืกืขื ื˜ืจืึทืœื™ื™ื–ื“ ื‘ืึทื ื™ืฆืขืจ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ.
  • ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืคื•ืŸ ืจืขื›ื˜ ืกื•ื“ืึธ ืงื•ืžื˜ ืึทืจืึธืคึผ ืฆื• ืœื™ื™ื’ืŸ ืึท ื‘ืึทื ื™ืฆืขืจ ืฆื• ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื–ื™ื›ืขืจื”ื™ื™ื˜ ื’ืจื•ืคึผืข.
  • ืื™ืŸ ื“ื™ ืคืึทืœ ืคื•ืŸ ืคืึทืจืฉื™ื“ืŸ ืœื™ื ื•ืงืก ืกื™ืกื˜ืขืžืขืŸ, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื‘ืึทืงืขื ืขืŸ ื ืึธืš ื˜ืฉืขืงืก ืฆื• ื‘ืึทืฉืœื™ืกืŸ ื“ื™ ืึทืก ื•ื•ืขืŸ ืื™ืจ ื ื•ืฆืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืกื™ืกื˜ืขืžืขืŸ.

ื”ื™ื™ึทื ื˜ ืก ืกื•ื•ื™ื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืกืคึผืึทืกื™ืคื™ืงืœื™ ืฆื• ื“ื™ ืงืฉืจ ืึทืงื˜ื™ื•ื• Directory + ืกืกืกื“ ืคึฟืึทืจ ืจืขื›ื˜ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืกื•ื“ืึธ ืื•ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืกืฉ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ืึท ืื™ื™ืŸ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™.
ืึทื–ื•ื™, ื“ืขืจ ื–ืึทืœ ื”ืึธื˜ ื–ื™ืš ื’ืขืคืจื•ื™ืจืŸ ืื™ืŸ ืึท ื’ืขืฉืคึผืึทื ื˜ืŸ ืฉื˜ื™ืœืงื™ื™ื˜, ื“ืขืจ ื“ื™ืจื™ื’ืขื ื˜ ื”ืึธื˜ ืื•ื™ืคึฟื’ืขื”ื•ื™ื‘ืŸ ื–ืฒึทืŸ ื‘ืึทื˜ืึธืŸ, ืื•ืŸ ื“ืขืจ ืึธืจืงืขืกื˜ืขืจ ื”ืึธื˜ ื–ื™ืš ื’ืจื™ื™ื˜.
ื’ื™ื™.

Given:
- ืึทืงื˜ื™ื•ื•ืข Directory ืคืขืœื“ testopf.local ืื•ื™ืฃ Windows Server 2012 R2.
- ืœื™ื ื•ืงืก ื‘ืึทืœืขื‘ืึธืก ืคืœื™ืกื ื“ื™ืง Centos 7
- ืงืึทื ืคื™ื’ื™ืขืจื“ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื ื™ืฆืŸ ืกืกืกื“
ื‘ื™ื™ื“ืข ืกืึทืœื•ืฉืึทื ื– ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ืกื˜ืฉืขืžืึท ืึทืงื˜ื™ื•ื• Directory, ืึทื–ื•ื™ ืžื™ืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทืœืฅ ืื™ืŸ ืึท ืคึผืจืึธื‘ืข ืกื•ื•ื™ื•ื•ืข ืื•ืŸ ื‘ืœื•ื™ื– ื“ืขืžืึธืœื˜ ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ืืจื‘ืขื˜ืŸ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ. ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ื˜ืึธืŸ ืึทื– ืึทืœืข ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื˜ืึทืจื’ืขื˜ืขื“ ืื•ืŸ, ืื™ืŸ ืคืึทืงื˜, ืœื™ื™ื’ืŸ ื‘ืœื•ื™ื– ื“ื™ ื ื™ื™ื˜ื™ืง ืึทื˜ืจื™ื‘ื™ื•ืฅ ืื•ืŸ ืงืœืืกืŸ.

ืงืึทืžืฃ 1: ืงืึธื ื˜ืจืึธืœ ืกื•ื“ืึธ ืจืึธืœืขืก ื“ื•ืจืš ืึทืงื˜ื™ื•ื• Directory.

ืฆื• ืคืึทืจื‘ืจื™ื™ื˜ืขืจืŸ ื“ื™ ืงืจื™ื™ึทื– ืึทืงื˜ื™ื•ื• Directory ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืึธืคึผืœืึธื“ื™ืจืŸ ื“ื™ ืœืขืฆื˜ืข ืžืขืœื“ื•ื ื’ ืกื•ื“ืึธ โ€” 1.8.27 ื‘ื™ื– ื”ื™ื™ื ื˜. ืึทื ืคึผืึทืง ืื•ืŸ ื ืึธื›ืžืึทื›ืŸ ื“ื™ ื˜ืขืงืข ืกื˜ืฉืขืžืึท.ืึทืงื˜ื™ื•ื•ืขื“ื™ืจืขืงื˜ืึธืจื™ ืคื•ืŸ ื“ื™ ./doc ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืฆื• ื“ื™ ืคืขืœื“ ืงืึธื ื˜ืจืึธืœืœืขืจ. ืคึฟื•ืŸ ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืžื™ื˜ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ ืจืขื›ื˜ ืคึฟื•ืŸ ื“ืขืจ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื•ื•ื• ื“ื™ ื˜ืขืงืข ืื™ื– ืงืึทืคึผื™ื“, ืœื•ื™ืคืŸ:
ldifde -i -f schema.ActiveDirectory -c dc=X dc=testopf,dc=local
(ื“ื• ื–ืืœืกื˜ ื ื™ืฉื˜ ืคืึทืจื’ืขืกืŸ ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื“ื™ื™ืŸ ื•ื•ืึทืœื•ืขืก)
ืึธืคืŸ adsiedit.msc ืื•ืŸ ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืงืึธื ื˜ืขืงืกื˜:
ืฉืึทืคึฟืŸ ืึท ืึธืคึผื˜ื™ื™ืœ ืื™ืŸ ื“ืขืจ ื•ื•ืึธืจืฆืœ ืคื•ืŸ ื“ื™ ืคืขืœื“ ืกื•ื•ืขืฅ. (ื“ื™ ื‘ื•ืจื–ืฉื•ืื–ื™ืข ื˜ืขื ื”ื˜ ืžื™ื˜ ืขืงืฉื ื•ืช, ืื– ืื™ืŸ ื“ืขื ืื™ื™ื ื”ื™ื™ื˜ ืื™ื– ื“ืขืจ ืฉื“ ืกืกืกื“ ื–ื•ื›ืŸ ืคึฟืึทืจ ืึท ื ื•ืžืขืจ sudoRole ืึทื‘ื“ื–ืฉืขืงืฅ. ืึธื‘ืขืจ, ื ืึธืš ืื•ื™ืกื’ืขื“ืจื™ื™ื˜ ืื•ื™ืฃ ื“ื™ื˜ื™ื™ืœื“ ื“ื™ื‘ืึทื’ื™ื ื’ ืื•ืŸ ื’ืขืœืขืจื ื˜ ื“ื™ ืœืึธื’ืก, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืื ื˜ืคืœืขืงื˜ ืึทื– ื“ื™ ื–ื•ื›ืŸ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ื‘ืขืจ ื“ื™ ื’ืื ืฆืข Directory ื‘ื•ื™ื.)
ืžื™ืจ ืžืึทื›ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื›ื™ื™ืคืขืฅ ื‘ื™ืœืึธื ื’ื™ื ื’ ืฆื• ื“ื™ ืงืœืึทืก ืื™ืŸ ื“ืขืจ ืึธืคึผื˜ื™ื™ืœ sudoRole. ื“ืขืจ ื ืึธืžืขืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ ืœืขื’ืึทืžืจืข ืึทืจื‘ื™ื˜ืจืขืจืึทืœื™, ื•ื•ื™ื™ึทืœ ืขืก ืกืขืจื•ื•ืขืก ื‘ืœื•ื™ื– ืคึฟืึทืจ ื‘ืึทืงื•ื•ืขื ืœืขื’ื™ื˜ื™ืžืึทืฆื™ืข.
ืฆื•ื•ื™ืฉืŸ ื“ื™ ืžืขื’ืœืขืš ื‘ื ื™ืžืฆื ืึทื˜ืจื™ื‘ื™ื•ืฅ ืคื•ืŸ ื“ื™ ืกื˜ืฉืขืžืึท ื’ืขืฉืคึผืจื™ื™ื˜, ื“ื™ ื”ื•ื™ืคึผื˜ ืึธื ืขืก ื–ืขื ืขืŸ ื“ื™ ืคืืœื’ืขื ื“ืข:

  • sudoCommand - ื‘ืึทืฉื˜ื™ืžื˜ ื•ื•ืึธืก ืงืึทืžืึทื ื“ื– ื–ืขื ืขืŸ ืขืจืœื•ื™ื‘ื˜ ืฆื• ื–ื™ื™ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืื•ื™ืฃ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก.
  • sudoHost - ื‘ืืฉืœืืกืŸ ืื•ื™ืฃ ื•ื•ืึธืก ืžื—ื ื•ืช ื“ืขื ืจืึธืœืข ืึทืคึผืœื™ื™ื–. ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกืคึผืขืกื™ืคื™ืขื“ ื•ื•ื™ ืึทืœืข, ืื•ืŸ ืคึฟืึทืจ ืึท ื™ื—ื™ื“ ื‘ืึทืœืขื‘ืึธืก ื“ื•ืจืš ื ืึธืžืขืŸ. ืขืก ืื™ื– ืื•ื™ืš ืžืขื’ืœืขืš ืฆื• ื ื•ืฆืŸ ืึท ืžืึทืกืงืข.
  • sudoUser - ืึธื ื•ื•ื™ื™ึทื–ืŸ ื•ื•ืึธืก ื™ื•ื–ืขืจื– ื–ืขื ืขืŸ ืขืจืœื•ื™ื‘ื˜ ืฆื• ื•ื™ืกืคื™ืจืŸ ืกื•ื“ืึธ.
    ืื•ื™ื‘ ืื™ืจ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืึท ื–ื™ื›ืขืจื”ื™ื™ื˜ ื’ืจื•ืคึผืข, ืœื™ื™ื’ืŸ ืึท "%" ืฆื™ื™ื›ืŸ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ื ืึธืžืขืŸ. ืื•ื™ื‘ ืขืก ื–ืขื ืขืŸ ืกืคึผื™ื™ืกืึทื– ืื™ืŸ ื“ื™ ื’ืจื•ืคึผืข ื ืึธืžืขืŸ, ืขืก ืื™ื– ื’ืึธืจื ื™ืฉื˜ ืฆื• ื–ืึธืจื’ ื•ื•ืขื’ืŸ. ืื•ื™ื‘ ืžืฉืคื˜ืŸ ืœื•ื™ื˜ ื“ื™ ืœืึธื’ืก, ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ื™ืกืงื™ื™ืคึผื™ื ื’ ืกืคึผื™ื™ืกืึทื– ืื™ื– ืื™ื‘ืขืจื’ืขื ื•ืžืขืŸ ื“ื•ืจืš ื“ื™ ืžืขืงืึทื ื™ื–ืึทื ืกืกืกื“.

ื“ื™ ื•ื•ื™ื ืขืจื– ืคื•ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืึทืฆื™ืึธื ืึทืœืข ืงืึทืžืคึผืึทื˜ื™ืฉืึทื ื– SSH ืื•ืŸ Sudo ื–ืขื ืขืŸ ื•ื•ื™ื“ืขืจ ืื•ื™ืฃ ื“ืขืจ ื‘ื™ื ืข. ื’ืขืคื™ืจื˜ ื“ื•ืจืš ืื•ื ื˜ืขืจืฉื™ื™ื“ืŸ ืึทืงื˜ื™ื•ื• Directory ืงืึธื ื“ื•ืงื˜ืึธืจ
ืคื™ื™ึทื’ 1. sudoRole ืึทื‘ื“ื–ืฉืขืงืฅ ืื™ืŸ ื“ื™ ืกื•ื“ืึธืขืจืก ืกืึทื‘ื“ื™ื•ื•ื™ื–ืฉืึทืŸ ืื™ืŸ ื“ืขืจ ื•ื•ืึธืจืฆืœ ืคื•ืŸ ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ

ื“ื™ ื•ื•ื™ื ืขืจื– ืคื•ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืึทืฆื™ืึธื ืึทืœืข ืงืึทืžืคึผืึทื˜ื™ืฉืึทื ื– SSH ืื•ืŸ Sudo ื–ืขื ืขืŸ ื•ื•ื™ื“ืขืจ ืื•ื™ืฃ ื“ืขืจ ื‘ื™ื ืข. ื’ืขืคื™ืจื˜ ื“ื•ืจืš ืื•ื ื˜ืขืจืฉื™ื™ื“ืŸ ืึทืงื˜ื™ื•ื• Directory ืงืึธื ื“ื•ืงื˜ืึธืจ
ืคื™ื’ื•ืจืข 2. ืžื™ื˜ื’ืœื™ื“ืขืจืฉืึทืคึฟื˜ ืื™ืŸ ื–ื™ื›ืขืจื”ื™ื™ื˜ ื’ืจื•ืคึผืขืก ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ ืกื•ื“ืึธืจืึธืœืข ืึทื‘ื“ื–ืฉืขืงืฅ.

ื“ื™ ืคืืœื’ืขื ื“ืข ืกืขื˜ืึทืคึผ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื•ื™ืฃ ื“ื™ ืœื™ื ื•ืงืก ื–ื™ื™ึทื˜.
ืื™ืŸ ื˜ืขืงืข / ืขื˜ืง / ื ืกื•ื•ื™ื˜ื˜ืฉ .conf ืœื™ื™ื’ ื“ื™ ืฉื•ืจื” ืฆื• ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ื˜ืขืงืข:

sudoers: files sss

ืื™ืŸ ื˜ืขืงืข / ืขื˜ืง / ืกืกืกืกื“ / ืกืกืกื“.ืงืึธื ืฃ ืื™ืŸ ืึธืคึผื˜ื™ื™ืœื•ื ื’ [ืกืกืกื“] ืœื™ื™ื’ืŸ ืฆื• ืกืขืจื•ื•ื™ืกืขืก ืกื•ื“ืึธ

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

ื ืึธืš ืึทืœืข ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื•ื™ืกืžืขืงืŸ ื“ื™ sssd daemon ืงืึทืฉ. ืึธื˜ืึทืžืึทื˜ื™ืง ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืคืึทืœืŸ ื™ืขื“ืขืจ 6 ืฉืขื”, ืึธื‘ืขืจ ื•ื•ืึธืก ื–ืึธืœ ืžื™ืจ ื•ื•ืึทืจื˜ืŸ ืึทื–ื•ื™ ืœืึทื ื’ ื•ื•ืขืŸ ืžื™ืจ ื•ื•ืขืœืŸ ืขืก ืื™ืฆื˜?

sss_cache -E

ืขืก ืึธืคื˜ ื›ืึทืคึผืึทื ื– ืึทื– ืงืœืึธืจ ื“ื™ ืงืึทืฉ ื˜ื•ื˜ ื ื™ืฉื˜ ื”ืขืœืคืŸ. ื“ืขืจื ืึธืš ืžื™ืจ ื”ืึทืœื˜ืŸ ื“ื™ ื“ื™ื ืกื˜, ืจื™ื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ ืึธื ื”ื™ื™ื‘ืŸ ื“ื™ ื“ื™ื ืกื˜.

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

ืžื™ืจ ืคืึทืจื‘ื™ื ื“ืŸ ื•ื•ื™ ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ืึทื ื™ืฆืขืจ ืื•ืŸ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื•ื•ืึธืก ืื™ื– ื‘ื ื™ืžืฆื ืคึฟืึทืจ ืื™ื ืื•ื ื˜ืขืจ ืกื•ื“ืึธ:

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 ืฉืœื™ืกืœืขืŸ ืื™ืŸ ืึทืงื˜ื™ื•ื• Directory

ืžื™ื˜ ืึท ืงืœื™ื™ืŸ ื™ืงืกืคึผืึทื ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืกื›ืขืžืข, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืงืจืึธื ssh ืฉืœื™ืกืœืขืŸ ืื™ืŸ ืึทืงื˜ื™ื•ื•ืข Directory ื‘ืึทื ื™ืฆืขืจ ืึทื˜ืจื™ื‘ื™ื•ืฅ ืื•ืŸ ื ื•ืฆืŸ ื–ื™ื™ ื•ื•ืขืŸ ืึธื˜ืขืจื™ื™ื–ื™ื ื’ ืื•ื™ืฃ ืœื™ื ื•ืงืก ืžื—ื ื•ืช.

ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื“ื•ืจืš sssd ืžื•ื–ืŸ ื–ื™ื™ืŸ ืงืึทื ืคื™ื’ื™ืขืจื“.
ืœื™ื™ื’ ื“ื™ ืคืืจืœืื ื’ื˜ ืึทื˜ืจื™ื‘ื™ื•ื˜ ื ื™ืฆืŸ ืึท PowerShell ืฉืจื™ืคื˜.
AddsshPublicKeyAttribute.ps1ืคื•ื ืงืฆื™ืข New-AttributeID {
$Prefix="1.2.840.113556.1.8000.2554"
$GUID=[ืกื™ืกื˜ืขื.ื’ื•ื™ื“]::NewGuid().ToString()
$ ืคึผืึทืจืฅ=@()
$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])
$ืึธื™ื“
}
$ schemaPath = (ื‘ืึทืงื•ืžืขืŸ-ADRootDSE). schemaNamingContext
$ืึธื™ื“ = New-AttributeID
$ ืึทื˜ืจื™ื‘ื™ื•ืฅ = @{
lDAPDisplayName = 'sshPublicKey';
attributeId = $ืึธื™ื“;
ืึธืžืกื™ื ื˜ืึทืงืก = 22;
ืึทื˜ืจื™ื‘ื™ื•ื˜ืกื™ื ื˜ืึทืงืก = "2.5.5.5";
isSingleValued = $ ืืžืช;
adminDescription = 'ื‘ืึทื ื™ืฆืขืจ ืคึผื•ื‘ืœื™ืง ืฉืœื™ืกืœ ืคึฟืึทืจ SSH ืœืึธื’ื™ืŸ';
}

New-ADObject -Name sshPublicKey -Type attributeSchema -Path $schemapath -OtherAttributes $attributes
$userSchema = get-adobject -SearchBase $schemapath -ืคื™ืœื˜ืขืจ 'ื ืึธืžืขืŸ -eq "ื‘ืึทื ื™ืฆืขืจ"'
$userSchema | Set-ADObject -Add @{mayContain = 'sshPublicKey'}

ื ืึธืš ืึทื“ื™ื ื’ ื“ื™ ืึทื˜ืจื™ื‘ื™ื•ื˜, ืื™ืจ ืžื•ื–ืŸ ืจื™ืกื˜ืึทืจื˜ Active Directory ื“ืึธืžืึทื™ืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก.
ื–ืืœ ืก ืžืึทืš ืื•ื™ืฃ ืฆื• ืึทืงื˜ื™ื•ื•ืข Directory ื™ื•ื–ืขืจื–. ืžื™ืจ ื•ื•ืขืœืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืึท ืฉืœื™ืกืœ ืคึผืึธืจ ืคึฟืึทืจ ssh ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืžื™ื˜ ืงื™ื™ืŸ ืžืขื˜ืึธื“ ื•ื•ืึธืก ืื™ื– ื‘ืึทืงื•ื•ืขื ืคึฟืึทืจ ืื™ืจ.
ืžื™ืจ ืงืึทื˜ืขืจ PuttyGen, ื“ืจื™ืงืŸ ื“ื™ "ื’ืขื ืขืจืึทื˜ืข" ืงื ืขืคึผืœ ืื•ืŸ ืคืจืึทื ื˜ืึทืงืœื™ ืžืึทืš ื“ื™ ืžื•ื™ื– ืื™ืŸ ื“ื™ ืœื™ื™ื“ื™ืง ื’ืขื’ื ื˜.
ื ืึธืš ืงืึทืžืคึผืœื™ืฉืึทืŸ ืคื•ืŸ ื“ืขื ืคึผืจืึธืฆืขืก, ืžื™ืจ ืงืขื ืขืŸ ืจืึทื˜ืขื•ื•ืขืŸ ื“ื™ ืฆื™ื‘ื•ืจ ืื•ืŸ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœืขืŸ, ืฆื•ืคึฟืขืœื™ืงืขืจ ื“ืขื ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืฆื• ื“ื™ ืึทืงื˜ื™ื•ื•ืข Directory ื‘ืึทื ื™ืฆืขืจ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื•ืŸ ื”ื ืื” ื“ืขื ืคึผืจืึธืฆืขืก. ืึธื‘ืขืจ, ื“ืขืจ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืคึฟื•ืŸ ื“ื™ "ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืคึฟืึทืจ ืคึผืึทืกื˜ื™ื ื’ ืื™ืŸ OpenSSH Authorized_keys ื˜ืขืงืข:".
ื“ื™ ื•ื•ื™ื ืขืจื– ืคื•ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืึทืฆื™ืึธื ืึทืœืข ืงืึทืžืคึผืึทื˜ื™ืฉืึทื ื– SSH ืื•ืŸ Sudo ื–ืขื ืขืŸ ื•ื•ื™ื“ืขืจ ืื•ื™ืฃ ื“ืขืจ ื‘ื™ื ืข. ื’ืขืคื™ืจื˜ ื“ื•ืจืš ืื•ื ื˜ืขืจืฉื™ื™ื“ืŸ ืึทืงื˜ื™ื•ื• Directory ืงืึธื ื“ื•ืงื˜ืึธืจ
ืœื™ื™ื’ ื“ืขื ืฉืœื™ืกืœ ืฆื• ื“ื™ ื‘ืึทื ื™ืฆืขืจ ืึทื˜ืจื™ื‘ื™ื•ื˜.
ืึธืคึผืฆื™ืข 1 - GUI:
ื“ื™ ื•ื•ื™ื ืขืจื– ืคื•ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืึทืฆื™ืึธื ืึทืœืข ืงืึทืžืคึผืึทื˜ื™ืฉืึทื ื– SSH ืื•ืŸ Sudo ื–ืขื ืขืŸ ื•ื•ื™ื“ืขืจ ืื•ื™ืฃ ื“ืขืจ ื‘ื™ื ืข. ื’ืขืคื™ืจื˜ ื“ื•ืจืš ืื•ื ื˜ืขืจืฉื™ื™ื“ืŸ ืึทืงื˜ื™ื•ื• Directory ืงืึธื ื“ื•ืงื˜ืึธืจ
ืึธืคึผืฆื™ืข 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

  • ื˜ืฉืึทื ื’ื™ื ื’ ืœื“ืึทืคึผืกืขืึทืจื˜ืฉ ืงืึทื˜ืขืจ ืคึผืึทืจืึทืžืขื˜ืขืจืก: ืคึผืึทืจืึทืžืขื˜ืขืจ -w superSecretPassword ืื™ืš ื˜ื•ื™ืฉืŸ ืขืก ืฆื• -ื™ /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 ื“ื™ื™ืžืึทืŸ, ื“ื•ืจืš ืึท ืฉืจื™ืคื˜, ืขืงืกื˜ืจืึทืงื˜ ื“ื™ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ื•ื•ืขืจื˜ ืคื•ืŸ ืึท ื‘ืึทื ื™ืฆืขืจ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื™ืŸ ืึทืงื˜ื™ื•ื• Directory ืื•ืŸ ืคึผืขืจืคืึธืจืžื– ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื ื™ืฆืŸ ื“ื™ ืฉืœื™ืกืœืขืŸ.
  3. ื“ื™ sssd ื“ืึทืขืžืึธืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฅ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื’ืจื•ืคึผืข ืžื™ื˜ื’ืœื™ื“ืขืจืฉืึทืคื˜. ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜! ืื•ื™ื‘ ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืงืึทื ืคื™ื’ื™ืขืจื“, ื™ืขื“ืขืจ ืคืขืœื“ ื‘ืึทื ื™ืฆืขืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืึทืงืกืขืก ืฆื• ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก.
  4. ื•ื•ืขืŸ ืื™ืจ ืคึผืจื•ึผื•ื•ื˜ ืฆื• ืกื•ื“ืึธ, ื“ื™ sssd ื“ื™ื™ืžืึทืŸ ื–ื•ื›ืŸ ื“ื™ ืึทืงื˜ื™ื•ื•ืข Directory ืคึฟืึทืจ ืจืึธืœืขืก. ืื•ื™ื‘ ืจืึธืœืขืก ื–ืขื ืขืŸ ืคืึธืจืฉื˜ืขืœืŸ, ื“ื™ ื‘ืึทื ื™ืฆืขืจ ืก ืึทื˜ืจื™ื‘ื™ื•ืฅ ืื•ืŸ ื’ืจื•ืคึผืข ืžื™ื˜ื’ืœื™ื“ืขืจืฉืึทืคื˜ ื–ืขื ืขืŸ ืึธืคึผื’ืขืฉื˜ืขืœื˜ (ืื•ื™ื‘ sudoRoles ืื™ื– ืงืึทื ืคื™ื’ื™ืขืจื“ ืฆื• ื ื•ืฆืŸ ื‘ืึทื ื™ืฆืขืจ ื’ืจื•ืคึผืขืก)

ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜.

ืื–ื•ื™, ื“ื™ ืฉืœื™ืกืœืขืŸ ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืื™ืŸ ืึทืงื˜ื™ื•ื• Directory ื‘ืึทื ื™ืฆืขืจ ืึทื˜ืจื™ื‘ื™ื•ืฅ, ืกื•ื“ืึธ ืคึผืขืจืžื™ืฉืึทื ื– - ืกื™ืžื™ืœืึทืจืœื™, ืึทืงืกืขืก ืฆื• ืœื™ื ื•ืงืก ืžื—ื ื•ืช ื“ื•ืจืš ืคืขืœื“ ืึทืงืึทื•ื ืฅ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ื“ื•ืจืš ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืžื™ื˜ื’ืœื™ื“ืขืจืฉืึทืคื˜ ืื™ืŸ ื“ื™ ืึทืงื˜ื™ื•ื•ืข Directory ื’ืจื•ืคึผืข.
ื“ื™ ืœืขืฆื˜ืข ื›ื•ื•ืึทืœื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืงืึธื ื“ื•ืงื˜ืึธืจืก ื‘ืึทื˜ืึทืŸ - ืื•ืŸ ื“ืขืจ ื–ืึทืœ ืคืจื™ืจืŸ ืื™ืŸ ืžื•ืจื ืฉื˜ื™ืœืงื™ื™ึทื˜.

ืจืขืกืึธื•ืจืกืขืก ื’ืขื ื™ืฆื˜ ืื™ืŸ ืฉืจื™ื™ื‘ืŸ:

ืกื•ื“ืึธ ื“ื•ืจืš ืึทืงื˜ื™ื•ื• Directory
Ssh ืฉืœื™ืกืœืขืŸ ื“ื•ืจืš Active Directory
Powershell ืฉืจื™ืคื˜, ืึทื“ื™ื ื’ ืึทืŸ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืฆื• Active Directory ืกื˜ืฉืขืžืึท
ืกื•ื“ืึธ ืกื˜ืึทื‘ื™ืœ ืžืขืœื“ื•ื ื’

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’