728x90

1. 계정상태 확인
$ lsuser [계정명]
ex) lsuser padmin
padmin roles=PAdmin account_locked=false expires=0 histexpire=0
histsize=0 loginretries=0 maxage=0 maxexpired=-1 maxrepeats=8 minage=0
minalpha=0 mindiff=0 minlen=0 minother=0 pwdwarntime=0
sally roles=DEUser account_locked=false expires=0 histexpire=0
histsize=0 loginretries=0 maxage=0 maxexpired=-1 maxrepeats=8 minage=0
minalpha=0 mindiff=0 minlen=0 minother=0 pwdwarntime=330
henry roles=DEUser account_locked=false expires=0 histexpire=0
histsize=0 loginretries=0 maxage=0 maxexpired=-1 maxrepeats=8 minage=0
minalpha=0 mindiff=0 minlen=0 minother=0 pwdwarntime=330
admin1 roles=Admin account_locked=false expires=0 histexpire=0
histsize=0 loginretries=0 maxage=0 maxexpired=-1 maxrepeats=8 minage=0
minalpha=0 mindiff=0 minlen=0 minother=0 pwdwarntime=330
deuser1 roles=DEUser account_locked=false expires=0 histexpire=0
histsize=0 loginretries=0 maxage=0 maxexpired=-1 maxrepeats=8 minage=0
minalpha=0 mindiff=0 minlen=0 minother=0 pwdwarntime=330
sadan roles=Admin account_locked=false expires=0 histexpire=0
histsize=0 loginretries=0 maxage=0 maxexpired=-1 maxrepeats=8 minage=0
minalpha=0 mindiff=0 minlen=0 minother=0 pwdwarntime=330 registry=LDAP
SYSTEM=LDAP sruser1 roles=SRUser,RunDiagnostics
account_locked=false expires=0 histexpire=0
histsize=0 loginretries=0 maxage=0 maxexpired=-1 maxrepeats=8 minage=0
minalpha=0 mindiff=0 minlen=0 minother=0 pwdwarntime=330
view1 roles=ViewOnly account_locked=false expires=0 histexpire=0
histsize=0 loginretries=0 maxage=0 maxexpired=-1 maxrepeats=8 minage=0
minalpha=0 mindiff=0 minlen=0 minother=0 pwdwarntime=330

또는

$ vi /etc/security/lastlog
ex)
bck:
   time_last_unsuccessful_login = 732475345
   tty_last_unsuccessful_login = tty0
   host_last_unsuccessful_login = waterski
   unsuccessful_login_count = 0
   time_last_login = 734718467
   tty_last_login = lft/0
   host_last_login = waterski

□ 항목별 설명
time_last_login : 마지막으로 성공한 로그인 이후 경과된 시간 (초) 을 지정합니다 (00:00:00 GMT, 1970년 1월 1일). 값은 10진수 정수입니다.
tty_last_login : 사용자가 마지막으로 로그인한 터미널을 지정합니다. 값은 문자열이다.
host_last_login : 사용자가 마지막으로 로그인한 호스트를 지정합니다. 값은 문자열이다.
unsuccessful_login_count : 마지막으로 성공한 로그인 이후 로그인 시도 실패 횟수를 지정합니다. 값은 10진수 정수입니다. 이 속성은 지정된 수의 연속 실패 로그인 시도 후 사용자 계정을 잠그기 위해 /etc/security/user 파일에 지정된 사용자의 로그인 재시도 속성과 함께 작동합니다. 사용자 계정이 잠기면 시스템 관리자가 사용자의 성공적인 login_count 속성을 로그 재시도 값 미만으로 재설정할 때까지 사용자는 로그인할 수 없습니다. 이를 수행하려면 다음을 입력하십시오.
chsec -f /etc/security/lastlog -s username -a \ unsuccessful_login_count=0
time_last_unsuccessful_login : 마지막으로 실패한 로그인 이후 경과된 시간 (초) 을 지정합니다 (00:00:00 GMT, 1970년 1월 1일). 값은 10진수 정수입니다.
tty_last_unsuccessful_login : 마지막으로 실패한 로그인 시도가 발생한 터미널을 지정합니다. 값은 문자열이다.
host_last_unsuccessful_login : 마지막으로 실패한 로그인 시도가 발생한 호스트를 지정합니다. 값은 문자열이다.

