리눅스 명령어/디렉터리/커널 (교육 25일차)

SW·2022년 12월 27일
0


/bin/bash <- 내부명령어
/bin/ls <- 외부명령어

내부명령어 vs 외부명령어
내부명령어: 셸 안에 포함되어 있는 명령어
#man bash
#help alias
#help cd

외부 명령어: 쉘 밖에 디렉터리에 파일로 존재하는 명령어
– /bin, /usr/bin, /sbin, /usr/sbin, /usr/local/bin ...
/bin/ls
/usr/bin/ls

#man ls



시스템을 종료하는 명령어
shutdown -h now
init 0
halt
poweroff

시스템을 재부팅하는 명령어
shutdown -r now
init 6
reboot
Ctrl + Alt + Del (VMware에서 키보드를 누른다.)

시스템 종료의 예
shutdown -h now: 지금 당장 종료
shutdown -h 23:30: 23시 30분에 종료 (절대 시간으로 설정)
shutdown -h +5: 5분 후에 종료 (현재 시간을 기준으로 상대 시간으로 설정)

시스템 재부팅의 예
shutdown -r now: 지금 당장 재부팅
shutdown -r 23:30: 23시 30분에 재부팅 (절대 시간으로 설정)
shutdown -r +5: 5분 후에 재부팅 (현재 시간을 기준으로 상대 시간으로 설정)


실습> 시스템 종료하기
#shutdown -h now
#init 0
#halt
#poweroff





실습> 시스템 재부팅하기

#shutdown -r now
#init 6
#reboot
VMware 상에서 Ctrl + Alt + Del

실습> 서버에 HDD 추가하기

현재 웹 서비스(쇼핑몰)가 서버에 실행되는데 쇼핑몰이 너무 잘되서 HDD를 추가할 계획을 가지고 있다.
시스템 담당자인 여러분들이 서버에 HDD를 추가한다.

1. 시스템 종료
#shutdown -h now

2. HDD 장착
서버에 HDD(Hard Disk Drive)를 추가한다.
20G HDD를 추가하고 서버를 재부팅한다.

3. 로그인
서버에 관리자로 로그인 한다.
login as: root
root@200.200.200.3's password:
Last login: Thu Jun 23 13:55:16 2022 from 200.200.200.1

4. 파티션 분할
새로 장착된 HDD를 파티션을 분할한다.
fdisk: HDD에 파티션을 분할하는 명령어
#fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bde9e

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

장착한 두 번째 HDD를 파티션을 분할한다.
#fdisk /dev/sdb

m -> n -> p -> 엔터 -> 엔터 -> 엔터 -> p -> w

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): <-- 엔터
First sector (2048-41943039, default 2048): <-- 엔터
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): <-- 엔터
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf29bcfd5

Device Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

#fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf29bcfd5

Device Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux

  1. 포맷
    파일시스템을 생성한다.
    mkfs(MaKe FileSystem의 약자)
    mkfs.xfs: xfs 파일을 시스템을 만드는 명령어
    ntfs: 윈도우에서 사용하는 파일 시스템 (New Technology FileSysem의 약자)
    #mkfs.xfs /dev/sdb1

  2. 마운트
    /dev/sdb1을 특정 디렉터리에 연결(마운트)한다.

#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 227760 0 227760 0% /dev
tmpfs 239796 0 239796 0% /dev/shm
tmpfs 239796 5684 234112 3% /run
tmpfs 239796 0 239796 0% /sys/fs/cgroup
/dev/mapper/centos-root 17811456 1878788 15932668 11% /
/dev/sda1 1038336 140372 897964 14% /boot
tmpfs 47960 0 47960 0% /run/user/0

#mkdir data

#mount /dev/sdb1 data
#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 227760 0 227760 0% /dev
tmpfs 239796 0 239796 0% /dev/shm
tmpfs 239796 5684 234112 3% /run
tmpfs 239796 0 239796 0% /sys/fs/cgroup
/dev/mapper/centos-root 17811456 1878788 15932668 11% /
/dev/sda1 1038336 140372 897964 14% /boot
tmpfs 47960 0 47960 0% /run/user/0
/dev/sdb1 20960256 32992 20927264 1% /root/data <-- 새로운 HDD의 마운트된 상태

