본문 바로가기
LINUX

LINUX 사용자 관리, wordpress 만들기

by 손영진 2023. 5. 29.
728x90

#1 사용자 관리와 파일 속성

1. 계정정보에 대한 이해

cat /etc/passwd를 통해 계정정보를 출력
     root   :   x     :      0        :          0            :     root     :      /root       : /bin/bash
= 사용자 : 암호 : 사용자ID : 사용자그룹ID : 전체이름 : 홈디렉터리 : 기본셀
-> 암호가 X인 이유는 모든 사람들이 볼 수 있기에 해쉬 값으로 만듦.
-> root는 사용자와 그룹 모두 0이며, 일반사용자는 모두 1000으로 시작한다.


cat /etc/group를 통해 그룹정보를 출력
     root       :   x     :      0     :      NULL
= 그룹이름 : 암호 : 그룹ID : 그룹에 속한 사용자
-> NULL은 없다는 의미

 

2. 계정만들기

# useradd blackpink                       // blackpink라는 계정 만들기
# passwd balckpink                        // blackpink의 비밀번호 만들기 -> 어떤 오류에도 비밀번호 생성은 가능
-> BAD PASSWORD: The password is shorter than 8 characters // 8글자이상이 되지 않아 오류 발생
-> BAD PASSWORD: it is based on a dictionary word                   // 사전에도 나올 정도로 쉬운 비밀번호여서 오류 발생
# userdel blackpink                        // 사용자 계정 삭제


#chage -l blackpink                       // blackpink에 대한 사용기간, 만료기간 등을 확인

#chage blackpink -m [최소기간]   // blackpink에 대한 최소 의무 사용기간 변경
#chage blackpink -M [최대기간]   // 최대 사용기간 변경
#chage blackpink -W [기간]          // 만료 전 경고 기간 -> 만료하기 [기간]일 전 경고
#chage blackpink -E [최대기간]   // 만료날짜 지정 가능
-> #chage -m [기간] -M [기간] -W [기간] blackpink  // 한번에 바꿀 수 있다.

#usermod -g root blackpink          // blackpink를 root의 그룹으로 속하게 한다.


#groupadd girlgroup                      // girlgroup이라는 그룹 만들기
#groups blackpink                         // blackpink가 어느 그룹에 속해져 있는지 확인
#groupdel                                      // 그룹 삭제
#gpasswd -A / -a / -d                     // -A: 관리자 지정 / -a : 사용자 추가 / -d : 사용자 제거

#2 파일과 디렉터리의 소유권과 허가권

1. 권한 읽기

# ls -l                                             // 해당 계정에 있는 디렉토리, 파일 등을 자세히 알려준다.
Desktop의 권한을 숫자로 표현 :  755
-> son의 권한 : 4+2+1 = 7 / root의 권한 : 4+1 = 5 / 기타의 권한 : 4+1 = 5

drwxr-xr-x 소유자(User) 그룹(Group) 기타(Other)

 
맨 앞의 글자
  1. d : 디렉토리
  2. - : 파일
  3. l : link
  1. r : read (4) : 읽기
  2. w : write (2) : 쓰기
  3. x : execute (1) : 실행
  4. - : 권한이 없는 상태 (0)

#cp password.lst /home/twice        // password.lst를 /home/twice로 복사
#cd /home/twice                             // /home/twice로 이동 
#ls -l                                                // 제대로 복사되었는지 확인
#chown twice password.lst             // password.lst의 소유자를 twice로 변경
#chgrp twice password.lst              // 그룹을 twice로 변경
#chmod 755 password.lst               // password.lst의 권한을 710에서 755로 변경

#chmod u+x password.lst               // password.lst의 사용자에 실행권한 추가
#chmod u-x password.lst                // 사용자의 실행권한 제거
#chmod o+r password.lst                // 기타에게 읽기권한 추가
-> u : user, g : group, o : others

2. 파일 불러오기 

# wget http://~~.exe or txt -> 해당 주소를 가진 곳에서 해당 파일 가져오기
# ./[파일명] --install -> 파일 실행시키기

3. 특수한 형태의 파일 권한 

  • setuid(4~) : user가 자신의 파일을 변경해야 할 때, 잠시 root의 권한 사용
    • 명령어 passwd는 root의 권한이므로 일반사용자는 쓰지 못함.
    • -rwsr-xr-x -> 4xxx : 4755
  • setgid(2~) : group이 자신의 파일을 변경해야 할 때, 잠시 root의 권한 사용
    • -rwxrwsr-x -> 2xxx : 2775
  • stickbit(1~) : 공유디렉토리
    • drwxrwxrwt -> 1xxx : 1777
    • 디렉토리에 stickybit를 설정하여 파일이나 디렉토리 생성 가능
    • 그러나 남의 파일은 삭제 할 수 없다.
#chmod u+s test.txt                        // setuid 설정 방법 
#chmod g+s test.txt                        // setgid 설정 방법
#chmod o+t test.txt                         // stickybit 설정 방법