>  통상적으로 unsuccessful_login_count 가 30 이상이면 잠김상태

2. 계정 로그인 시 패스워드 변경  여부 확인 통과
$ pwdadm -f NOCHECK [계정명]

pwdadm 명령은 사용자의 비밀번호를 관리합니다. 루트 사용자 또는 보안 그룹의 멤버는 User 매개변수에서 지정하는 사용자의 비밀번호를 제공하거나 변경할 수 있습니다. 명령의 호출자가 다른 사용자의 비밀번호를 변경할 수 있으려면 우선 요청이 있을 때 비밀번호를 제공해야 합니다. 명령이 실행되면 이는 ADMCHG 속성을 설정합니다. 이에 따라 사용자는 다음 번에 su 명령이 사용자에 대해 제공될 때 비밀번호를 변경해야 합니다.

$ vi /etc/security/passwd

smith:
  password = MGURSj.F056Dj
  lastupdate = 623078865
  flags = ADMIN,NOCHECK

□속성별 정의
암호 : 암호화된 암호를 지정합니다. 시스템은 암호 명령 또는 pwdadm 명령으로 작성된 비밀번호를 암호화합니다. 비밀번호가 비어 있으면 사용자에게 비밀번호가 없습니다. 암호가 * (별표) 인 경우 사용자는 로그인할 수 없습니다. 값은 문자열이다. 디폴트 값은 * 입니다.
lastupdate : 암호가 마지막으로 변경된 시간 (초) 이후의 시간 (초) 을 지정합니다. 비밀번호 에이징 ( 음지 속성 또는 격언 속성) 이 적용되는 경우, 시간 제한이 만료되면 lastupdate : 속성이 비밀번호 변경을 강제 실행합니다. (암호 에이징에 대한 정보는 /etc/security/user 파일을 참조하십시오.) 일반적으로 암호 및 pwdadm 명령은 암호가 변경될 때 이 속성을 설정합니다. 값은 시간을 보내다 서브루틴을 사용하여 텍스트 문자열로 변환할 수 있는 10진 정수입니다.
플래그 : 로그인, 암호및 수 명령에 의해 적용되는 제한사항을 지정합니다. 값은 쉼표로 구분된 속성 목록입니다. 깃발 속성은 공백으로 둘 수도 있고 다음 값 중 하나 이상일 수도 있습니다.
- admin
비밀번호 정보의 관리 상태를 정의합니다. 관리 속성이 설정된 경우, 루트 사용자만 이 암호 정보를 변경할 수 있습니다.
- ADMCHG
비밀번호가 보안 그룹의 구성원 또는 루트 사용자에 의해 마지막으로 변경되었음을 표시합니다. 일반적으로 이 플래그는 pwdadm 명령이 다른 사용자의 비밀번호를 변경할 때 내재적으로 설정됩니다. 이 플래그가 명시적으로 설정되면 다음에 사용자가 로그인 명령 또는 수 명령을 제공할 때 비밀번호를 강제로 업데이트합니다.
- NOCHECK
/etc/security/user 파일에 정의된 시스템 비밀번호 제한사항이 이 비밀번호에 대해 적용되지 않습니다.

> "flags = ADMCHG" 가 존재시 패스워드 변경 여부 확인함

3. 계정 잠금 해제
$ chuser unsuccessful_login_count=0 [계정명]

또는

chsec -f  /etc/security/laslog -a "unsuccessful_login_count=0" -s [계정명]

728x90
728x90

■ 물리코어 및 논리코어 수 확인하기
AIX는 논리코어(SMT)라는 개념이 있는데
정확히는 모르지만 아래와 같이 생각하면 여타 다른 시스템과 비슷한 것 같다
물리코어=소켓  수
논리코어=코어 수

아래는 물리코어 2코어 논리코어 16코어에 대한 결과값이다.

$ smtctl
This system is SMT capable.
This system supports up to 8 SMT threads per processor.
SMT is currently enabled.
SMT boot mode is not set.
SMT threads are bound to the same physical processor.

proc0 has 8 SMT threads.
Bind processor 0 is bound with proc0
Bind processor 1 is bound with proc0
Bind processor 2 is bound with proc0
Bind processor 3 is bound with proc0
Bind processor 4 is bound with proc0
Bind processor 5 is bound with proc0
Bind processor 6 is bound with proc0
Bind processor 7 is bound with proc0


