사용자 관리 관련 파일 /etc/passwd

user:x:1000:1000:user:/home/user:/bin/bash user x 1000 1000 user /home/user /bin/bash 사용자명| 사용x|uid|gid|annotation| home dir| login shell

root 시스템에서 모든 권한을 가지고 있는 최고 권한 사용자 시스템 내의 보호되는 파일이나 퍼미션 등의 제한 ㅏ항에 대해 대부분 영향을 받지 않는ㄷ다 bin 시스템의 구동중인 바이너리 파일을 관리하기 위한 ㅖ정 daemon 백그라운드 프로세스에 대한 작업을 제어하기 위한 시스템 계정 adm 시스템 로깅이나 늑정 작업을 관리하는 시스템 계정 ip 프린트을 위한 계정 gdm gnome display 관리 서비스 계정

사용자의 패스워드를 저장하고 있는 /etc/shadow

root:$y$j9T$rV/8nMn/dl3rag1u7yCqG1$7KvT9NxpQ0csq6oWTxM/k..duTmg/2KmO9CLhnfM2F1:19856:0:99999:7::: 리눅스 생긴시간/365|최소사용기간|최대사용기간|warning 패스워드 만기일 지나면 잠금|

  1. 로그인명 패스워드필드 암호화돼서 저장 대칭키 암호화 알고리즘 des을 이용한 crypt함수
  2. 패스워드 필드 |$로 필드를 구분 패스워드 생섯시 사용된 salt값을 저장 LK 해당 사용자는 로그인 할 수 없느 lock이 걸린 사용자를 의미 window의 암호저장 파일 경로: c:windows/system32/config/sam 마지막
  3. 마지막 변경일 1970/1/1 기준으로 패스워드를 변경한 날짜까지 카운트
  4. min 패스워드 변경 후 최소 사용 기간 패스워드 변경 후 설정 min이 지날때까지 재변경 불가
  5. max 패스워드 변경 후 최대 사용 기간, 지정된 max값 이내에 변경 패스워드 사용 가능
  6. warn 패스워드 만기일 이전에 사용자에게 경고 메시지를 전달할 날짜 지정
  7. inactive 비활성화 사용자, 휴면계정설정 설정 날짜 만큼 로그인 활동이 없으면 lock 계정 휴먼계정으로 변경됨
  8. exprie 패스워드 만기일 설정 해당 날짜에 자동으로 계정 lockiung -> 로그인 불가 관리자에 의해 Lock 해제 필요
  9. reserved 예약 필드 현재는 사용x

password generate password -> H() : 해쉬 알고리즘 -> 암호문1 -> crypt(salt값 추가 + 암호문1) -> 암호문2 salt 값: 운영체제에서 random 하게 만들어내는 값 why 같은 암호를 사용하는 두 사용자의 암호값 혼란을 막기 위해

사용자 관리 관련 파일 그룹에 대한 정보를 저장하고 있는 /etc/group


사용자 및 그룹 관리 명령어 사용자 계정 생성 useradd -u uid 지정 normally set unique -g 주 그룹의 gid -G 보조 그룹의 gid 설정 -d 홈디렉토리 -m 홈디렉토리 지정시 홈디렉토리가 존재하지 않을경우 해당 디렉토리 자동 생성 -s 로그인 쉘 지정 -c 주석 -f 휴면 계정 전환 날짜 지정 -e 만료일 지정


usermod

userdel -r 해당 사용자가 사용하던 홈디렉토리 삭제


패스워드 관련 파일 및 명령어

  • 패스워드 정책
  • 대/소문자,숫자, 특수 문자를 혼용하여 8글자 이상의패스워드를사용
  • 동일 문자를 연속4회이상사용x
  • 패스워드 히스토리를 관리해 2~3개 이상 동일 패스워드를 사용금지
  • 패스워드 변경주기를설정 유효기간 <90
  • 사전에 나오는 쉬운 단어나 이름은 패스워드로 사용하지 못하도록 설정
  • 기본 설정된 패스워드는 사용하지 못하도록 서렂ㅇ
  • 초기 부여된 패스워드는 사용자 최초 접속시 변경하도록 설정

