Linux เชฎเชพเช‚ เชชเชพเชธเชตเชฐเซเชก เชชเซ‹เชฒเชฟเชธเซ€ เชฌเชจเชพเชตเชตเซ€

เชซเชฐเซ€เชฅเซ€ เชจเชฎเชธเซเช•เชพเชฐ! เชจเชตเชพ เช•เซ‹เชฐเซเชธ เช—เซเชฐเซ‚เชชเชจเชพ เช•เซเชฒเชพเชธ เช†เชตเชคเซ€เช•เชพเชฒเชฅเซ€ เชถเชฐเซ‚ เชฅเชถเซ‡ "เชฒเชฟเชจเช•เซเชธ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐ", เช† เชธเช‚เชฆเชฐเซเชญเซ‡, เช…เชฎเซ‡ เชตเชฟเชทเชฏ เชชเชฐ เชเช• เช‰เชชเชฏเซ‹เช—เซ€ เชฒเซ‡เช– เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช.

Linux เชฎเชพเช‚ เชชเชพเชธเชตเชฐเซเชก เชชเซ‹เชฒเชฟเชธเซ€ เชฌเชจเชพเชตเชตเซ€

เช…เช—เชพเช‰เชจเชพ เชŸเซเชฏเซเชŸเซ‹เชฐเซ€เชฏเชฒเชฎเชพเช‚ เช…เชฎเซ‡ เชคเชฎเชจเซ‡ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹ เชคเซ‡ เชœเชฃเชพเชตเซเชฏเซเช‚ เชนเชคเซเช‚ pam_cracklibเชธเชฟเชธเซเชŸเชฎเซ‹ เชชเชฐ เชชเชพเชธเชตเชฐเซเชกเซ‹ เชตเชงเซ เชœเชŸเชฟเชฒ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฐเซ‡เชก เชนเซ‡เชŸ 6 เช…เชฅเชตเชพ CentOS. Red Hat 7 เชฎเชพเช‚ pam_pwquality เชฌเชฆเชฒเซเชฏเซเช‚ cracklib เช•เชพเชฐเชฃ เช•เซ‡ pam เชชเชพเชธเชตเชฐเซเชก เชคเชชเชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฎเซ‹เชกเซเชฏเซเชฒ. เชฎเซ‹เชกเซเชฏเซเชฒ pam_pwquality เช‰เชฌเซเชจเซเชŸเซ เช…เชจเซ‡ เชธเซ‡เชจเซเชŸเซ‹เชธ เชคเซ‡เชฎเชœ เช…เชจเซเชฏ เช˜เชฃเชพ เช“เชเชธ เชชเชฐ เชชเชฃ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เช›เซ‡. เช† เชฎเซ‹เชกเซเชฏเซเชฒ เชชเชพเชธเชตเชฐเซเชก เชจเซ€เชคเชฟเช“ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เชคเซ‡เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชคเชฎเชพเชฐเชพ เชชเชพเชธเชตเชฐเซเชก เชฎเชœเชฌเซ‚เชคเชพเชˆเชจเชพ เชงเซ‹เชฐเชฃเซ‹เชจเซ‡ เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡.

เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€, เชชเชพเชธเชตเชฐเซเชกเซเชธ เชฎเชพเชŸเซ‡เชจเซ‹ เชธเชพเชฎเชพเชจเซเชฏ เช…เชญเชฟเช—เชฎ เช เชนเชคเซ‹ เช•เซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เช…เชชเชฐเช•เซ‡เชธ, เชฒเซ‹เช…เชฐเช•เซ‡เชธ, เชจเช‚เชฌเชฐเซเชธ เช…เชฅเชตเชพ เช…เชจเซเชฏ เชชเซเชฐเชคเซ€เช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฆเชฌเชพเชฃ เช•เชฐเชตเซเช‚. เชชเชพเชธเชตเชฐเซเชก เชœเชŸเชฟเชฒเชคเชพ เชฎเชพเชŸเซ‡เชจเชพ เช† เชฎเซ‚เชณเชญเซ‚เชค เชจเชฟเชฏเชฎเซ‹เชจเซ‹ เช›เซ‡เชฒเซเชฒเชพเช‚ เชฆเชธ เชตเชฐเซเชทเชฎเชพเช‚ เชตเซเชฏเชพเชชเช•เชชเชฃเซ‡ เชชเซเชฐเชšเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. เช† เชธเชพเชฐเซ€ เชชเซเชฐเชฅเชพ เช›เซ‡ เช•เซ‡ เชจเชนเซ€เช‚ เชคเซ‡ เช…เช‚เช—เซ‡ เช˜เชฃเซ€ เชšเชฐเซเชšเชพ เชฅเชˆ เช›เซ‡. เช†เชตเซ€ เชœเชŸเชฟเชฒ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชธเชพเชฎเซ‡ เชฎเซเช–เซเชฏ เชฆเชฒเซ€เชฒ เช เชนเชคเซ€ เช•เซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เช•เชพเช—เชณเชจเชพ เชŸเซเช•เชกเชพ เชชเชฐ เชชเชพเชธเชตเชฐเซเชก เชฒเช–เซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เช…เชธเซเชฐเช•เซเชทเชฟเชค เชฐเซ€เชคเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ‡ เช›เซ‡.

