리눅스(Linux)

justugi·2024년 5월 14일

Web

목록 보기
11/14

Linux

: 대다수의 웹 서버는 리눅스를 기반으로 동작한다. CLI 기반의 높은 성능과 안정성을 제공하며, 개발과 배포가 용이하다는 장점이 있다.

  • 리눅스는 오픈 소스로 시스템의 부족한 부분과 보안 취약성이 지속적인 업데이트와 유지보수로 인해 개선되어 보안성이 높은 특성을 지닌다.
  • Apache : 웹 서버 소프트웨어 중 하나로, 리눅스에서 주로 사용된다. 서버 측 스크립트를 지원하며 웹 애플리케이션 서버로서의 역할도 수행 할 수 있다.
  • Nginx : 웹 서버 소프트웨어 중 하나로, 리눅스에서 주로 사용된다. 높은 동시 연결 처리 능력을 가진다.
  • Tomcat : 웹 애플리케이션 서버 중 하나로, Java 웹 애플리케이션을 실행한다.

명령어

: 배포판마다의 차이와 소프트웨어간의 차이가 존재한다.

  • 명령어 구조

    • ex) ping 8.8.8.8 -c 3
    • 명령어 : ping
    • 전달 인자(Argument) : 8.8.8.8 명령어에 전달해주는 데이터.
    • 옵션 : -c 3 명령어 뒤 아무데나 위치해도 되며, 여러 옵션 조합해서 순서상관없이 붙여써도 된다.(’ls -la’ = ‘ls -al’ = ‘ls -a -l’ = ‘ls -l -a’)
    • 명령어를 내릴 때 현재 위치한 디텍토리에서 실행된다.
  • 경로

    • 절대 경로 : 최상위 디렉토리부터 모두 표현 (/etc/passwd)
    • 상대 경로 : 현재 위치한 곳(pwd)에서부터 표현
      . or ./ : 현재 경로
      .. or ../ : 현재 경로에서 한단계 위 경로
명령어설명
(root㉿kali)-[/]계정명 / 가상머신명 / 현재경로 (/ : 최상위 디렉토리, ~ : 홈 디텍토리)
sudo su rootroot 권한 빌림. 로그아웃 없이 현재 사용자의 계정전환 / 권한상승
ls디렉토리 내용 및 권한 나열 -l(엘)
pwd작업 디렉토리 위치
cd디렉토리 이동
mkdir디렉토리 생성
cat파일의 내용 표준 출력
more한 페이지 단위 출력
file파일의 타입 출력
cp 파일이름(위치) 위치위치에 새로운 파일 이름을 지정해주면 다른이름으로 저장. 디렉토리를 복사하려면 옵션 -r
rm 파일이름(위치)디렉토리를 삭제하려면 옵션 -r, 강제 삭제 -f
mv 파일이름(위치) 위치현재 위치로 이동시키면서 파일이름 변경 가능
find 위치 -조건 “내용”조건에 name, 내용에 파일명 쓰면 위치에서 해당 파일 검색
grep 찾을패턴 수색할위치수색할 위치에서 찾을 패턴이 있는 줄을 모두 출력

vi텍스트 파일 생성
vi 파일이름파일 열기
INSERT 모드i 눌러서 진입, esc 눌러서 탈출
:w저장
:q종료
:wq저장 후 닫기
/찾을 단어 enter찾을 단어 맨 앞으로 커서 이동. n 누르면 다음 해당 단어로 커서 이동
:33번째 줄로 커서 이동
dd커서 위치한 줄 지우기

권한

