공부?/국비 지원 일기장

37일차 - 리눅스 명령어 , 암호화

무무요 2024. 8. 27. 17:50

 

=======

 

Linux

 

inode = 파일이나 디렉터리의 고유한 숫자

* = 모든것을 의미 

1. 루트 디렉터리에서 # mkdir test

2. # cd test 로 이동

3. # touch /test/file1    or   
    # cd /test      
    # touch file1
4. # echo hello > /test/file2 
5. # cat >> file2 or # cat >> /test/file2 ( >> 두개로 원래 있던 내용을 건드리지 않고 작성)
      byebye (엔터)
      CTL+D (저장)
6. # cat /test/file2 or
   # cat file2
7. # mkdir /test/dir1 or
   # mkdir dir1
8. # cp /test/file2 /test/dir1/ or 
   # cp file2 /test/dir1
9. # mv /test/file1 /test/file1-mod or 
   # mv file1 file1-mod
10. # ln /test/dir1/file2 /root/file2-hard
11. # cd /test
    /test/dir1/file2   ==> 원본파일
    /var/file2-soft    ==> 심볼릭링크 파일
    # ln -s ../test/dir1/file2 /var/file2-soft  
==> 어떤위치에 있는지 상관없이 상대경로를 이용해서 생성하려면 심볼릭 링크 파일의 입장에서 상대경로로 생성
==> 심볼릭 파일의 링크가 속해있는 디렉터리를 기준으로 상대경로를 줘야한다. 
12. # cd ..
     # rm -rf test

 

find 실습

1. # find /usr -name "rdisc"
2. # find /usr -name "rd*"
3. # find /usr -name "[r,a][c,d]*"
4. # find /usr -name "[a,b]???"
5. # find /root -type f    ==> -type 는 파일타입을 찾는다
6. # find / -type l   ==> 심볼릭 링크 앞에 l (소문자 엘) 이 붙기 때문에 type l 로 해준다.

 

=======

Linux 계정 및 그룹 관리

계정
- 사용자를 식별하고 인증을 받거나 로컬/네트워크 자원에 접근하는 것을 가능하게 해주는 객체

그룹
- 비슷한 객체의 논리적인 집합
- 권한을 편리하게 할당하기 위하여 사용
- 하나의 그룹에 소속된 계정은 그룹의 권한을 그대로 상속 받음
- 소유자가 아니면 다 other 이다 
- 퍼미션을 관리할 수 있다
- 리눅스는 사용자 계정을 하나 생성할때마다 그룹도 하나 씩 생성된다.

사용 목적
- 사용자 식별 -> 인증/접근
- 권한 할당 -> 보안성 향상
- 사용자 별 환경 제공
  - 인식할 수 있는 하드웨어 성능, 관리기능, 제공 서비스 등이 다름

계정 관리 파일
/etc/passwd = 사용자 계정의 기본 정보
/etc/shadow = 암호화된 패스워드 및 정책 설정 정보
/etc/default/useradd = 사용자 계정 생성시 적용되는 기본 설정

계정 관리 명령어
useradd = 사용자 계정 생성
adduser = 사용자 계정 생성
passwd = 사용자 계정의 설정 변경
chage = 사용자 패스워드 관리
userdel = 사용자 계정 삭제


etc/passwd 파일
- 사용자 계정의 기본 정보가 저장된 파일
#cat /etc/passwd



각 필드( :(콜론) 을 기준으로 필드가 나뉘어짐)
1. root = 사용자 계정이름
2. x = 패스워드가 암호화 되어 etc/shadow 파일에 저장 되어있음
3. 0 = uid (관리자 0 , 사용자 500 이상)
4. 0 = gid(관리자 0, 사용자 500 이상)
5. root = 계정정보(comment) 따로 설정하지 않으면 비워져 있다.6. /root = 사용자의 홈 디렉터리 , 관리자 : /root, 사용자 /home/계정이름
7. /bin/bash = 사용자의 shell 정의 (default : bash)

 

/etc/shadow 파일
- 사용자 계정의 암호화된 패스워드 및 정책 설정 정보가 저장된 파일
# cat /etc/shadow

각 필드
1. root = 사용자 계정이름

2. :$6...3H...2BgO = 암호화된 패스워드 정보(형식 : $hash_id$salt$hash_value) $기준으로 3파트로 나뉜다 

 

첫번째 $ 표시 옆 숫자 = sha 512를 적용해 hash값을 만든다. 정해진 값이다.

 

두번째 $ = salt 값, 랜덤한 임의의 값을 알아서 적용한다


세번째 $ 값  = salt값을 매겨서 원문 중간중간 salt 값을 넣어서 최종 결과값이 달라진 값 , 원문에 salt값을 섞어서 나온 hash값

 

3. 16692 = 패스워드의 마지막 변경일(1970년 1월 1일부터 경과된 일 수로 표시)
4. 0 = 마지막 변경일로부터 패스워드를 최소 사용해야 하는 일 수
5. 99999 = 마지막 변경일로부터 패스워드를 최대 사용할 수 있는 일 수(99999 : 무한대)
6. 7 = 패스워드 만료를 경고하는 일(만료일 이전 n일부터 경고)
7.  = 패스워드 만료 후 사용 유예기간
8.  = 계정 사용 만료일(월/일/연도)
9.  = 예약된 필드(사용하지 않음)

 

=======

 

윈도우 서버는 그룹 단위로 퍼미션, 윈도우는 그룹 단위로 운용한다.