เชฌเซ€เชœเซ€ เชจเซ€เชคเชฟ เช•เซ‡ เชœเซ‡เชจเซ‡ เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚ เชชเซเชฐเชถเซเชจเชฎเชพเช‚ เชฌเซ‹เชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เชคเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชฆเชฐ x เชฆเชฟเชตเชธเซ‡ เชคเซ‡เชฎเชจเชพ เชชเชพเชธเชตเชฐเซเชก เชฌเชฆเชฒเชตเชพเชจเซ€ เชซเชฐเชœ เชชเชพเชกเซ‡ เช›เซ‡. เช•เซ‡เชŸเชฒเชพเช• เช…เชญเซเชฏเชพเชธเซ‹ เชฅเชฏเชพ เช›เซ‡ เชœเซ‡ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เช† เชธเชฒเชพเชฎเชคเซ€ เชฎเชพเชŸเซ‡ เชชเชฃ เชนเชพเชจเชฟเช•เชพเชฐเช• เช›เซ‡.

เช† เชšเชฐเซเชšเชพเช“เชจเชพ เชตเชฟเชทเชฏ เชชเชฐ เช˜เชฃเชพ เชฒเซ‡เช–เซ‹ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡, เชœเซ‡ เชเช• เช…เชฅเชตเชพ เชฌเซ€เชœเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เช† เชคเซ‡ เชจเชฅเซ€ เชœเซ‡เชจเซ€ เชšเชฐเซเชšเชพ เช†เชชเชฃเซ‡ เช† เชฒเซ‡เช–เชฎเชพเช‚ เช•เชฐเซ€เชถเซเช‚. เช† เชฒเซ‡เช– เชธเซเชฐเช•เซเชทเชพ เชจเซ€เชคเชฟเชจเซ‡ เชฎเซ‡เชจเซ‡เชœ เช•เชฐเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡ เชชเชพเชธเชตเชฐเซเชก เชœเชŸเชฟเชฒเชคเชพเชจเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเซ€ เชคเซ‡ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเชถเซ‡.

เชชเชพเชธเชตเชฐเซเชก เชจเซ€เชคเชฟ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ

เชจเซ€เชšเซ‡ เชคเชฎเซ‡ เชชเชพเชธเชตเชฐเซเชก เชจเซ€เชคเชฟ เชตเชฟเช•เชฒเซเชชเซ‹ เช…เชจเซ‡ เชฆเชฐเซ‡เช•เชจเซเช‚ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชตเชฐเซเชฃเชจ เชœเซ‹เชถเซ‹. เชคเซ‡เชฎเชพเช‚เชจเชพ เช˜เชฃเชพ เชฎเซ‹เชกเซเชฏเซเชฒเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชธเชฎเชพเชจ เช›เซ‡ cracklib. เช† เช…เชญเชฟเช—เชฎ เชฒเซ‡เช—เชธเซ€ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚เชฅเซ€ เชคเชฎเชพเชฐเซ€ เชจเซ€เชคเชฟเช“เชจเซ‡ เชชเซ‹เชฐเซเชŸ เช•เชฐเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

  • difok - เชคเชฎเชพเชฐเชพ เชจเชตเชพ เชชเชพเชธเชตเชฐเซเชกเชฎเชพเช‚ เชเชตเชพ เช…เช•เซเชทเชฐเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชœเซ‡ เชคเชฎเชพเชฐเชพ เชœเซ‚เชจเชพ เชชเชพเชธเชตเชฐเซเชกเชฎเชพเช‚ เชนเชพเชœเชฐ เชจ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช. (เชกเชฟเชซเซ‰เชฒเซเชŸ 5)
  • เชฎเชฟเชฒเซ‡เชจ - เชจเซเชฏเซ‚เชจเชคเชฎ เชชเชพเชธเชตเชฐเซเชก เชฒเช‚เชฌเชพเชˆ. (เชกเชฟเชซเซ‰เชฒเซเชŸ 9)
  • เชฏเซเช•เซเชฐเซ‡เชกเชฟเชŸ - เช…เชชเชฐเช•เซ‡เชธ เช…เช•เซเชทเชฐเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฐเซ‡เชกเชฟเชŸเชจเซ€ เชฎเชนเชคเซเชคเชฎ เชธเช‚เช–เซเชฏเชพ (เชœเซ‹ เชชเชฐเชฟเชฎเชพเชฃ > 0), เช…เชฅเชตเชพ เชจเซเชฏเซ‚เชจเชคเชฎ เชœเชฐเซ‚เชฐเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เช…เชชเชฐเช•เซ‡เชธ เช…เช•เซเชทเชฐเซ‹ (เชœเซ‹ เชชเชฐเชฟเชฎเชพเชฃ < 0). เชกเชฟเชซเซ‹เชฒเซเชŸ 1 เช›เซ‡.
  • เช•เซเชฐเซ‡เชกเชฟเชŸ โ€” เชฒเซ‹เช…เชฐเช•เซ‡เชธ เช…เช•เซเชทเชฐเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฐเซ‡เชกเชฟเชŸเชจเซ€ เชฎเชนเชคเซเชคเชฎ เชธเช‚เช–เซเชฏเชพ (เชœเซ‹ เชชเชฐเชฟเชฎเชพเชฃ > 0), เช…เชฅเชตเชพ เชฒเช˜เซเชคเซเชคเชฎ เชœเชฐเซ‚เชฐเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชฒเซ‹เช…เชฐเช•เซ‡เชธ เช…เช•เซเชทเชฐเซ‹ (เชœเซ‹ เชชเชฐเชฟเชฎเชพเชฃ < 0). เชกเชฟเชซเซ‹เชฒเซเชŸ 1 เช›เซ‡.
  • เชกเซ€เช•เซเชฐเซ‡เชกเชฟเชŸ โ€” เช…เช‚เช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฐเซ‡เชกเชฟเชŸเชจเซ€ เชฎเชนเชคเซเชคเชฎ เชธเช‚เช–เซเชฏเชพ (เชœเซ‹ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ > 0 เชนเซ‹เชฏ), เช…เชฅเชตเชพ เชจเซเชฏเซ‚เชจเชคเชฎ เชœเชฐเซ‚เชฐเซ€ เช…เช‚เช•เซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ (เชœเซ‹ เชชเชฐเชฟเชฎเชพเชฃ < 0 เชนเซ‹เชฏ เชคเซ‹). เชกเชฟเชซเซ‹เชฒเซเชŸ 1 เช›เซ‡.
  • เชœเชฎเชพ โ€” เช…เชจเซเชฏ เชชเซเชฐเชคเซ€เช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฐเซ‡เชกเชฟเชŸเชจเซ€ เชฎเชนเชคเซเชคเชฎ เชธเช‚เช–เซเชฏเชพ (เชœเซ‹ เชชเชฐเชฟเชฎเชพเชฃ > 0), เช…เชฅเชตเชพ เช…เชจเซเชฏ เชชเซเชฐเชคเซ€เช•เซ‹เชจเซ€ เชจเซเชฏเซ‚เชจเชคเชฎ เช†เชตเชถเซเชฏเช• เชธเช‚เช–เซเชฏเชพ (เชœเซ‹ เชชเชฐเชฟเชฎเชพเชฃ < 0). เชกเชฟเชซเซ‹เชฒเซเชŸ 1 เช›เซ‡.
  • เชฒเช˜เซเชคเชฎ เชตเชฐเซเช— - เชœเชฐเซ‚เชฐเซ€ เชตเชฐเซเช—เซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชธเซเชฏเซ‹เชœเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชตเชฐเซเช—เซ‹เชฎเชพเช‚ เช‰เชชเชฐเซ‹เช•เซเชค เชชเชฐเชฟเชฎเชพเชฃเซ‹ (เช…เชชเชฐ เช•เซ‡เชธ เช•เซ‡เชฐเซ‡เช•เซเชŸเชฐ, เชฒเซ‹เช…เชฐ เช•เซ‡เชธ เช•เซ‡เชฐเซ‡เช•เซเชŸเชฐ, เชจเช‚เชฌเชฐเซเชธ, เช…เชจเซเชฏ เช•เซ‡เชฐเซ‡เช•เซเชŸเชฐ)เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เชกเชฟเชซเซ‹เชฒเซเชŸ 0 เช›เซ‡.
  • เชฎเชนเชคเซเชคเชฎ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค - เชชเชพเชธเชตเชฐเซเชกเชฎเชพเช‚ เชเช• เช…เช•เซเชทเชฐเชจเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เชฅเชˆ เชถเช•เซ‡ เชคเซ‡เชŸเชฒเซ€ เชฎเชนเชคเซเชคเชฎ เชธเช‚เช–เซเชฏเชพ. เชกเชฟเชซเซ‹เชฒเซเชŸ 0 เช›เซ‡.
  • maxclassrepeat โ€” เชเช• เชตเชฐเซเช—เชฎเชพเช‚ เชธเชคเชค เช…เช•เซเชทเชฐเซ‹เชจเซ€ เชฎเชนเชคเซเชคเชฎ เชธเช‚เช–เซเชฏเชพ. เชกเชฟเชซเซ‹เชฒเซเชŸ 0 เช›เซ‡.
  • gecoscheck - เชชเชพเชธเชตเชฐเซเชกเชฎเชพเช‚ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ€ GECOS เชธเซเชŸเซเชฐเซ€เช‚เช—เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชˆ เชถเชฌเซเชฆ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชคเชชเชพเชธเซ‡ เช›เซ‡. (เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเชพเชนเชฟเชคเซ€, เชเชŸเชฒเซ‡ เช•เซ‡ เชตเชพเชธเซเชคเชตเชฟเช• เชจเชพเชฎ, เชธเซเชฅเชพเชจ, เชตเช—เซ‡เชฐเซ‡) เชกเชฟเชซเซ‹เชฒเซเชŸ 0 (เชฌเช‚เชง) เช›เซ‡.
  • เชกเชฟเช•เซเชŸเชชเชพเชฅ - เชšเชพเชฒเซ‹ เช•เซเชฐเซ‡เช•เชฒเชฟเชฌ เชถเชฌเซเชฆเช•เซ‹เชถเซ‹ เชชเชฐ เชœเชˆเช.
  • เช…เชชเชถเชฌเซเชฆเซ‹ โ€“ เชœเช—เซเชฏเชพ-เชตเชฟเชญเชพเชœเชฟเชค เชถเชฌเซเชฆเซ‹ เช•เซ‡ เชœเซ‡ เชชเชพเชธเชตเชฐเซเชกเซเชธเชฎเชพเช‚ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เช›เซ‡ (เช•เช‚เชชเชจเซ€เชจเซเช‚ เชจเชพเชฎ, เชถเชฌเซเชฆ "เชชเชพเชธเชตเชฐเซเชก", เชตเช—เซ‡เชฐเซ‡).