마운트 자동화 (영구적 설정)
/etc/fstab 파일에 마운트할 HDD 정보를 저장한다.
vi -> i(입력모드) -> 입력 -> ESC(명령모드) -> :wq
#vi /etc/fstab
:
:(생략)
#
/dev/sdb1 /root/data xfs defaults 0 0

서버를 재부팅해서 마운트가 잘 되는지 확인한다.
#reboot

서버가 부팅되고 로그인해서 마운트된 정보를 확인한다.
login as: root
root@200.200.200.3's password:
Last login: Fri Jun 24 09:21:41 2022 from 200.200.200.1
#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 227760 0 227760 0% /dev
tmpfs 239796 0 239796 0% /dev/shm
tmpfs 239796 5696 234100 3% /run
tmpfs 239796 0 239796 0% /sys/fs/cgroup
/dev/mapper/centos-root 17811456 1881656 15929800 11% /
/dev/sdb1 20960256 32992 20927264 1% /root/data <-- 자동 마운트가 된 상황!!
/dev/sda1 1038336 140372 897964 14% /boot
tmpfs 47960 0 47960 0% /run/user/0

실습> 런레벨 변경하기

#runlevel
N 3
#init 1
#runlevel
3 1
#reboot

실습> 디렉터리

/ : 최상위 디렉터리
/bin: (BINary)의 약자로 실행 파일이 모여있다. 기본 명령어가 저장되어 있다.
CentOS 7 부터 /usr/bin 디렉터리의 심볼릭 링크(바로가기)로 되어 있다.
/boot: 부팅에 관련된 디렉터리
커널이 여기에 있다.
/dev: (DEVice)의 약자로 장치 파일이 모여있다.
장치 파일(터미널, HDD, CDROM, DVD, 프린트 ...)

/etc: 설정파일이 모여있다.
passwd, shadow, group ...

/home: 사용자 디렉터리가 모여있다.

/lib: 32bit용 라이브러리(시스템 호출 명령어, 함수)가 모여있다.
/lib64: 64bit용 라이브러리(시스템 호출 명령어, 함수)가 모여있다.

/proc: 가상 파일 시스템으로 메모리의 내용을 사용자에게 보여주는 디렉터리로 이 안에 있는 내용들은 모두 메모리에 저장되어 있다.
커널 파라미터: 쓰기 가능
나머지: 모두 읽기 전용

실습> /bin 디렉터리

실행파일들이 모여있는 디렉터리

#ls /bin
#ls /bin | wc -l
868

#ls /bin |(파이프) wc(워드 카운트) -l(라인)
-> /bin 디렉터리의 실행 파일 갯수를 출력한다.

#ll /bin/bash
-rwxr-xr-x. 1 root root 964536 4월 1 2020 /bin/bash

#ll /bin/ls
-rwxr-xr-x. 1 root root 117608 8월 20 2019 /bin/ls

실습> /boot 디렉터리
부팅에 관련된 파일들이 모여있는 디렉터리
– 이 디렉터리에는 커널(자동자의 엔진)이 들어있다.

#pwd
/root

#cd /boot
#ls
vmlinuz-3.10.0-1160.el7.x86_64

rpm -qf 명령어를 이용해서 파일의 패키지명을 확인한다.
rpm -qf 파일명: 파일명이 어떤 패키지에서 나왔는지 출력한다.
#rpm -qf vmlinuz-3.10.0-1160.el7.x86_64
kernel-3.10.0-1160.el7.x86_64 <-- 패키지명이 출력

rpm -qi 패키지명: 패키지명에 해당하는 정보를 출력한다.
#rpm -qi kernel
Name : kernel
Version : 3.10.0
Release : 1160.el7
Architecture: x86_64
Install Date: 2022년 06월 13일 (월) 오후 04시 45분 08초
Group : System Environment/Kernel
Size : 67383037
License : GPLv2
Signature : RSA/SHA256, 2020년 10월 20일 (화) 오전 02시 07분 14초, Key ID 24c6a8a7f4a80eb5
Source RPM : kernel-3.10.0-1160.el7.src.rpm
Build Date : 2020년 10월 20일 (화) 오전 01시 34분 26초
Build Host : kbuilder.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem http://bugs.centos.org
Vendor : CentOS
URL : http://www.kernel.org/
Summary : The Linux kernel
Description :
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device
input and output, etc.

https://ko.wikipedia.org/wiki/마스터_부트_레코드