패스워드 정책 설정 파일 /etc/security/pwquality.conf

패ㅡ워드 기본값 걸정 파일 /etc/login.defs

패스워드르 변경할때 사용하는 passwd 명령어 -n MIN -x MAX -w warning -f

사용자로그인관련명령어 다른 사용자로 로그인 su 명령어

  • su [-] [사용자명]
  • 다른 사용자로 로그인할 때 사용한다
  • su -root: 입력한 사용자의 사용자 초기화파일 적용
  • su root: 현재 사용자의 환경을 유지, 사용자 초기화파일 적용x

who 명령어 -who :접속정보 -who am i: 현재 터미널에 대한 접속 정보 -whoami: 로그인명

last 명령어 로그인내역확인 /var/log/wtmp 파일을 참조해서 로그인 정보를 출력해주는 명령어 자신의 시스템에 접속한 정보를 확인할수있다 ip 확인가능


pam module pluggable authentication modules pam 시스템에 공통적인 인증방법을제공 어떤 보안인증기능을추가할때 모듈로 만들어서 쉽게 보안 설정 내용들을 교체 또는 추가 제거가 가능하다 모듈의 종류는 다양하며 가각모듈의 기능을 정확히 파악하는 것이 중요 프로그램이 사용자 인증이 필요하면 pam 라이브러리를 호출 pam라이브러리는 호출되면 호출한 응용프로그램의 설정 파일을 검사, 설정 파일의 내용에 맞는 pam 모듈을 적용 설정 파일이 없으면 기본설정 파일 사용ㅇ 설정 파일은 사용자 인증을 검사하기 위해 필요한 유형을 가짐

root로 바로 로그인할 때 root로 바로 로그인 못하고 일반 사용자로 로그인 후 su 로 root 전환 일반 사용자 id, 일반사용자 pw rootpw

  1. su 사용자 전환시 user사용자는 패스워드를 묻지 않게 설정 /etc/pam.d/su auth sufficient pam_wheel.so trust use_uid >= 1000

  2. 특정 사용자는 로그인을 평일 9시반부터 18시 반까지는 주말에는 이용 불가 /etc/pam.d/sshd 파일 라인 추가 account requisite/required pam_time.so

    /etc/security/time.conf sshd 프로그램을 이용하는 모든 터미널 장치는 일중리 중에서 아침 9시부터 저녁 5시까지는 접속 금지 sshd;*;user;!Wk0900-1700 프로그램 터미널 사용자 시간

    vi /etc/sysconfig/network-scripts/ifcfg-ens33 onboot= yes


리눅스 전통적인 부팅 과정 전원켜기 -> post power on self test -> bios 단계 -> 부팅 장치 검색 -> glub실행 부트 로더 실행 -> 실행 할 커널 선택 -> 커널 로드 및 pid 1 번 실행 (init 프로세스)요즘(systemd프로세스)-> 기타 실행 프로그램 -> 부팅 성공


basic input/output system bios 부팅 메뉴 파일 /boot/grub2/gtub.cfg 부팅할때 나오는 메시지 /var/log/boot.log


런레벨 시스템의 상태를 나타내는 런레벨 0 halt 시스템 종료 run-level을 0으로 변경하면 시스템 종료 1 single user mode: 시스템 복원 모드 기본적으로 관리자 권한을 획득 주로 파일 시스템 점검 패스워드 분실 했을때 또는 복구 할때 사용 2 multi user mode without nfs network file system 공유파일 네트워크를 사용치 않는 텍스트 유저 모드 3 full multi user mode 거의 모든 자원 가능한 텍스트 유저 모드 4 사용x 5 level3과 비슷하나 x윈도우가 실행된 그래픽 유저 모드도 제공 6 reboot(시스템 재부팅) :: run-level 6으로 변경하면 시스템 재부팅 런레벨은 숫자 또는 문자로 표현된 시스템의 상태 런레벨은 서비스와 사용자가 사용할수있는 자원ㄷ들에 대해 정의하고있음