เชœเซ‹ เชฒเซ‹เชจเชจเซ‹ เช–เซเชฏเชพเชฒ เชตเชฟเชšเชฟเชคเซเชฐ เชฒเชพเช—เซ‡, เชคเซ‹ เชคเซ‡ เช เซ€เช• เช›เซ‡, เชคเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เช›เซ‡. เช…เชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชตเชฟเชญเชพเช—เซ‹เชฎเชพเช‚ เช† เชตเชฟเชถเซ‡ เชตเชงเซ เชตเชพเชค เช•เชฐเซ€เชถเซเช‚.

เชชเชพเชธเชตเชฐเซเชก เชจเซ€เชคเชฟ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ

เชคเชฎเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‹ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚, เชฎเซ‚เชณเชญเซ‚เชค เชชเชพเชธเชตเชฐเซเชก เชจเซ€เชคเชฟเชจเซ‡ เช…เช—เชพเช‰เชฅเซ€ เชฒเช–เซ€ เชฒเซ‡เชตเซ€ เช เชธเชพเชฐเซ€ เชชเซเชฐเชฅเชพ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชฎเซเชถเซเช•เซ‡เชฒเซ€ เชจเชฟเชฏเชฎเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚:

  • เชชเชพเชธเชตเชฐเซเชกเชจเซ€ เชฒเช‚เชฌเชพเชˆ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซ€ 15 เช…เช•เซเชทเชฐเซ‹เชจเซ€ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช.
  • เชชเชพเชธเชตเชฐเซเชกเชฎเชพเช‚ เชเช• เชœ เช…เช•เซเชทเชฐเชจเซเช‚ เชฌเซ‡ เช•เชฐเชคเชพ เชตเชงเซ เชตเช–เชค เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เชจ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช.
  • เช…เช•เซเชทเชฐ เชตเชฐเซเช—เซ‹ เชชเชพเชธเชตเชฐเซเชกเชฎเชพเช‚ เชšเชพเชฐ เชตเช–เชค เชธเซเชงเซ€ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชฅเชˆ เชถเช•เซ‡ เช›เซ‡.
  • เชชเชพเชธเชตเชฐเซเชกเชฎเชพเช‚ เชฆเชฐเซ‡เช• เชตเชฐเซเช—เชจเชพ เช…เช•เซเชทเชฐเซ‹ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช.
  • เชจเชตเชพ เชชเชพเชธเชตเชฐเซเชกเชฎเชพเช‚ เชœเซ‚เชจเชพเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€เชฎเชพเช‚ 5 เชจเชตเชพ เช…เช•เซเชทเชฐเซ‹ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช.
  • GECOS เชšเซ‡เช•เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซ‹.
  • "เชชเชพเชธเชตเชฐเซเชก, เชชเชพเชธ, เชถเชฌเซเชฆ, เชชเซเชŸเซ‹เชฐเซ€เชฏเชธ" เชถเชฌเซเชฆเซ‹ เชชเชฐ เชชเซเชฐเชคเชฟเชฌเช‚เชง เชฎเซ‚เช•เชตเซ‹

