Linux::ssh 설정, linux 명령어, permission

안준성·2022년 7월 19일

Linux

목록 보기
1/5

리눅스/유닉스 개발환경은 백엔드 개발자들에게 익숙한 개발 환경이다.
요즘은 Windows나 macOS에서도 비슷한 환경을 제공한다.
터미널로 서버 환경에 원격으로 접속해서 원하는 작업을 할 수 있도록 친숙해져야 한다.
리눅스를 직접 설치해서 셸 환경에 익숙해지고 스크립트로 원하는 동작을 자동화 해보자.


유닉스와 리눅스

유닉스

  • 벨 연구소에서 개발한 운영체제로 현재 많은 OS들(mac, iOS, linux, android, ...)의 바탕이 되는 OS이다.
  • 유닉스를 직접적 기반으로 둔 운영체제를 유전적 유닉스라 한다.
  • 기술적으로 유닉스와 유사한 모양새를 지닌 것을 기능적 유닉스, 또는 Unix-like OS 라고 한다.
    Unix-like를 판단하는 기준으로 IEEE가 제정한 POSIX가 있다.
  • 안정성과 메모리 관리 능력이 뛰어나 서버 운영에 많이 사용된다.
  • C언어 기반으로 만들어졌고 CLI가 잘 구성되어 있다.

리눅스

  • 1991년 리누스 토르발즈가 처음 출시한 리눅스 커널에 기반을 둔, 오픈소스 유닉스 계열 운영체제이다.
  • 휴대폰 콘솔뿐만 아니라 웹 서버, 클라우드, 안드로이드 등 다중 플랫폼을 지원한다.
  • 소규모 서버 및 IoT 장비를 제어하는데 적합하다.

리눅스 원격 접속

ssh

  • ssh(secure shell)란 원격 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜이다.
  • ssh를 사용하려면 server - client 구조가 필요하다.
    sever에는 ssh-server, 클라이언트에는 ssh-client를 설치하여
    클라이언트에서 서버 컴퓨터를 명령어로 조작한다.
  • 요새는 기본적으로 ssh가 설치되어 있다.

ssh 설정

  • 원격 서버에 접속하려면 먼저 서버에 ssh-server를 설치해야 한다.
	sudo apt update
	sudo apt install openssh-server # ssh의 한 종류
	sudo ufw allow ssh # 방화벽 해제 (un fire wall의 약자인듯 하다)
	sudo service ssh start # ssh 서비스 시작
	ip a # ip를 볼수 있다.
  • 클라이언트단에서도 ssh-client를 설치해야 하지만 요새는 다 이미 깔려있다고 한다.
    이제 ssh [사용자이름]@[ip 주소] 명령어를 통해 서버에 접속할 수 있다.

  • 스크린샷 2022-07-19 오후 3 56 59 image image


리눅스 계정 관련 명령어

리눅스 계정 추가
sudo adduser [사용자이름] #하면 비번 설정까지 같이 뜬다.

리눅스 계정 변경
exit # 로그아웃
su [사용자명] # 해당 사용자로 로그인

리눅스 계정 권한 설정
vi /etc/sudoers # sudoers 파일 실행해서 변경, 변경전에 접근권한 변경해야함

리눅스 명령어

mkdir [디렉토리 명] # 현재 디렉토리에 디렉토리 생성

ls -l # 현재 디렉토리 내의 파일 권한 확인

lscpu # cpu 정보 확인

cat # 파일 내용 표시

pwd # 현재 디렉토리 표시

find 디렉토리 -name [파일이름] # 지정 디렉토리와 그 하위 디렉토리에서 해당 파일을 검색

whoami # 현재 사용자 반환

ctrl + z # 현재 실행중인 프로세스 종료

vi 명령어


vi [파일 명] # vi 모드로 파일 실행

# 커서이동  h(좌) j(하) k(상) l(우)

i # 입력모드로 변경

esc # 커맨드 모드로 변경

:w # 저장

:q # 나가기

리눅스 서울 시간으로 설정

ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

permission

  • 리눅스 계열의 운영체제들은 대부분 다중 사용자 시스템이 잘 되어 있다.
    (옛날엔 컴퓨터가 비쌌기 때문에 여러명이서 썼다고 한다.)

  • 하지만 여러 사용자가 사용하다보면 다른 사용자의 파일을 건드릴 수 있는 문제가 있었고
    이를 해결하기 위해 permission이라는 권한 기능이 생겨났다.

  • 권한을 관리하기 위해 super user(=root)가 필요했지만
    평상시에도 super 권한을 가지고 있는 것은 위험했다.(ex. rm -rf /)
    -> 평상시엔 일반권한을 가지다가 sudo 키워드를 사용한다.
    (sudo의 어원이 super user do라는 설도 있다.)

  • image
  • 권한 설정 부분에서 chmod 다음에 들어오는 숫자가 d나-를 제외한 rwx의 유무를 이진법으로 계산한 것 같아 테스트 해봤는데 생각한대로 나왔다.

  • ex
    -r--r--r-- = 444
    -rw-r-x-wr = 653



profile
안녕하세요

0개의 댓글