런 레벨 관련 명령어 who -r 현재및이전런레벨확인 init 명령어 런레벨 스크립트를 실행하는 명령어 스크립트 경로 /etc/rc


운영체제별로 명령어를 정리하겠습니다. CentOS (CentOS에서는 작동합니다) who: 현재 로그인한 사용자들과 그들의 접속 시간 및 터미널을 보여줍니다. who am i: 현재 로그인한 사용자의 이름과 터미널을 보여줍니다. whoami: 현재 사용자의 이름을 보여줍니다. Ubuntu 및 macOS (일부 명령어는 작동하지 않을 수 있습니다) w: 현재 로그인한 사용자들과 그들의 활동 및 접속 시간을 보여줍니다. id: 현재 사용자의 UID와 그룹 정보를 보여줍니다. last: 최근 로그인한 사용자들과 그들의 접속 기록을 보여줍니다. finger: 사용자의 이름, 터미널, 로그인 시간 등의 정보를 보여줍니다. CentOS에서는 이 명령어들이 제대로 작동하는 것으로 보이지만, Ubuntu나 macOS에서는 제한적인 기능을 제공하거나 작동하지 않을 수 있습니다.


부팅 관련 파일 1 2 post power on self test 하드웨어 점검 메모리를 검사한 다음 cpu 검사 버스 장치를 검사 장치 드라이버를 해석,장치 트리를 구성 3 부팅 매체 검색 cd,usb,hdd 네트워크상에서 mbr검색 4 mbr master boot record 55AA

부팅 과정 전원 On -> bios 실행 -> grub 실행 -> swapper 시스템 부팅 관련 명령어 shutdown :rc스크립트를실행,init 명령어와비슷한기능을 커널 버전 확인 rpm -qa | grep kernel uname -r

커널 이미지 인터넷다운

이전 커널 이미지 삭제 yum remove [kunnel version] yum.conf 파일 수정 installonly_limit=5 5개까지 업데이트를 유지하겠다

vim line number :set number :set nonumber

systemd란? ps -ef pptd=0이면 운영체제가 실행한

  • 리눅스를 부팅하면 커널이 가장 먼저 실행시키는 프로세스
  • 기존의 리눅스는 먼저 Init 프로세스를 실행하고 init 프로세스가 필요한 다른 프로세스를 실행
  • 기존의 INIT 프로세스는 단계적으로 런레벨을 올려가며 해당 런레벨의 rc스크립트를 차례대로 샐행
  • 하지만 init은 아주 오래전 리눅스에서부터 사용하던 아주 오래된 프로세스였고 이에 계속해서 기능이 추가되면서 프로그램들이 복잡해지다보니 효율 또한 떨어지게 되었다
  • 이에 systemd는 init의 단점을 보완하며 기존 리눅스의 의존성을 해치지 않도록 개발되었다
  • systemd는 가능한 병렬로 시작 프로그램들을 실행시키는것으로 부팅 속도를 끌어올리고,프로그램실행을 위한 파일로는 쉘스크립트가 아니라 service라는 systemd만의 unit을 통해 체계적이면서 가독성이 좋도록 개발되었다
  • systemd는 단지 init 뿐만아니라 다른 프로그램들의 기능마저 대체
  • 네임서버 주소를 설정하는 resolv.conf의 자리를 systemd-resolved가 대체, dhcp서버에서 ip를 받아와서 네트워클 인터페이스에 설정하는 dhcpcd의 자리를 systemd-networkd가 대체

systemd 유닛

systemd 관련 명령어


디스크의종류 ide old sata generally scsi server system use

