/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 |
댓글