4. 특수 기능

\(back slash) : 특수문자의 기능을 하지 못하게 하는 것
  -> 띄어쓰기를 함에 있어 다른 내용이 아닌 같은 내용임을 표기
  -> Escape처리라고 부름.

#3 파일들의 link

- 실제 파일은 다른데 있지만, 사용자에게 사용하기 편리하도록 연결해주는 기능

Hard link Hash 값도 같게 완전히 똑같은 파일을 복사하여 연결
Soft link Hasg 값은 다르지만 내용이 같게 파일을 복사하여 연결
#cd /root
# mkdir linktest                              // linktest라는 디렉토리 생성
# vi basefile                                   // basefile을 만들고 안의 내용을 작성
#cat basefile                                  // basefile 안의 내용을 확인
#ln basefile hardlink                      // hardlink로 복사
#ln -s basefile softlink                    // softlink로 복사

#4 Hash Function

  • 파일이나 텍스트를 해시함수에 넣으면 Hash code 출력
  • Hash Function은 '요약'하는 방식을 반복하는 함수
  • 해당 파일이 서로 다르면 Hash code 도 다름 -> 무결성 검사 가능
  • 일방향 함수 (역연산 불가)
    • Hash Function과 Hash code를 알아도 파일이나 텍스트를 만들지 못함
  • 충돌방지
    • 원문이 다른데 Hash code가 같을 경우
    • MD5( 128 bit ), SHA-1( 160 bit ), SHA-256( 256 bit )
      1. MD5 : 1/(2의 128제곱) -> 0에 수렴
      2. SHA-1 : 1/(2의 160제곱) -> 0에 수렴
      3. SHA-256 : 1/(2의 256제곱) -> 0에 수렴
    • 컴퓨터의 발전으로 MD5와 SHA-1는 Hash code가 같을 수도 있음
#cd /root/linktest
#md5sum basefile hardlink                   //basefile과 hardlink의 Hash code 비교
#sha1sum basefile hardlink
#sha256sum basefile hardlink
  • 고정길이 출력 : 같은 Hash Function을 사용하면 원문 길이와 상관없이 일정크기로 출력

#5 자동설치 명령 : dnf

- dnf 사용방법 ( dandified )

#dnf install [패키지 이름]                        // 패키지를 설치
#dnf update [패키지 이름]
#dnf check-update
#dnf remove [패키지 이름]                     // 패키지 삭제
#dnf info [패키지 이름]                           // 정보를 확인

#6 파일 압축 및 묶기

1. 파일 압축과 해제

xz -d [파일명]                                         // -d : decompress (압축해제)
xz -l [파일명]                                          // -l : list (압축된 파일의 리스트 확인)
xz [파일이름] [파일이름]                        // 압축하고 원래 파일은 삭제
xz -k [파일이름]                                     // -k : keep (원래파일 놔두고 압축)

bzip2 [파일이름]                                    // 압축
bzip2 -d [파일이름].bz2                         // 해제
-> gzip 동일

zip [생성할 파일].zip [압축할 파일]
unzip [압축파일].zip

2. 파일 묶기와 해제

- tar(Tape Archive) : 여러 파일을 묶는 역할만 수행, 압축과는 별도.

tar --help                                             // tar 뒤에 어떠한 명령어가 올 수 있는지 알려준다.
         -c : 새로운 묶음 ( create ) -> tar -cvf [압축파일명].tar [압축대상파일]
         -x : 묶음 해제 ( extract )
         -f : 묶음 파일 이름 저정
         -v : 과정을 보여줌 ( visual )
         -z : gzip으로 압축한 경우
         -J : xz로 압축한 경우
         -j : bzip2로 압축한 경우 

-> --help 자리에 오는 순서는 상관 없다.

#tar -zxvf [압축파일].tar.gz
#tar -Jxvf [압축파일].tar.xz
#tar -jxvf [압축파일].tar.bz2

#7 파일 위치 검색

#find --help
         / -name "shadow"                     // shadow라는 이름의 파일을 찾는다
                                                          // ' / '의 의미는 최상의 디렉토리에서부터 그 아래 전체를 나타냄
         / -user "twice"                           // 소유자가 twice인 파일을 검색
         /etc -perm 644                          // /etc에서 perm(권한:permission)이 644인 파일을 검색
         /usr/bin -size +10k +size 100k // 10kbytes ~ 100kbyes인 파일을 검색
         / -name "*.swp" -exec rm {} \;   // rm( remove ) : 확장자가 swp인 것들을 삭제
                                                          // ' * '은 모든 파일을 뜻함
                                                          // {} : *.swp 를 넣고 실행
                                                          // ' \; ' : 이 명령문을 여기서 종료
                                                          // -exec( execute ) : 실행한다는 뜻

#8 저장소(repo : repository) 파일 변경 및 워드프레스 페이지 만들기