เชนเชตเซ‡ เช…เชฎเซ‡ เชชเซ‹เชฒเชฟเชธเซ€ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เช›เซ‡, เช…เชฎเซ‡ เชซเชพเช‡เชฒเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช /etc/security/pwquality.confเชชเชพเชธเชตเชฐเซเชก เชœเชŸเชฟเชฒเชคเชพ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹ เชตเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡. เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เชธเชพเชฅเซ‡ เชจเซ€เชšเซ‡ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เชซเชพเช‡เชฒ เช›เซ‡.

# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius

เชœเซ‡เชฎ เชคเชฎเซ‡ เชจเซ‹เช‚เชงเซเชฏเซเช‚ เชนเชถเซ‡, เช…เชฎเชพเชฐเซ€ เชซเชพเช‡เชฒเชฎเชพเช‚ เช•เซ‡เชŸเชฒเชพเช• เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชฐเชฟเชฎเชพเชฃ minclass เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เช†เชชเชฃเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชซเซ€เชฒเซเชกเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเชฐเซเช—เชฎเชพเช‚เชฅเซ€ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชฌเซ‡ เช…เช•เซเชทเชฐเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช [u,l,d,o]credit. เช…เชฎเชพเชฐเชพ เชถเชฌเซเชฆเซ‹เชจเซ€ เชธเซ‚เชšเชฟ เช•เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชคเซ‹ เชจเชฅเซ€ เชคเซ‡ เชชเชฃ เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเซ‡ เช•เซ‹เชˆเชชเชฃ เชตเชฐเซเช—เชจเซ‡ 4 เชตเช–เชค เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเชจเชพเชˆ เช•เชฐเซ€ เช›เซ‡ (เช…เชฎเชพเชฐเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚เชจเชพ เชฌเชงเชพ เชถเชฌเซเชฆเซ‹ เชจเชพเชจเชพ เช…เช•เซเชทเชฐเซ‹เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒเชพ เช›เซ‡). เชคเชฎเชพเชฐเซ€ เชชเชพเชธเชตเชฐเซเชก เชจเซ€เชคเชฟเชจเซ‡ เช—เซ‹เช เชตเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹ เชคเซ‡ เชฆเชฐเซเชถเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‡เช‚ เช† เชตเชฟเช•เชฒเซเชชเซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซเชฏเซ‹ เช›เซ‡.
เชเช•เชตเชพเชฐ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชชเซ‹เชฒเชฟเชธเซ€ เชฌเชจเชพเชตเซ€ เชฒเซ‹ เชคเซ‡ เชชเช›เซ€, เชคเชฎเซ‡ เช†เช—เชฒเซ€ เชตเช–เชคเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡เช“ เชฒเซ‰เช— เช‡เชจ เช•เชฐเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชชเชพเชธเชตเชฐเซเชก เชฌเชฆเชฒเชตเชพ เชฎเชพเชŸเซ‡ เชฆเชฌเชพเชฃ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชธเชฟเชธเซเชŸเชฎ.

