Programming/PHP2018.02.20 19:56

PHP에서 Root 권한 계정으로 AD(Active Directory) 비밀번호 변경시 

AD의 이전 비밀번호 재사용 금지 정책 적용


<?php function getPassword($sPassword) { $sPassword = '"' . $sPassword . '"'; $nCount = strlen($sPassword); $sNewPassword = ""; for ($i = 0; $i < $nCount; $i++) { $sNewPassword .= $sPassword[$i] . "\000"; } return $sNewPassword; } $ctrl2012 = array( // LDAP_SERVER_POLICY_HINTS_OID for Windows 2012 and above "oid" => "1.2.840.113556.1.4.2239", "value" => sprintf("%c%c%c%c%c", 48, 3, 2, 1, 1) ); $ctrl2008 = array( // LDAP_SERVER_POLICY_HINTS_DEPRECATED_OID for Windows 2008 R2 SP1 and above "oid" => "1.2.840.113556.1.4.2066", "value" => sprintf("%c%c%c%c%c", 48, 3, 2, 1, 1) ); /****** ** 윈도우 2012이상의 경우 $ctrl2012 사용 ** 윈도우 2008의 경우 $ctrl2008 사용 *******/ if (!ldap_set_option($ldap_connection, LDAP_OPT_SERVER_CONTROLS, array($ctrl2008))) { echo "ERROR: Failed to set server controls"; } $userdata["unicodePwd"] = getPassword('newPassword'); $result = ldap_mod_replace($ldap_connection, $dn , $userdata); if (!$result) { echo "\nErrorNo : ".@ldap_errno($ldap_connection); echo "\nErrorMsg : ".@ldap_error($ldap_connection); }else{ echo 'OK'; } ?>


참고 해외 블로그 : http://laviefrugale.blogspot.kr/2013/01/enforcing-active-directory-password.html

MS  참고 자료 : https://msdn.microsoft.com/en-us/library/cc223320.aspx

Posted by 시니^^
Programming/Etc2017.07.14 19:00


fluentd  인코딩 변환 설정


<source>
from_encoding cp949
encoding utf-8 
</source>


아래와 같이 CP949 에서 UTF-8 변환 실패로 인한 로그 유실 발생

error="\"\\xC1\\xC1\" from CP949 to UTF-8"

iconv 에서의 ignore translit 옵션 처리에 대한 방안 검토


debug 모드로 확인 결과 in_tail.rb 파일 확인

<system>
log_level debug
</system>
2017-07-07 18:57:08 +0900 [warn]: ??? error="\"\\xC1\\xC1\" from CP949 to UTF-8"
2017-07-07 18:57:08 +0900 [debug]: /opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/fluentd-0.12.35/
lib/fluent/plugin/in_tail.rb:321:in `encode!'


debug모드 에러에서 나온 in_tail.rb 파일 321라인 에 대해서 아래와 같이 수정함 

$vi /opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/fluentd-0.12.35/lib/fluent/plugin/in_tail.rb line.encode!(@encoding, @from_encoding) => line.encode!(@encoding, @from_encoding, :invalid => :replace, :undef => :replace, :replace => "?")


상황에 따라서 "?" 또는 "" 빈값형태로 대처 한다.

Posted by 시니^^
Programming/node.js2017.02.02 11:23

티스토리 툴바