디스크 구조 및 관리 fdisk 디스크 관리 명령어 디스크를 사용하기 위해 필요한 파티션,파일시스템 물리디스크추가->부팅또는 장치인식->파티션설정->파일시스템설치(포맷0)->마운트사용


디스크를 추가하는 과정 Echo’- - -‘ > /sys/class/scsi_host/host1/scan


리눅스의 파일 시스템 계속해서 발전해 온 파일시스템의 종류 ext2 ~ ext4 리눅스의 파일스템구조 실제 파일이 저장될때 super block 파일시스템의 대부분의 정보를 저장하고 있는 블록 블록크기에 상관없이 항상 블록 그룹의 첫번쨰 블록에 저장된다 굉장히 중요한 정보를 저장하고 있기 때문에 백업을 해둔다 정보: 파일시스템크기,마운트 정보, inode 수, 블록 크기, 데이터 블록의 수


마우트해제 후 강제로 슈퍼블록 장애 발생 umount /dev/sdc1 dd if=/dev/zero of=/dev/sdc1 bs=512 count=32 마운트해서 파일 시스템 확인 mount /dev/sdc1 /test10 슈퍼블록 복구 fsck -b [백업블록번호][복구할 장치] fsck -b 8193 -fy /dev/sdc1 file system check 실린더 그룹 블록 일관성 indoe 일관성 lost+found 디렉토리 inode table ls -li 아이노드테이블이 데이터블락을 가르킴 용량을 효율적응로 관리하려고 data blocks mkfs make file system 만들어도 마운트안해주면 사용x


마운트 및 언마운트 특정디렉토리와 특정장치를 연결하는 마운트 /etc/fstab lsblk -o NAME,UUID : 디스크의 이름,유융아디 시스템 부팅하면서 이파일안에있는것만 마운트해줌


raid redundant array of independent disks raid 0 데이터를 디스크에 나눠서 저장 속도 빠름 raid 1 데이터를 똑같은 디스크에 저장 안정성 높음 raid 2 raid 3 raid 4 raid 5 raid 10 장애 허용 시스템 fault tolerance system

raid configure

mdadm –create 생성한 raid 장치의이름 –level raid 레벨을 지정 –raid-devices raid 추가될실제 장치의 파티션 지정 –detail 특정 장치의 상세 내역을 출력 raid 0 configure linear: 디스크를 배열 형태로 단순하게 연결시킨 구조 mdadm –create /dev/md/linear –level linear –raid-devices=2 /dev/sdb1 /dev/sdc1 stripte: 데이터의 내용을 부하분산

raid 1 configure mirror mdadm –create /dev/md/mirror –level mirror –raid-devices=2 /dev/sdd1 /dev/sdf1


lvm logical volume manager 논리 볼륨을 효율적이고 유연하게 관리하기 위한 커널의 한 부분이자 프로그램 기ㄴ방식에서는 파일시스템이 블록 장치에 직접 접근해서 읽고/쓰기를했다 lvm을 사용하면 파일시스템이 lvm이 만든 가상의 블록장치에 읽고/쓰기 수행 이를통하여 다양한 기능제공 유연한 용량 크기조정가능한 스토리지 풀 온라인 데이터 재배치 평닁에 따라 장치 이름지정 디스크 스트라이핑 미러볼륨 볼륨스냅샷

vg1 physical disk1 pv1 |pv2 pe|pe | pe|pe pe: physical extent pv: physical volume vg : volume group

logical volume

명령어를사용한네트워크설정 ifconfig 네트워크 장치이름:네트워크장치상태 inet: ip설정상황 ether:mac주소


route

route command route add default gw 192.168.10.2


dhcp 서버를 이용한 설정 dhclient [ens33] cat /etc/sysconfig/network-scripts/ifcfg-ens33 onboot=yes 재부팅때 불러오기


파일사용한 수동설정 ifcfg 파일 자세히 보기 다양한 방식으로 네트워크 설정해보기