เช…เชจเซเชฏ เชเช• เชตเชฟเชšเชฟเชคเซเชฐ เชฌเชพเชฌเชค เชคเชฎเซ‡ เช•เชฆเชพเชš เชจเซ‹เช‚เชงเซเชฏเซเช‚ เชนเชถเซ‡ เช•เซ‡ เช•เซเชทเซ‡เชคเซเชฐเซ‹ [u,l,d,o]credit เชจเช•เชพเชฐเชพเชคเซเชฎเช• เชธเช‚เช–เซเชฏเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เช† เชเชŸเชฒเชพ เชฎเชพเชŸเซ‡ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ 0 เชฅเซ€ เชฎเซ‹เชŸเซ€ เช…เชฅเชตเชพ เชคเซ‡เชจเชพ เชœเซ‡เชŸเชฒเซ€ เชธเช‚เช–เซเชฏเชพเช“ เชคเชฎเชพเชฐเชพ เชชเชพเชธเชตเชฐเซเชกเชฎเชพเช‚ เช…เช•เซเชทเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฐเซ‡เชกเชฟเชŸ เช†เชชเชถเซ‡. เชœเซ‹ เชซเซ€เชฒเซเชกเชฎเชพเช‚ เชจเช•เชพเชฐเชพเชคเซเชฎเช• เชธเช‚เช–เซเชฏเชพ เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชšเซ‹เช•เซเช•เชธ เชœเชฅเซเชฅเซ‹ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡.

เชฒเซ‹เชจ เชถเซเช‚ เช›เซ‡?

เชนเซเช‚ เชคเซ‡เชฎเชจเซ‡ เชฒเซ‹เชจ เช•เชนเซเช‚ เช›เซเช‚ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชคเซ‡เชฎเชจเชพ เชนเซ‡เชคเซเชจเซ‡ เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเซ€ เชšเซ‹เช•เซเช•เชธ เชฐเซ€เชคเซ‡ เชœเชฃเชพเชตเซ‡ เช›เซ‡. เชœเซ‹ เชชเชฐเชฟเชฎเชพเชฃ เชฎเซ‚เชฒเซเชฏ 0 เช•เชฐเชคเชพ เชตเชงเชพเชฐเซ‡ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เชชเชพเชธเชตเชฐเซเชกเชจเซ€ เชฒเช‚เชฌเชพเชˆเชฎเชพเช‚ "x" เชจเซ€ เชฌเชฐเชพเชฌเชฐ เชธเช‚เช–เซเชฏเชพเชฌเช‚เชง "เช•เซ‡เชฐเซ‡เช•เซเชŸเชฐ เช•เซเชฐเซ‡เชกเชฟเชŸเซเชธ" เช‰เชฎเซ‡เชฐเซ‹ เช›เซ‹. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เชฌเชงเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ (u,l,d,o)credit 1 เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ‹ เช…เชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เชชเชพเชธเชตเชฐเซเชก เชฒเช‚เชฌเชพเชˆ 6 เชนเชคเซ€, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชฒเช‚เชฌเชพเชˆเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเชจเซ‡ เชธเช‚เชคเซ‹เชทเชตเชพ เชฎเชพเชŸเซ‡ 6 เช…เช•เซเชทเชฐเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชฆเชฐเซ‡เช• เช…เชชเชฐเช•เซ‡เชธ, เชฒเซ‹เช…เชฐเช•เซ‡เชธ, เช…เช‚เช• เช…เชฅเชตเชพ เช…เชจเซเชฏ เช…เช•เซเชทเชฐ เชคเชฎเชจเซ‡ เชเช• เช•เซเชฐเซ‡เชกเชฟเชŸ เช†เชชเชถเซ‡.