#cat grub2/grub.cfg
:
:

실습> 커널 업데이트

yum -y install 패키지명: 패키지명을 저장소에서 다운로드 받아서 시스템에 설치한다.

  • 패키지가 설치가 되어있지 않아야 한다.
    yum -y update 패키지명: 패키지명을 저장소에서 다운로드 받아서 시스템에 업데이트한다.
  • 설치된 패키지가 저장소에 있는 패키지 보다 낮으면 설치가 업데이트 한다.
    #yum -y update kernel
    :
    : (생략)
    Running transaction
    Installing : kernel-3.10.0-1160.81.1.el7.x86_64 1/1
    Verifying : kernel-3.10.0-1160.81.1.el7.x86_64 1/1

Installed:
kernel.x86_64 0:3.10.0-1160.81.1.el7

#cd /boot
#ls
vmlinuz-3.10.0-1160.81.1.el7.x86_64 <-- new kernel
vmlinuz-3.10.0-1160.el7.x86_64 <-- old kernel

커널인 vmlinuz-3.10.0-1160.el7.x86_64 /root 디렉터리에 이동시킨다.
mv: 파일을 이동시키는 명령어

#mv vmlinuz-3.10.0-1160.el7.x86_64 /root
#ls /root
vmlinuz-3.10.0-1160.81.1.el7.x86_64

#shutdown -r now

부팅 후 grub 프로그램이 커널을 2개 표시하는데 두 번째 Old kernel로 부팅한다.
– 커널을 삭제하면 부팅을 하지 못한다.
CentOS Linux (3.10.0-1160.81.1.el7.x86_64) 7 (Core) <-- 업데이트된 New kernel
CentOS Linux (3.10.0-1160.x86_64) 7 (Core) <-- 이전 Old kernel (여기서 엔터)
CentOS Linux (0-rescue- ....) (Core)

이전 커널은 이미 /root 디렉터리로 이동했기 때문에 /boot 에 없다.
그러므로 에러가 발생하고 부팅이 안된다.
error: file '/vmlinuz-3.10.0-1160.el7.x86_64' not found.
error: you need to load ther kernel first.

Press any key to continue...

다시 New kernel로 부팅한다.
로그인 후에 old 커널을 다시 /boot 디렉터리로 이동시킨다.
#mv vmlinuz-3.10.0-1160.el7.x86_64 /boot

실습> /dev 디렉터리

장치 파일들이 모여있는 디렉터리
– 장치 파일은 특수한 파일이다.

tty: 터미널 장치를 보여주는 명령어

/dev/tty1: 첫 번째 가상 콘솔
/dev/tty2: 두 번째 가상 콘솔
/dev/tty3: 세 번째 가상 콘솔
/dev/tty4: 네 번째 가상 콘솔
/dev/tty5: 다섯 번째 가상 콘솔
/dev/tty6: 여섯 번째 가상 콘솔

콘솔로 로그인
첫 번째 콘솔로 로그인을 한다.
#tty
/dev/tty1

Alt + F2: 두 번째 콘솔로 이동하는 단축키
Alt + F2를 눌러서 두 번째 콘솔로 로그인을 한다.
#tty
/dev/tty2

Alt + F3: 세 번째 콘솔로 이동하는 단축키
Alt + F3를 눌러서 세 번째 콘솔로 로그인을 한다.
#tty
/dev/tty3

Alt + F3에서 작업한다.
Alt + F4를 눌러서 네 번째 콘솔로 로그인을 하기 전에 네 번째 콘솔에 해당하는
장치파일 파일을 /root 디렉터리로 이동한다.
#cd
#mv /dev/tty4 .
로그인을 시도하면 반응이 없다. 이유는 네 번째 콘솔에 해당하는 장치 파일이 없기 때문이다.
확인이 되었다면 네 번째 콘솔에 해당하는 장치 파일을 다시 /dev 디렉터리로 이동시킨다.
#mv tty4 /dev
로그인을 시도하면 정상적으로 로그인이 된다.
이유는 네 번째 콘솔에 해당하는 장치 파일이 있기 때문이다.
#tty
/dev/tty4

터미널로 로그인
외부에서 ssh로 터미널로 접속하면 /dev/pts/숫자
#tty
/dev/pts/0

/dev 디렉터리에 어떤 파일들이 있는지 확인한다.
#ls /dev

