본문 바로가기
IT/서버

리눅스 관련 잡다한것

by 모띠 2022. 1. 24.

/home/dev 폴더기준으로 용량많이 차지하는 20개

du -h /home/dev | sort -h | tail -20

sudo : 뒤에 나오는 명령어를 root에 준하는 권한으로 실행 (ex. sudo mkdir test) su : 계정 전환 su - : 계정 전환 + 환경 변수도 전환

sudo su - test : 루트에 준하는 권한으로 test계정으로 전환하겠다(환경변수도 같이)


그룹

특정 그룹에만 파일이나 폴더를 열람할 권한을 주기위해..

groupadd 그룹명 groupdel 그룹명

tail /etc/group을 통하여 현재 있는 그룹확인가능 유저 아이디 생성시 무조건 그룹도 같이생성됨.

test:x:1003:bxm400,bxm300 test라는 그룹을 bxm400,300이라는 두 유저가 참조중(기본그룹말고, 기본그룹을 포함하면 2명이상이 될수잇음)

어떤유저의 기본그룹으로 속해있을때는 그룹 제거 불가. 그 유저의 기본그룹을 딴그룹으로 바꿔줘야 가능.


유저

useradd -d /home/bxm400 -m 유저명 : 유저를 만드는데 /home/bxm400을 홈디렉토리로.. -m은 이런 폴더가 없을때 알아서 만들어줌

passwd 유저명 userdel -rf 유저명 : 유저를 지울때 홈디렉토리도 같이지움. 강제로

usermod -g 그룹명 유저명 : 유저의 기본그룹을 지정한 그룹으로 바꿈

usermod -G 그룹명 유저명 : 유저가 속해있을 그룹에 지정한 그룹도 추가 (2개 이상의 그룹을 추가하고싶을때는 vi /etc/group로 직접 추가해줘야함 그룹명:x:1003:bxm400,bxm300,추가할유저명 이런식으로..)

 

사용자 생성 시 기본적으로 함께 생성하고 싶은 디렉토리나 파일이 있다면 /etc/skel 에 생성해주면 된다. 모든 유저홈은 /etc/skel를 보고 생성되기 때문


권한

drwxr-xr-x. 3 root root 21 3월 8 15:10 svn 허가권한 uid gid

  구분	 소유자   그룹	 일반사용자   
   d   |    rwx   |  r-x   |  r-x

d 첫글자는 디렉토리/파일구분

rwx 파일(디렉토리)의 소유자에 대한 권한

r-x 소유자가 속한 그룹에 대한 권한

r-x 소유자가 아닌 나머지 일반 사용자에 대한 권한을 의미한다

r: 읽기 / w: 쓰기 / x: 실행및접근

 

이진법 계산 rwx 7 / r-x 5 / rw- 6 ... chmod 옵션 777 파일 : 지정한 폴더에 777권한을 준다 (-R 경로와 그 하위파일들 모두 변경)

chown 옵션 소유자:소유그룹 파일 : 파일의 소유자와 소유 그룹을 바꾼다.


환경변수

사용자 환경변수 - 사용자홈 .bashrc, .bash_profile에서 설정

시스템 전체 환경변수 - /etc/profile /etc/bash.bashrc 에서 설정


기본 명령어

cp -r 파일명 복사할파일명 : 원본파일을 복사한다 -r은 폴더

rm -rf 파일명 : 파일을 (폴더도) 강제로 삭제한다.

mv 파일명1 파일명2 : 파일명1을 파일명2로 이름변경

mv 파일명1 경로 : 파일명1을 경로로 이동

ln -s : 어떤걸 어디에설치(심볼릭링크)

cat 파일명 : 파일 내용보기 (캣은 한화면을 넘어가면 제일 아래화면만 출력됨)

more 파일명 : 파일 내용보기 한화면에 꽉차게

mkdir -p 파일명 : 폴더 생성 (-p는 존재하지않는 폴더도 다 생성)

ls : 파일이나 디렉토리 목록 확인

-a : 숨김파일 포함

-l : 각 목록의 세부목록까지 다

find 경로 -name 파일명 : 해당하는 경로에서 파일명 찾기

find 경로 -name test* -type f: 해당하는 경로에서 test로 시작하는 모든 파일 찾기(파일만)

find 경로 -name 파일명 -type d: 해당하는 경로에서 파일명 찾기(디렉토리만)


방화벽

존이라는 개념이 있어서 존을 통해 방화벽제어 - 디폴트는 public 존

/etc/firewalld/zones/public.xml 여기서 제어

firewall-cmd --state : 실행 중이면 running, 실행 중이 아니면 not running을 출력.

firewall-cmd --reload : 방화벽 다시 실행

 

systemctl stop firewalld : 방화벽 해제.

systemctl start firewalld : 방화벽 켜기.

systemctl disable firewalld : 리부팅해도 방화벽 해제된상태로 시작.

 

firewall-cmd --add-service=ftp : ftp서비스를 추가 (zone이 없을떄는 기본존에다가 추가)

firewall-cmd --zone --add-service=ftp : ftp서비스를 추가 (기본존에다가 추가)

firewall-cmd --zone=abc --add-service=ftp : ftp서비스를 추가 (abc존에다가 추가)

firewall-cmd --permanent --add-service=ftp : ftp서비스를 추가 (zone이 없을떄는 기본존에다가 추가). 이러면 재부팅해도 유지

firewall-cmd --remove-service=ftp : ftp서비스를 제거 firewall-cmd --add-port=21/tcp : tcp 21포트 추가.

firewall-cmd --remove-port=21/tcp : tcp 21포트 제거.