เชœเซ‹ เชคเชฎเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹ เช›เซ‹ dcredit 2 เชชเชฐ, เชคเชฎเซ‡ เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡ 9 เช…เช•เซเชทเชฐเซ‹ เชฒเชพเช‚เชฌเซ‹ เชชเชพเชธเชตเชฐเซเชก เชตเชพเชชเชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชจเช‚เชฌเชฐเซ‹ เชฎเชพเชŸเซ‡ 2 เช…เช•เซเชทเชฐ เช•เซเชฐเซ‡เชกเชฟเชŸ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เช…เชจเซ‡ เชชเช›เซ€ เชชเชพเชธเชตเชฐเซเชกเชจเซ€ เชฒเช‚เชฌเชพเชˆ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ 10 เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡.

เช† เช‰เชฆเชพเชนเชฐเชฃ เชœเซเช“. เชฎเซ‡เช‚ เชชเชพเชธเชตเชฐเซเชกเชจเซ€ เชฒเช‚เชฌเชพเชˆ 13 เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ€ เช›เซ‡, dcredit 2 เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ€ เช›เซ‡ เช…เชจเซ‡ เชฌเชพเช•เซ€เชจเซเช‚ เชฌเชงเซเช‚ 0 เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซเชฏเซเช‚ เช›เซ‡.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

เชฎเชพเชฐเซ€ เชชเซเชฐเชฅเชฎ เชคเชชเชพเชธ เชจเชฟเชทเซเชซเชณ เช—เชˆ เช•เชพเชฐเชฃ เช•เซ‡ เชชเชพเชธเชตเชฐเซเชก 13 เช…เช•เซเชทเชฐเซ‹ เช•เชฐเชคเชพ เช“เช›เซ‹ เชฒเชพเช‚เชฌเซ‹ เชนเชคเซ‹. เช†เช—เชฒเซ€ เชตเช–เชคเซ‡ เชฎเซ‡เช‚ เช…เช•เซเชทเชฐ โ€œIโ€ เชจเซ‡ เชจเช‚เชฌเชฐ โ€œ1โ€ เชฎเชพเช‚ เชฌเชฆเชฒเซเชฏเซ‹ เช…เชจเซ‡ เชจเช‚เชฌเชฐเซ‹ เชฎเชพเชŸเซ‡ เชฌเซ‡ เช•เซเชฐเซ‡เชกเชฟเชŸเซเชธ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€, เชœเซ‡เชฃเซ‡ เชชเชพเชธเชตเชฐเซเชก 13 เชจเซ€ เชฌเชฐเชพเชฌเชฐ เชฌเชจเชพเชตเซเชฏเซ‹.

เชชเชพเชธเชตเชฐเซเชก เชชเชฐเซ€เช•เซเชทเชฃ

เชชเซ‡เช•เซ‡เชœ libpwquality เชฒเซ‡เช–เชฎเชพเช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡ เชเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชธเชพเชฅเซ‡ เชชเชฃ เช†เชตเซ‡ เช›เซ‡ pwscore, เชœเซ‡ เชชเชพเชธเชตเชฐเซเชก เชœเชŸเชฟเชฒเชคเชพ เชคเชชเชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เช›เซ‡. เช…เชฎเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฒเซ‹เชจ เชคเชชเชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฐ เช•เชฐเซเชฏเซ‹ เช›เซ‡.
เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ pwscore เชฅเซ€ เชตเชพเช‚เชšเซ‡ เช›เซ‡ เชธเซเชŸเชกเซ€เชจ. เชซเช•เซเชค เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชšเชฒเชพเชตเซ‹ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‹ เชชเชพเชธเชตเชฐเซเชก เชฒเช–เซ‹, เชคเซ‡ 0 เชฅเซ€ 100 เชจเซ€ เชญเซ‚เชฒ เช…เชฅเชตเชพ เชฎเซ‚เชฒเซเชฏ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเชถเซ‡.

