[root@server1 ~]# tail -f /var/log/secure
login as: july
july@192.168.56.101's password:
Access denied
july@192.168.56.101's password:
Access denied
july@192.168.56.101's password:
Access denied
july@192.168.56.101's password:
Access denied
july@192.168.56.101's password:
Last failed login: Thu Sep 1 17:35:26 KST 2022 from 192.168.56.1 on ssh:notty
There were 4 failed login attempts since the last successful login.
Last login: Thu Sep 1 17:33:43 2022 from 192.168.56.1
Sep 1 17:35:20 server1 unix_chkpwd[10928]: password check failed for user (july)
Sep 1 17:35:22 server1 sshd[10916]: Failed password for july from 192.168.56.1 port 51720 ssh2
Sep 1 17:35:22 server1 unix_chkpwd[10929]: password check failed for user (july)
Sep 1 17:35:24 server1 sshd[10916]: Failed password for july from 192.168.56.1 port 51720 ssh2
Sep 1 17:35:24 server1 unix_chkpwd[10931]: password check failed for user (july)
Sep 1 17:35:26 server1 sshd[10916]: Failed password for july from 192.168.56.1 port 51720 ssh2
Sep 1 17:35:26 server1 sshd[10916]: Accepted password for july from 192.168.56.1 port 51720 ssh2
Sep 1 17:35:26 server1 sshd[10916]: pam_unix(sshd:session): session opened for user july by (uid=0)
▶ 엄격한 스키마 규칙
정형, 비정형 데이터를 모두 다룸 ▶ 실시간 데이터
빅데이터
3V() ▶분석을 통해 데이터에 가치를 부여(정보)하여 통찰력을 얻음 (기업의 경쟁력, 생존)
└ Elasticsearch, MongoDB ▶ json (형식에 구애받지 않고 데이터를 저장하는 DB)
파일 내용 검색
-i
: 대, 소문자를 모두 검색한다.-l
: 해당 패턴을 포함하는 파일 이름을 출력-n
: 행 번호를 출력한다.파일 찾기
find 경로검색조건 [동작]
옵션
-name filename
: 파일 이름으로 검색-type 파일 종류
: 파일의 종류로 검색-user loginID
: 지정한 사용자가 소유한 모든 파일 검색-perm 접근 권한
: 지정한 사용 권한과 일치하는 파일동작
-exec 명령 {} \;
: 검색된 파일에 명령 실행-ok 명령 {} \;
: 사용자의 확인을 받아 명령 실행-print
: 검색된 파일의 절대 경로명을 화면에 출력(기본)
find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -l {} \; | /bin/mail -s "SUID/SGID LIST" root
/
: /에서-type f
: 파일을 찾아라\( -perm -04000 -0 -perm -02000 \)
:-exec ls -l {} \;
:/bin/main -s "SUID/SGID LIST" root
: root에 "SUID/SGID LIST"라는 제목으로 보내라▶ 4000, 2000 특수 권한을 갖고 있는 파일을 최상위 /에서 찾아서 root 사용자에게 ls -l 한 결과를 메일(메시지)로 보내주세요.
결과:
cd /var/spool/mail
vi root
/SUID
vi 편집기에서 단어 검색
/ 또는 ? + 검색할 단어
명령의 위치 찾기
/usr/bin/find
만약, 실행 가능한 애플리케이션(shellscript)을 개발했다면 절대경로에 등록해야 한다.
1) 절대경로($PATH)에 등록된 경로에 실행 파일 저장
2) 절대경로($PATH)에 애플리케이션의 ~/bin(실행 파일 경로) 등록
명령의 위치 찾기
각 클라우드의 장점에 따라 여러 클라우드를 도입하여 다양하게 사용하는 방식
오라클을 설치하고자 한다. 사전준비사항 중 오라클 S/W가 설치되는 경로($ORACLE_HOME, $ORACLE_HOME/bin) 등을 준비해야 한다.
따라서, 해당 경로를 절대경로($PATH)에 등록해야 한다.
데이터베이스는 /u01에 설치 (OS가 설치되어있는 디렉토리에 무거운 DB를 설치하면 성능이 저하된다.)
[root@server1 ~]# mkdir -p /u01/app/oracle/procuet/12.2.0/db_1/bin
결과
[root@server1 u01]# tree . └── app └── oracle └── procuet └── 12.2.0 └── db_1 └── bin
소유자 권한 변경
[root@server1 ~]# chown -R oracle.oracle /u01
결과
[root@server1 ~]# su - oracle [oracle@server1 ~]$
oracle 실행 파일 경로 설정
[oracle@server1 ~]$ vi .bash_profile < 설정합시다~~~> [oracle@server1 ~]$ source .bash_profile
설정 내용 (.bash_profile)
export ORACLE_HOME=/u01/app/oracle/procuet/12.2.0/db_1 PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
경로 확인
[oracle@server1 ~]$ echo $ORACLE_HOME /u01/app/oracle/procuet/12.2.0/db_1
[oracle@server1 ~]$ vi $ORACLE_HOME/bin/sqlplus
[oracle@server1 ~]$ chmod 700 $ORACLE_HOME/bin/sqlplus
[oracle@server1 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oracle/.local/bin:/ home/oracle/bin:/home/oracle/.local/bin:/home/oracle/bin:/u01/app/oracle/procuet /12.2.0/db_1/bin
[oracle@server1 ~]$ sqlplus
DB connection
SQL>
IAM = AuthN(인증) + AuthZ(인가)
└ 파일, 디렉터리 수준에서 r(4), w(2), x(1), -(0) 으로 제어 (읽고, 쓰고, 사용하기)
사용자 수준에서 접근 제어 가능
👀
CIDR (원하는 대역을 사설 네트워크를 통해 지정)
└ 192.16.0.0/16 ▶ 65535개
$PATH에 등록된 경로의 실행파일은 어느 위치에서든 실행이 가능하게 된다.
LABs
를 절대경로로 지정[root@server1 ~]# vi .bash_profile [root@server1 ~]# source .bash_profile [root@server1 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/root/LABs
.bash_profile 내의 PATH 수정
PATH=$PATH:$HOME/bin:/root/LABs
ls -l
에서
첫 번째: 파일 타입
나머지: 접근 권한
[root@server1 LABs]# mkdir perm && cd $_
[root@server1 perm]# touch file1
[root@server1 perm]# mkdir dir1
[root@server1 perm]# ls
dir1 file1
[root@server1 perm]# ls -l
total 0
drwxr-xr-x. 2 root root 6 Sep 1 19:54 dir1
-rw-r--r--. 1 root root 0 Sep 1 19:54 file1
[root@server1 LABs]# mkdir perm && cd $_
[root@server1 perm]# touch file1
[root@server1 perm]# mkdir dir1
[root@server1 perm]# ls
dir1 file1
[root@server1 perm]# ls -l
total 0
drwxr-xr-x. 2 root root 6 Sep 1 19:54 dir1 -> 755 = 777-022
-rw-r--r--. 1 root root 0 Sep 1 19:54 file1 -> 644 = 666-022
022(umask) : 보안을 강화하려면 umask의 값을 증가
[root@server1 perm]# umask
0022
[root@server1 perm]# umask 0055
[root@server1 perm]# touch file2
[root@server1 perm]# mkdir dir2
[root@server1 perm]# ls -l
total 0
drwxr-xr-x. 2 root root 6 Sep 1 19:54 dir1
drwx-w--w-. 2 root root 6 Sep 1 19:57 dir2
-rw-r--r--. 1 root root 0 Sep 1 19:54 file1
-rw--w--w-. 1 root root 0 Sep 1 19:57 file2
예) /tmp
getfacl [옵션][파일/디렉토리]
파일/디렉토리의 ACL을 확인할 때 사용
setfacl [옵션][권한] [파일/디렉토리]
파일/디렉토리의 ACL을 수정할 때 사용
예)setfacl -m u:jeff:rx /BACKUP
: /BACKUP 디렉토리에 대해 user jeff에게 rx 권한 부여
App ▶ Process(작업자) ▶ Thread
대표적인 app: MySQL
?) 대한민국 전체 은행의 평균 초당 거래 건수? 50000
▶ Multi-Process가 아니면 처리 불가능
사용자가 프로그램을 실행시키면 프로세스를 할당 ▶ fork()
process가 실행하는 장소
스케줄러에게 특정 시간에 작업을 하도록 요청
현재 시스템에서 실행 중인 프로그램 (코드가 내장되어 있음 ▶ Job)
[root@server1 ~]# pstree
트리의 최상위 트리: systemd
즉, systemd가 최우선 프로세스 (프로세스#1)
ps
ps 명령을 옵션 없이 사용하면 현재 셀이나 터미널에서 실행한 사용자 프로세스에 대한 정보 출력
전체 프로세스의 더 자세한 정보 출력
[root@server1 ~]# pstree -p | grep 프로세스
시스템에서 실행 중인 모든 프로세스에 대한 자세한 정보 출력
👀
systemctl stop httpd.service
- 정상종료 ▶ graceful shutdown
- 비정상종료 ▶ force shutdown
- 강제 종료 ▶
kill 시그널 PID
/killall 프로세스
[root@server1 ~]# crontab -l
no crontab for root
crontab -e
35 16 * * * /usr/bin/find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -l {} \; | /bin/mail -s "SUID/SGID LIST" root