/dev/null, /dev/zero 파일을 확인한다.
#ll /dev/null /dev/zero

실습> HDD 장치 파일

/dev/sda: 첫 번째 HDD
/dev/sdb: 두 번째 HDD

두 개의 HDD를 확인한다.
/dev/sda에 LVM이 있다면 파티션을 분할하지 않고 자동으로 CentOS 7을 설치한 것이다.
#fdisk -l /dev/sda

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bde9e

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM

#fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf29bcfd5

Device Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux

#ls /dev
sda sda1 sda2 sdb sdb1 ...(생략)

실습> /etc 디렉터리

설정파일이 모여있는 디렉터리

/etc 디렉터리의 파일의 리스트를 출력한다.
#ls /etc

/etc/fstab 파일의 내용을 확인한다.
#cat /etc/fstab

/etc/passwd 파일의 내용을 확인한다.
#cat /etc/passwd

/etc/shadow 파일의 내용을 확인한다.
#cat /etc/shadow

/etc/group 파일의 내용을 확인한다.
#cat /etc/group

/etc/gshadow 파일의 내용을 확인한다.
#cat /etc/gshadow

실습> /home 디렉터리

사용자의 홈디렉터리가 모여있는 디렉터리
– 사용자의 홈디렉터리를 위치를 얼마든지 변경할 수 있다.
– 사용자의 홈디렉터리를 변경하지 생성하면 기본값은 /home 밑에 만들어진다.

일반 유저를 생성할 때는 아래 두 개의 명령어를 실행해야 한다.
– useradd 명령어로 사용자를 생성한다.
– passwd 명령어로 사용자의 비밀번호를 설정한다.

useradd: 사용자 생성 명령어
passwd: 비밀번호 변경 명령어

1. 사용자 생성
사용자를 생성한다.
#useradd user1
#passwd user1

#useradd user2
#passwd user2

#useradd user3
#passwd user3

2. /home 디렉터리 확인
각 사용자명의 디렉터리가 /home 밑에 생성된 것을 확인할 수 있다.
#ls /home
user1 user2 user3

3. 사용자 로그인
각 사용자로 로그인해서 디렉터리 위치를 확인한다.
사용자 인증(ID/PW 검증)을 거쳐서 통과되면 시스템에 로그인이 되고 자신의 홈디렉터리에 위치하게 된다.
각 사용자 홈디렉터리: /home/사용자명 (기본값이고 변경이 가능하다.)
id: 사용자 & 그룹에 대한 정보를 출력하는 명령어
pwd: Print Working Directory 의 약자로 현재 작업 디렉터리를 출력하는 명령어

ssh 접속 형식: ssh 사용자@서버IP or ssh 사용자@서버도메인명

C:\Users\user2>ssh user1@200.200.200.3
login as: user1
user1@200.200.200.3's password:
[user1@localhost ~]$ id
uid=1000(user1) gid=1000(user1) groups=1000(user1) ...(생략)
[user1@www ~]$ pwd
/home/user1
[user1@www ~]$ exit

C:\Users\user2>ssh user2@200.200.200.3
login as: user2
user2@200.200.200.3's password:
[user2@localhost ~]$ id
uid=1001(user2) gid=1001(user2) groups=1001(user2) ...(생략)
[user2@www ~]$ pwd
/home/user2
[user2@www ~]$ exit

login as: user3
user3@200.200.200.3's password:
uid=1002(user3) gid=1002(user3) groups=1002(user3) ...(생략)
[user3@www ~]$ pwd
/home/user3
[user3@www ~]$ exit

실습> /lib, /lib64 디렉터리

라이브러리가 모여있는 디렉터리
/lib: 32bit 라이브러리가 저장된 디렉터리
/lib64: 64bit 라이브러리가 저장된 디렉터리

라이브러리 종류:
– 정적 라이브러리: 실행파일을 컴파일할 때 실행파일 안에 라이브러리가 저장된다.
– 동적 라이브러리: 실행파일을 컴파일할 때 실행파일 밖에 라이브러리와 같이 컴파일한다. 라이브러리는 라이브러리 디렉터리에 저장된다.
– 공유 라이브러리: 실행파일을 컴파일할 때 실행파일 밖에 라이브러리와 같이 컴파일한다. 라이브러리는 라이브러리 디렉터리에 저장된다.