เชชเชพเชธเชตเชฐเซเชก เช—เซเชฃเชตเชคเซเชคเชพ เชธเซเช•เซ‹เชฐ เชชเชฐเชฟเชฎเชพเชฃ เชธเชพเชฅเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เช›เซ‡ minlen เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเชˆเชฒเชฎเชพเช‚. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, 50 เชฅเซ€ เช“เช›เชพ เชธเซเช•เซ‹เชฐเชจเซ‡ "เชธเชพเชฎเชพเชจเซเชฏ เชชเชพเชธเชตเชฐเซเชก" เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชจเชพเชฅเซ€ เช‰เชชเชฐเชจเซ‹ เชธเซเช•เซ‹เชฐ "เชฎเชœเชฌเซ‚เชค เชชเชพเชธเชตเชฐเซเชก" เชคเชฐเซ€เช•เซ‡ เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช•เซ‹เชˆเชชเชฃ เชชเชพเชธเชตเชฐเซเชก เช•เซ‡ เชœเซ‡ เช—เซเชฃเชตเชคเซเชคเชพเชจเซ€ เชšเช•เชพเชธเชฃเซ€ เชชเชธเชพเชฐ เช•เชฐเซ‡ เช›เซ‡ (เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชซเชฐเชœเชฟเชฏเชพเชค เชšเช•เชพเชธเชฃเซ€ cracklib) เช เชกเชฟเช•เซเชถเชจเชฐเซ€ เชนเซเชฎเชฒเชพเช“เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช เช…เชจเซ‡ เชธเซ‡เชŸเชฟเช‚เช— เชธเชพเชฅเซ‡ 50 เชฅเซ€ เช‰เชชเชฐเชจเชพ เชธเซเช•เซ‹เชฐ เชธเชพเชฅเซ‡เชจเซ‹ เชชเชพเชธเชตเชฐเซเชก minlen เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชชเชฃ brute force เชนเซเชฎเชฒเชพเช“

เชจเชฟเชทเซเช•เชฐเซเชท

เช—เซ‹เช เชตเชฃ pwquality - เช‰เชชเชฏเซ‹เช—เชจเซ€ เช…เชธเซเชตเชฟเชงเชพเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€เชฎเชพเช‚ เชคเซ‡ เชธเชฐเชณ เช…เชจเซ‡ เชธเชฐเชณ เช›เซ‡ cracklib เชธเซ€เชงเชพ เชซเชพเช‡เชฒ เชธเช‚เชชเชพเชฆเชจ เชธเชพเชฅเซ‡ pam. เช† เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพเชฎเชพเช‚, เช…เชฎเซ‡ Red Hat 7, CentOS 7, เช…เชจเซ‡ Ubuntu เชธเชฟเชธเซเชŸเชฎเซเชธ เชชเชฐ เชชเชพเชธเชตเชฐเซเชก เชจเซ€เชคเชฟเช“ เชธเซ‡เชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชคเชฎเชจเซ‡ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เชคเซ‡ เชฌเชงเซเช‚ เช†เชตเชฐเซ€ เชฒเซ€เชงเซเช‚ เช›เซ‡. เช…เชฎเซ‡ เชฒเซ‹เชจเชจเซ€ เชตเชฟเชญเชพเชตเชจเชพ เชตเชฟเชถเซ‡ เชชเชฃ เชตเชพเชค เช•เชฐเซ€ เชนเชคเซ€, เชœเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชญเชพเช—เซเชฏเซ‡ เชœ เชตเชฟเช—เชคเชตเชพเชฐ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เช† เชตเชฟเชทเชฏ เช˜เชฃเซ€เชตเชพเชฐ เชคเซ‡ เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡ เช…เชธเซเชชเชทเซเชŸ เชฐเชนเซ‡ เช›เซ‡ เชœเซ‡เชฎเชฃเซ‡ เช…เช—เชพเช‰ เชคเซ‡เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซเชฏเซ‹ เชจ เชนเชคเซ‹.

เชธเซเชคเซเชฐเซ‹เชคเซ‹:

pwquality เชฎเซ‡เชจ เชชเซ‡เชœ
pam_pwquality เชฎเซ‡เชจ เชชเซ‡เชœ
pwscore เชฎเซ‡เชจ เชชเซ‡เชœ

เช‰เชชเชฏเซ‹เช—เซ€ เชฒเชฟเช‚เช•เซเชธ:

เชธเซเชฐเช•เซเชทเชฟเชค เชชเชพเชธเชตเชฐเซเชกเซเชธ เชชเชธเช‚เชฆ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช - เชฌเซเชฐเซเชธ เชธเซเชจเซ€เชฏเชฐ
Lorrie Faith Cranor CMU เช–เชพเชคเซ‡ เชคเซ‡เชจเชพ เชชเชพเชธเชตเชฐเซเชก เช…เชญเซเชฏเชพเชธเชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเซ‡ เช›เซ‡
เชเชจเซเชŸเซเชฐเซ‹เชชเซ€ เชชเชฐ เช•เซเช–เซเชฏเชพเชค xkcd เช•เชพเชฐเซเชŸเซ‚เชจ

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