proc8 has 8 SMT threads.
Bind processor 8 is bound with proc8
Bind processor 9 is bound with proc8
Bind processor 10 is bound with proc8
Bind processor 11 is bound with proc8
Bind processor 12 is bound with proc8
Bind processor 13 is bound with proc8
Bind processor 14 is bound with proc8
Bind processor 15 is bound with proc8

■cpu 모델명 확인

$ prtconf | grep Processor
Processor Type: PowerPC_POWER9
Processor Implementation Mode: POWER 9
Processor Version: PV_9_Compat
Number Of Processors: 2
Processor Clock Speed: 3000 MHz
  Model Implementation: Multiple Processor, PCI bus
+ proc0                                                                          Processor
+ proc8                                                                          Processor


728x90
728x90

tar -cvf [파일명] -X ExcludeList.txt [묶을 경로]
※ExcludeList.txt에는 제외시킬 디렉토리 및 파일에 대해서 상대경로로 기재

728x90

'IT > OS (Unix Linux Windows)' 카테고리의 다른 글

[LINUX] TCPDUMP  (1) 2023.01.09
[UNIX]AIX CPU정보 확인  (0) 2022.05.19
[LINUX]CPU / 코어 / 스레드 정보 확인  (0) 2022.02.08
[Linux]로그인 절차 없이 sftp 접속  (0) 2021.10.19
[링크]공유메모리 삭제  (0) 2021.09.27
728x90

출처 : https://waspro.tistory.com/106

1. HP-UX

$ glance


> glance Command 창에서 s를 누른 후 CPU를 점유중인 pid를 입력
> Process 정보창에서G(shift+g)를 누른 후 Thread 별로 CPU 사용량 확인가능(space로 다음페이지 확인 가능)
> Thread 정보의 TID와 Thread Dump의 lwpid와 맵핑해서 확인 할 수 있다.

2. Linux

$ top -h


> 여기서 pid는 Thread ID
> Thread Dump의 nid와 Pid 값을 16진수로 변환해 일치하는 값을 확인

728x90
728x90

Unix / Linux 에서 표준 입력, 표준 출력, 표준 에러에 대한 파일 디스크립터는 다음과 같은 정수로 할당되어 있다.


표준 입력 = 0

표준 출력 = 1

표준 에러 = 2


따라서 표준 출력과 표준 에러를 한 파일로 리다이렉션 하려면 다음과 같이 하여야 한다.


# 명령어 > 표준 출력 리다이렉션  2>&1

 EX) cat test.txt > result.log 2>&1


최초 > 를 통해 리다이렉션 방향은 정해졌으며 표준 출력은 result.log에 저장된다.

그 뒤의 파일 디스크립터 2(표준 에러)는 1(표준 출력)으로 리다이렉션 되기 때문에,

쉽게 말하면 "2"를 "&1"로 보내라는 뜻 

result.log에 표준 에러와 표준 출력이 한 파일에 저장되게 된다.

728x90
728x90

개요
 HPUX JAVA Minor패치(1.6.0.20 -> 1.6.0.33) 후 특정 로직에서 Exception 발생.

현상
 HPUX JAVA Minor패치(1.6.0.20 -> 1.6.0.33) 후 특정 로직에서 java.lng.NoClassDefFoundEeeor : Could not initialize class com.sun.net.ssl.internal.ssl.SupportedEllipticCurvesExtension 발생

원인
 HPUX JAVA 1.6.0.33으로 업그레이드시 발생하는 exception는com/sun/net/ssl/internal/ssl/SupportedEllipticCurvesExtension에 대한 class를 찾지 못해서 생긴 메시지.
 해당 exception은 JDK-8148516 fix에서 시작합니다. 이 fix의 부작용으로 elliptic curve name extension field 처리에 필요한 elliptic curve cryptography support 를 잃어버렸음.
 잃어버린 elliptic curve cryptography support에 대한 내용 문서 http://bugs.java.com/view_bug.do?bug_id=8175005

해결방안
 https://bugs.openjdk.java.net/browse/JDK-8173783 에 의하면 해당 버그는 6u141 b32(HPE JDK 6.0.35)에서 해결

 

728x90
728x90