리눅스에서 텔넷 서버를 키려면, 설치가 선행되어야함.


서버 설정

아파치기준으로.

센트os는 /etc/httpd 에 깔리고

우분투는 /etc/apache에 깔림.

 

ps -ef | grep httpd 로 실행되고 있는 아파치 경로 확인.

그 경로 /usr/sbin/httpd 로 /usr/sbin/httpd -v 버전 확인.

yum install httpd !- 아파치 설치

systemctl start httpd(service httpd start) !- 아파치 서버 시작

systemctl enable httpd.service !- 부팅시 자동시작

systemctl status httpd(service httpd status) !- 아파치 상태 확인

systemctl stop httpd(service httpd stop) !- 아파치 서버 중지

systemctl restart httpd(service httpd restart) !- 아파치 서버 재시작

 

80포트밖에 열리지않았지만 우리는 다른 포트(13000)을 쓰고싶다. 이때 [리버스프록시] 사용.

/etc/httpd에 vhost.conf 파일을 만들고

<VirtualHost *:80>
	ServerName abc.alis-on-aws-poc.me.uk <- 들어올 url
	ProxyPass /abc http://10.2.2.234:13000/abc <- 들어올 url/abc면 여기로 접근
	ProxyPassReverse /abc http://10.2.2.234:13000/abc <- 들어올 url/abc면 여기로 접근
</VirtualHost>

80으로 들어왔을때 -> ip:13000으로 접속해라 라고 설정가능.

기본적으로 1024미만 포트는 루트밖에 열수없음 80,22..


도커

서비스 운영환경을 묶어서 손쉽게 배포하고 실행하는 경량 컨테이너 기술

docker run ubuntu:16.04 sudo wget -qO- http://get.docker.com/ | sh <- 이렇게 해도되고(자동설치방법)

centos 라면 #Install sudo yum install docker

#Docker 서비스 실행 sudo service docker start

#부팅시 자동 실행 설정 sudo chkconfig docker on

docker version 쳐서 클라이언트 / 서버 둘다나오면 오케이

이미지 - 서비스 운영에 필요한 서버프로그램, 소스코드, 컴파일된 실행파일을 묶은 형태. 컨테이너 - 이미지를 실행한 상태


명렁어 docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] : 도커실행

옵션 설명

-d detached mode 흔히 말하는 백그라운드 모드

-p 호스트와 컨테이너의 포트를 연결 (포워딩)

-v 호스트와 컨테이너의 디렉토리를 연결 (마운트)

-e 컨테이너 내에서 사용할 환경변수 설정

--name 컨테이너 이름 설정(설정안해주면 도커가 알아서 랜덤으로 생성함)

--rm 프로세스 종료시 컨테이너 자동 제거(진짜 삭제)

-it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 –link 컨테이너 연결 [컨테이너명:별칭]

docker run -d -p 3306:3305 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql -v /my/own/datadir:/var/lib/mysql mysql:5.7 도커를 실행하는데 백그라운드 옵션으로 로컬포드 3306을 도커포트 3305로 연결. 환경변수 설정. 이름은 mysql로. /var/lib/mysql파일에 저장되는걸 /my/own/datadir파일에도 저장(업데이트할때 데이터가 전부사라지는걸 방지). mysql:5.7이라는 이미지 실행 (없으면 받는다).

 

  • docker ps (-a): 컨테이너 목록 확인 (실행됐다가 종료된것도 표시)
  • docker stop [옵션] 컨테이너 : 실행중인 컨테이너 중지 (컨테이너 id는 ps로 확인) -> 종료일뿐 삭제는 아님!
  • docker start 컨테이너 : 전에 종료한 컨테이너를 다시 실행 docker restart 컨테이너 : os재실행 처럼 컨테이너 재실행
  • docker rm [옵션] 컨테이너 : 종료된 컨테이너 완전히 제거 docker images [옵션] : 도커가 다운로드한 이미지 목록보기
  • docker pull [옵션] 이미지 : 이미지 다운로드 docker rmi [옵션] 이미지 : 다운로드한 이미지 삭제
  • docker logs [옵션] 컨테이너 : 컨테이너 로그 확인 (--tail 10 맨밑에 10줄만) / (-f 실시간 로그확인)
  • docker attach 컨테이너 : 컨테이너에 접속하기. (명령을 실행한후 엔터를 한번 더 치면 bash쉘이 표시됨)
  • docker exec [옵션] 컨테이터 COMMAND [ARG...] : 실행중인 컨테이너에 들어가서 컨테이너파일 명렁어 실행(외부에서 컨테이너 명령 실행) run명령어는 새로 컨테이너를 만들어서 실행 / exec는 실행중인 컨테이너에 명령어를 내림.
  • docker build [옵션] [경로-도커파일이 있는 폴더에서 실행하면 필요없음] 만들이름 . : 이미지를 빌드

 


리눅스가 오래되서 업데이트가 안된다.

이럴때는 직접 인터넷에서 rpm바이너리 파일을 찾아서

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm 이런식으로 다운받고

그 파일을 설치면 깔림. yum install vsftpd-3xxxxxxx.rpm

yum list installed | grep vsftpd ← 현재 설치된 리스트확인

'IT > 서버' 카테고리의 다른 글

ssl  (0) 2023.03.26
텔넷(Telnet) 통신상태 확인  (0) 2022.01.24
WSL2로 SSH접속설정하기  (0) 2022.01.24
윈도우에 wsl2를 설치해보자  (0) 2022.01.24
FTP 패시브 모드  (0) 2022.01.24

댓글