graphical.target | GUI 환경 구성 그래픽 모드에 필요한거 실행 | multi-user.target 필필요 |
multi-user.target | CLI 환경 구성 | basic.target필요 |
basic.target | SELINUX, 네트워크 환경 구성 | sysinit.target필요 |
sysinit.target | 마운트 안정 | local-fs.target필요 |
local-fs.target | /etc/fstab 에 등록된 마운트 작업 |
systemctl isolate <TARGET>
systemctl get-default
systemctl set-default multi-user.target
시스템이 가동되는 방법
런레벨 | 영문 | 설명 | 비고 |
---|---|---|---|
0 | power off | 종료모드 | |
1 | rescue | 시스템 복구 모드 | 단일 사용자 모드 |
2 | mulit-user | 사용 X | |
3 | mulit-user | 텍스트 모드의 다중 사용자 모드 | |
4 | mulit-user | 사용 X | |
5 | graphical | 그래픽 모드의 다중 사용자 모드 | |
6 | reboot |
시스템 내에서 런레벨 확인
[root@localhost ~]# ls –l /usr/lib/systemd/system/*runlevel*
lrwxrwxrwx. 1 root root 15 2월 21 14:52 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 2월 21 14:52 /usr/lib/systemd/system/runlevel1.target -> rescue.target
...
파일 시스템과 커널 실행 포맷을 인식하여 하드디스크 상에서의 커널의 물리적인 위치를 기록하지 않고도 커널의 파일명과 커널이 위치하고 있는 파티의 위치만을 알고 잇으면 시스템 부팅이 가능함
# cat /boot/grub2/grub.cfg
# cat /etc/default/gurb
# mount -o rw,remount /sysroot
# chroot /sysroot
# passwd
# touch /.autorelabel
만들지 않으면 부팅이 안 될수도 있으니 주의
8. ctrl + d 두번 입력
9. 다음 부팅 시, 변경된 비밀번호 적용
근데 이러면 누구나 변경 가능한거 아니에요❓
초기상태에 설정가능하지만 부트로드 설정(새롭게 프로그래밍)을 하면 막을 수 있음
ex) 부트로더 진입 시, ID PW 입력하게 함
[root@localhost ~]# vi /etc/default/grub
GRUB_TIMEOUT=5
# 위 항목 변경
1./etc/default/grub에 있는 설정을 불러오는 파일 열기
# vi /etc/grub.d/00_header
cat << EOF
set superusers='ID명'
password ID명 PW
EOF
grub2-mkconfig -o /boot/grub2/grub.cfg
가상머신에서 디스크 파일 선택을 눌러
패키지 파일이 들어있는 이미지 파일을 넣어둡니다
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sr0 11:0 1 4.2G 0 rom
사용하기 위해 마운트 해줍니다
[root@localhost ~]# umount /dev/cdrom
umount: /dev/cdrom: not mounted
[root@localhost ~]# mkdir /media/cdrom
[root@localhost ~]# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# ls /media/cdrom
CentOS_BuildTag EULA LiveOS RPM-GPG-KEY-CentOS-7 TRANS.TBL isolinux
EFI GPL Packages RPM-GPG-KEY-CentOS-Testing-7 images repodata
Packages 디렉토리안에
[root@localhost ~]# ls /media/cdrom/Packages/ | head -5
389-ds-base-1.3.7.5-18.el7.x86_64.rpm
389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm
ElectricFence-2.2.2-39.el7.x86_64.rpm
GConf2-3.2.6-8.el7.x86_64.rpm
GeoIP-1.5.0-11.el7.x86_64.rpm
.rpm이라는 패키지 파일들이 존재합니다
패키지 이름 정보
[root@localhost ~]# rpm -Uvh /media/cdrom/Packages/ksh-20120801-137.el7.x86_64.rpm
[root@localhost ~]# rpm -e ksh
[root@localhost ~]# rpm -qa | grep ksh
ksh-20120801-137.el7.x86_64
rpm은 저수준 도구로 2가지 단점이 존재
1. 패키지 설치를 위해 반드시 .rpm파일이 필요함
2. 의존성을 해결하지 못 함
[root@localhost ~]# rpm -Uvh /media/cdrom/Packages/mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm
경고: /media/cdrom/Packages/mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
오류: Failed dependencies:
libodbc.so.2()(64bit) is needed by mysql-connector-odbc-5.2.5-7.el7.x86_64
libodbcinst.so.2()(64bit) is needed by mysql-connector-odbc-5.2.5-7.el7.x86_64
해당 패키지를 설치하기 위해서는 다른 패키지 설치가 우선이라는 경고메시지
추가적인 문제 : 필요한 패키지를 패키지명으로 명시하는 것이 아니라 라이브러리 명으로 명시 되기 때문에 찾기가 쉽지 않음 => 해당 패키지가 또 다른 의존성이 필요할 수도 있으므로 2차 문제 발생 가능성 존재
따라서, rpm은 패키지의 설치보다는 관리 목적의 용도로 많이 사용
# 정보확인
[root@localhost ~]# rpm –qi openssh
# 설정파일 확인
[root@localhost ~]# rpm –qc openssh
# 패키지안에 있는 모든 문서들을 확인할 때
[root@localhost ~]# rpm –qd openssh
# 패키지를 구성하는 모든 파일 확인
[root@localhost ~]# rpm –ql openssh
# 어떤패키지로 인해 생성이 되었는지
[root@localhost ~]# rpm -qf /etc/ssh/
openssh-7.4p1-16.el7.x86_64
rpm의 단점인 의존성 문제를 해결
[root@localhost ~]# yum install mysql-connector-odbc.x86_64
...
==================================================================================================
Package Arch Version Repository Size
==================================================================================================
Installing:
mysql-connector-odbc x86_64 5.2.5-8.el7 base 142 k
Installing for dependencies:
unixODBC x86_64 2.3.1-14.el7 base 413 k
...
의존성이 필요한 패키지를 자동으로 설치, 패키지명으로 명시
저장소를 통해 다운로드 하기 때문에인터넷이 연결되어 있어야 함
# yum [sub-command] [패키지명]
[root@localhost ~]# yum install ksh
...
Resolving Dependencies
--> Running transaction check
---> Package ksh.x86_64 0:20120801-143.el7_9 will be installed
--> Finished Dependency Resolution
...
Installed:
ksh.x86_64 0:20120801-143.el7_9
Complete!
[root@localhost ~]# yum remove ksh
[root@localhost ~]# yum info ksh (저장소에 묻는 것)
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.kakao.com
* extras: mirror.kakao.com
* updates: mirror.kakao.com
Available Packages
Name : ksh
Arch : x86_64
Version : 20120801
Release : 143.el7_9
Size : 885 k
Repo : updates/7/x86_64
Summary : The Original ATT Korn Shell
URL : http://www.kornshell.com/
License : EPL
Description : KSH-93 is the most recent version of the KornShell by David Korn of
: AT&T Bell Laboratories.
: KornShell is a shell programming language, which is upward compatible
: with "sh" (the Bourne Shell).
yum provides /var/www
httpd-2.4.6-80.el7.centos.x86_64 : Apache HTTP Server
- repolist all : repository 점검
최소 버전 설치 패키지가 여러개가 되면 사용자가 모두 외우기 힘듦 -> 패키지를 모아둔 그룹 패키지가 존재
- groups list : 그룹 패키지 리스트 출력
- groups install 그룹 패키지명 : 그룹 패키지 설치
- groups remove 그룹 패키지명 : 그룹 패키지 삭제
- groups update 그룹 패키지명 : 그룹 패키지 업데이트
- groups info 그룹 패키지명 : 그룹 패키지 정보
[root@localhost ~]# yum groups info "보안 툴"
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
Group: 보안 툴
Group-Id: security-tools
Description: 통합과 신뢰 검증을 위한 보안 툴
Default Packages:
+scap-security-guide
Optional Packages:
aide
hmaccalc
openscap
openscap-utils
scap-security-guide-doc
scap-workbench
strongimcv
tncfhh
tpm-quote-tools
tpm-tools
tpm2-toolsㅇㅇㅇ
trousers
- localinstall 패키지파일명 : 패키지파일을 yum으로 설치
낮은 버전의 패키지를 이용하고 싶을 때 이용, yum은 기본적으로 최신 버전의 패키지를 다운 받는 것을 원칙으로 함
>sub-command 가 tab으로 자동완성이 안되는 경우 ❗ yum list 를 실행 후 버퍼에 올려놔주면 자동완성이 잘 된다❗❗
### 옵션
- -y : 모든 물음에 yes
- -t, --tolerant : 에러를 자동으로 잡아서 설치
- -e : 결과중 에러를 보여줌
### repository 파일 설정
/etc/yum.repos.d/ 을 이용하여
#### repolist [all] : 활성화 상태 확인
[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id repo name statu
net repo 10,072
repolist: 10,072
#### 내용 구성
순서 중요
DVD -> NET으로 보통 구성
[ID명]
name=repo명
baseurl=http://주소
file://절대경로
enabled=1/0 (1이면 활성화, 0이면 비활성화)
gpgcheck=1/0 (1이면 라이센스 키가 있을 경우, 0이면 라이센크 키가 없는 경우)
gpgkey=file://절대경로(gpgcheck=1 일 경우에만 작성)
##### 예시
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vi test.repo
[dvd]
name=dvd repo
baseurl=file:///media/cdrom
enabled=0
gpgcheck=0
[net]
name=repo
baseurl=http://mirror.centos.org/centos/7/os/x86_64
enabled=1
gpgcheck=0
"test.repo" 11L, 159C