tcp_conn_request_max
 개요
 application에서 tcp connection을 한번에 열어줄 수 있는 개수를 관장하는 OS global parameter.
 default : 4096 connections

 관련 현상
 Socket error : No buffer space available.

 ex) /usr/bin/ndd -[set/get]  /dev/tcp tcp_conn_request_max

     tcp_conn_request_max 값을 확인하라 

 $ /usr/bin/ndd -get  /dev/tcp tcp_conn_request_max


     tcp_conn_request_max 값을 8k로 설정하라

$ /usr/bin/ndd -set  /dev/tcp tcp_conn_request_max:8192


728x90
728x90

개요
 JAVA Process HANG 발생 후 해당 Process의 kill 불가.

현상
 JAVA Process의 서비스 불가로 인한 HANG 발생 확인 후 process에 대해 kill등의 조치를 취하려 하였으나 불가하였음.

원인
 HP OS의 NFS(네트워크 공유 파일 시스템)솔루션인 ONCplus Software의 Bug 및 Virtual Memory System Call 결함으로 인해 발생 
 (NFS Call 완료 되지 않은 상태에서  Java 프로세스의 반복적인 I/O 요청으로 Hang 발생 및 프로세스 Kill 불가)

해결방안
 1차적으로 해당 현상 해소를 위해서는 서버 리부팅을 통해 해소
 근본적인 해결을 위해 HPUX의 패치 수행
  NFS Software(ONCplus) 최신 버전(11.31.19.1) 업데이트
  vm cumulative patch 적용

728x90
728x90
개요
 Size가 큰 Session이 유입되면서, IO Exception이 발생 하였으며, Session서버로 부하를 주면서 Queue Full 발생 및 Lock획득 과정에서 Hang상태 후 장애유발

현상
 WAS의 컨테이너에서 Container getSession IO Exception 발생. 
 해당 Exception의 발생으로 컨테이너가 HANG상태로 변함.

원인
 jeus.net.msg.max 사이즈는 기본 5M 설정으로 이보다 더 큰 세션 생성시 getSession IO Exception 발생.
 Network OS level 에서의 Send Buffer가 정상적으로 read 되지 않았으며, 따라서 write queue가 점차적으로 증가 후, 10kb 되면서 Queue Block 발생함

해결방안
 system.jeus.session 로그를 활성화 시켜 로그 사이즈 측정 결과, 최대 8MB를 기록하였음.
 따라서 다음과 같이 설정 
  $JEUS_HOME/bin/jeus.properties의 JAVA_ARGS에 -Djeus.net.msg.max 사이즈 10MB 설정.
  ※티맥스연구소 권장에 따른, 사이트 세션객체 크기에 따라 조정하며, 10MB 이상은 비정상으로 Exception 처리가 적절함

 Send Buffer의 무한 Wait를 방지를 위해 다음과 같이 설정 (jext패치 작업이 같이 필요)
  $JEUS_HOME/bin/jeus.properties의 JAVA_ARGS에 -Djeus.net.nio.write.timeout 설정
  $JEUS_HOME/lib/jext 에 jext_v6008_i77157_a451003.jar 추가 필요.
728x90
728x90
개요
 WAS 서버의 Looping현상으로 인한 서비스 지연 발생

현상
 WAS 서버의 resolv.conf 설정 변경 후 해당 WAS서버에서 제공하는 일부 서비스 접속 불가 현상

원인
 resolv.conf 설정 시 nsswitch.conf  설정 파일이 없으면 DNS 우선 참조(hosts 파일 참조 하지 않음)
 ※ resolv.conf : DNS 서비스를 위한 설정 파일
   nsswitch.conf : 도메인 검색 순서를 설정하는 파일
   ex) hosts: files [NOTFOUND=continue] dns 
     →hosts 파일에 URL이 없으면 dns 서버에서 검색

 hosts 파일 내에 등록된 URL 호출 불가로 서비스 큐잉 발생
  →DNS 참조 후 공인IP로 호출하게 되어 내부IP 호출 서비스 불가
  →WAS서버는 DMZ 망이 아닌 내부망에 존재 하므로 공인IP로 서비스 호출 불가

해결방안
 resolv.conf 의 설정에 대한 무지로 인해 발생한 건으로 resolv.conf 원복하여 해결

 
728x90

+ Recent posts