: 리눅스에서 파일과 디렉토리의 권한을 읽기(r), 쓰기(w), 실행(x) 권한으로 나뉘며, 권한의 세가지 그룹 소유자(u), 그룹 멤버(g), 기타 사용자(o)에 대해 설정 가능하다.

  • 권한 표기 문자열 첫 문자 - : 일반 파일, d : 디렉토리
  • 8진수 표기법 : r, w, x → 4, 2, 1 이를 합산하여 권한을 표기
  1. chmod 사용자종류+-권한종류 파일명
    ex) chmod o+w permission_test : 기타 사용자에 쓰기 권한 추가

  2. cnmod 권한(문자열) 파일명
    ex) chmod u=rwx, g=rw, o=r permission_test : 그룹 소유자에 모든 권한, 그룹 사용자에 읽기&쓰기 권한, 기타 사용자에 읽기 권한 설정

  3. cnmod 권한(8진수) 파일명
    ex) chmod 764 permission_test : u 사용자에 모든 권한, g 사용자에 읽기&쓰기 권한, o 사용자에 읽기 권한 설정

  • setuid : 해당 파일을 실행할 때, 해당 파일의 소유주의 권한으로 실행한다.
    • rws : 실행 권한 있으면서 setuid가 걸려 있음
    • rwS : 실행 권한 없으면서 setuid가 걸려 있음
  • setgid : 해당 파일을 실행할 때, 해당 파일의 그룹의 권한으로 실행한다.
    • rwsr-sr-x : 실행 권한 있으면서 setgid가 걸려 있음
    • rwsr-Sr-x : 실행 권한 없으면서 setgid가 걸려 있음
  • sticky bit : (x자리를 t로 대체해서 표기한다.) 디렉토리에 설정되는 권한으로, 해당 디렉토리에 누구나 파일 생성 가능, 해당 파일의 생성자만 삭제 가능 (ex) /tmp. 공유 디렉토리 설정할때 사용한다.)
    • 권한 설정 할 때 x를 추가하거나 t를 빼거나 숫자 763 등으로 새로 지정해주면 t를 없앨 수 있다.
    • drwxr--r-t : 실행 권한 있으면서 sticky bit가 걸려 있음
    • drwxr--r-T : 실행 권한 있으면서 sticky bit가 걸려 있음

Data Stream

: 리눅스에서는 모든 데이터, 장치, 명령을 파일로 읽고 쓰는 방식으로 관리한다. 이때 입력되고 출력되는 데이터를 연속적인 데이터 스트림의 형태로 이동한다.

  • 표준 입력(stdin) : 0(식별자. id) 프로세스로 입력되는 데이터 스트림으로, 별도의 리다이렉션 없이 프로세스가 실행된 경우 표준 입력 스트림은 키보드로부터 받아온다.
  • 표준 출력(stdout) : 1 프로세스의 출력 데이터를 기록하는 스트림으로, 리다이렉션 없이 프로세스가 실행된 경우 표준 출력은 텍스트 터미널이 된다.
  • 표준 에러(stderr) : 2. 프로세스의 오류 데이터를 기록하는 출력 스트림이다.

Redirection

  • 터미널에 명령을 입력 후 실행한 결과를 모니터에 출력하는 것이 아니라 파일형태로 저장한다.
  • 명령 > 파일명 : 파일명에 화면에 출력되었어야 했던 명령의 결과를 저장한다.(계속 덮어씀) >직전에 디폴드값으로 1이 생략된 형태.
  • 명령 >> 파일명 : 파일의 다음 줄에 결과를 추가한다. >직전에 1이 생략된 형태
  • 명령 2> 파일명 : 명령의 결과 중 에러메세지는 모두 파일명으로 가고 결과는 화면에 출력한다. (/dev/null 로 경로 지정하면 파일이 사라진다.)

PIPE

  • PIPE(|) : 프로세스의 출력을 받아서 다른 프로세스의 표준 입력으로 넣어 준다.
  • | 왼쪽 명령의 결과를 | 오른쪽으로 옮겨서 명령 처리한다.
  • 왼쪽 명령어 결과에서 특정 단어를 찾을 때 주로 쓴다.
  • ex) ps -ef | grep java : 현재 실행 중인 프로세스 정보 출력(ps), 모든 프로세스(-e) 전체 형식(f), java라는 문자열이 포함된 라인 출력(grep java) → 현재 실행중인 모든 프로세스 중에서 java라는 문자열이 포함된 프로세스의 정보를 출력한다.

출처
https://dev-bucks.tistory.com/entry/Linux-%EC%9E%85%EB%AC%B8-%EC%9B%B9%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EB%A6%AC%EB%88%85%EC%8A%A4%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0

profile
IT 보안, 관심 있는 것을 공부합니다.

0개의 댓글