https://cafe.naver.com/thisislinux/6620 에 있는 내용 전체 복사
#cd /etc/yum.repos.d                        
#mkdir backup                                  // 백업에 필요한 디렉토리 생성
#mv *.repo backup                            // 확장자가 repo인 모든 파일을 backup으로 이동
#vi This.repo  -> Edit > paste            // This.repo의 파일을 만들어 복사한 내용을 붙여넣는다
#dnf clean all                                     // 임시 저장 장소의 캐시패키지를 모두 삭제 -> 6개가 삭제되면 정상
#dnf update                                       // 임시 저장 장소를 새로 업데이트.
복사할 내용

다시 반복한다

#cd /etc/yum.repos.d                        // yum.repos.d 로 이동
#ls                                                     // yum.repd.d 디렉토리에 두 개의 파일 확인
#dnf clean all                                    // 28개의 파일이 제거되면 정상
#dnf update                                      // 다시 업데이트 해준다.

#firewall-config                                //웹사이트를 만들어 줄 준비를 한다.       
                                                        // 명령어가 되지 않는다면 #init 6 을 통해 재부팅하고 반복한다.

1. 위의 화면이 뜨면 상단의 configuration을 permanet로 바꾸고 public의 http, https 를 클릭
2. 좌측 상단의 Options의 reload를 누르고 홈페이지 다시 확인
-> #ifconfig를 통해 주소를 확인하고, 홈페이지에 해당 IP주소를 적는다.
3. 안되면 cmd에서 systemctl start httpd를 통해 다시 시작
                                                                 // httpd(apache2) : http를 서비스하는 Daemon(d)
                                                                 // Daemon : 서비스를 실행하기 위해 메모리에 동작하고 있는 프로세스 

더보기

firewall-config를 입력하지 않고 터미널에서 직접 입력하기

#firewall-cmd --permanent --add-service=http
#firewall-cmd --permanent --add-service=https
#firewall-cmd --reload                              // 해당 설정들을 적용시켜주는 것.


#rpm -qa httpd php mariadb-server            // qa :question answer
                                                                    // php : 웹 스크립트 프로그래밍
                                                                    // mariadb : Database로 mysql과 동일
                                                                    // mariadb-server의 설치여부 확인
#dnf -y install httpd php php-mysqlnd mariadb-server       // mariadb-server의 설치
#systemctl status httpd                               // httpd의 상태를 확인
#systemctl start httpd                                  // active상태가 아니라면 시작해준다.

#cd /var/www/html
#vi index.html
          -> i                                                      // 편집모드 실행
          -> <html>                                            // html 시작
          -> <body>                                            // 본문 시작
          -> <h1> This is my website. Welcome!! <br> 어서오세요 반갑습니다. </h1>  // br : 한줄 띄기
                                                                       // hr : header
          -> </body>                                            // 본문 종료
          -> </html>                                            // html 종료
          -> ESC / :wq

웹브라우저에 해당IP주소를 입력했을 때의 결과 값

#systemctl restart mariadb
#systemctl enable mariadb
#systemctl status mariadb

#mysql -u root -p                                         // maria DB 시작
          -> create database wpDB;                // ' ; ' : 이 것을 써줌으로 해당 명령을 종료한다는 뜻.
                                                                    // wpDB라는 database 생성
          -> grant all privileges on wpDB.* to wpUser@localhost identified by '1234';
                                                                    // 사용자와 비밀번호 생성
          -> exit


#cd /var/www/html
#dnf -y install bind-utils net-tools wget unzip bzip2
#wget https://ko.wordpress.org/latest-ko_KR.tar.gz         // wordpress 다운로드
#tar -zxvf latest-ko_KR.tar.gz                                          // wordpress 압축해제

#chmod 707 wordpress                                // wordpress의 권한 변경
#chown -R apache.apache wordpress         // apache2와 httpd는 사용계열이 다를뿐 같은 말임.
                                                                      // wordpress의 소유자와 그룹을 apache로 변경
#cd wordpress
#cp wp-config-sample.php wp-config.php    //  wp-config-sample.php를 복사.
#vi wp-config.php
          -> :set nu
          -> 23번 라인 : wpDB
          -> 26번 라인 : wpUser
          -> 29번 라인 : 1234


#vi /etc/httpd/conf/httpd.conf
          -> 122번 라인 : DocumentRoot "/var/www/html/wordpress"
          -> 134번 라인 : <Directory "/var/www/html/wordpress">
          -> 154번 라인 : AllowOverride All
#systemctl restart httpd
#systemctl status httpd
#dnf install php-json                                    // CentOS8에서 wordpress 에러 교정 방법
#systemctl restart httpd

-> 웹브라우저에 할당받은 IP주소를 입력하면 wordpress 사이트가 나옴.

 

 

'LINUX' 카테고리의 다른 글

LINUX Server 만들기  (0) 2023.06.02
LINUX내 시스템 설정  (0) 2023.05.31
LINUX의 설치와 기본 명령어  (0) 2023.05.26