이 서버가 32bit 인지 64bit 알 수 있는 방법은?
uname -a

구글에서 리누즈토발즈 486 으로 검색한다.
이미 386 코드는 리눅스 커널에서 제외되었고 486은 리누즈토발즈의 제한으로 현재 뺄지 논의중이다.

#ls /lib
#ls /lib64

/sbin/fdisk 명령어가 참조하는 라이브리를 확인한다.
ldd: 명령어의 의존 관계를 알려주는 명령어
#ldd /sbin/fdisk
linux-vdso.so.1 => (0x00007ffcaabd4000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fd3d4487000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fd3d4282000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd3d3eb4000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd3d46c7000)

/bin/mv(/usr/bin/mv) 명령어가 참조하는 라이브리를 확인한다.
#ldd /bin/mv
linux-vdso.so.1 => (0x00007ffedb9e2000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f2733b39000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f2733930000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f273372b000)
libc.so.6 => /lib64/libc.so.6 (0x00007f273335d000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f27330fb000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2732ef7000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2733d60000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2732cdb000)

>>> 여기까지 <<<

fdisk에서 참조하는 라이브러리를 /root 디렉터리에 이동 시킨다.
#mv /lib64/libblkid.so.1 /root

/lib64/libblkid.so.1 파일이 없기 때문에 not found 가 나온다.
#ldd /sbin/fdisk
linux-vdso.so.1 => (0x00007ffd21df4000)
libblkid.so.1 => not found
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fbb1e3ee000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbb1e020000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbb1e5f3000)

/lib64/libblkid.so.1 파일이 없기 때문에 실행되지 않는다.
#fdisk -l
fdisk: error while loading shared libraries: libblkid.so.1: cannot open shared object file: No such file or directory

테스트가 다 끝나면 다시 원래대로 이동한다.
#mv /root/libblkid.so.1 /lib64/

다시 이동했더니 not found에서 파일의 경로가 표시된다.
#ldd /sbin/fdisk
linux-vdso.so.1 => (0x00007fff12f96000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f928f9e1000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f928f7dc000)
libc.so.6 => /lib64/libc.so.6 (0x00007f928f40e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f928fc21000)

/lib64/libblkid.so.1 라이브러리가 있기 때문에 fdisk 명령어 실행이 가능한 것이다.
#fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bde9e

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf29bcfd5

Device Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux

Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

실습> 디렉터리 확인하기

/sbin: 관리자 명령어가 저장된 디렉터리
/bin: 일반 사용자도 실행하는 명령어가 저장된 디렉터리

useradd: 일반유저는 사용자를 생성할 수 없다.
– 관리자만 사용할 수 있는 명령어: /sbin 에 저장되어 있다.
passwd: 비밀번호를 변경하는 명령어이고 관리자, 일반유저도 사용할 수 있다.
– 모든 사용자가 사용할 수 있는 명령어: /bin 에 저장되어 있다.

[root@localhost ~]# ll /sbin/useradd
–rwxr-xr-x. 1 root root 137616 8월 9 2019 /sbin/useradd
[root@localhost ~]# ll /bin/passwd
–rwsr-xr-x. 1 root root 27856 4월 1 2020 /bin/passwd
[root@localhost ~]# ll /bin/useradd
ls: cannot access /bin/useradd: 그런 파일이나 디렉터리가 없습니다
[root@localhost ~]# ll /sbin/passwd
ls: cannot access /sbin/passwd: 그런 파일이나 디렉터리가 없습니다
[root@localhost ~]# ssh user1@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:P8EUafHckian7WtRm4w7sQ2DfeA47MxQwzqSDHJqeh0.
ECDSA key fingerprint is MD5:27:97:75:7f:d7:cd:72:bb:7f:39:36:ee:f8:2b:f5:b6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
user1@localhost's password:
Last login: Mon Dec 26 21:09:34 2022 from 200.200.200.1
[user1@localhost ~]$ useradd user5
useradd: Permission denied.
useradd: /etc/passwd을(를) 잠글 수 없습니다. 나중에 다시 시도하십시오.
[user1@localhost ~]$ passwd
user1 사용자의 비밀 번호 변경 중
user1에 대한 암호 변경 중
(현재) UNIX 암호:
새 암호:
새 암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.










                                                                     
profile
정보보안 전문가

0개의 댓글