1. 현재 디렉토리 확인

 

renderaccount@ellord-Precision-T5600:/home2/data$ sudo -u postgres -i
postgres@ellord-Precision-T5600:~$ psql
psql (12.20 (Ubuntu 12.20-0ubuntu0.20.04.1))
Type "help" for help.

postgres=# 
postgres=# show data_directory;
       data_directory        
-----------------------------
 /var/lib/postgresql/12/main
(1 row)

postgres=#

 

 

2. postgresql 중지

renderaccount@ellord-Precision-T5600:/home3$ sudo service postgresql stop
renderaccount@ellord-Precision-T5600:/home3$

 

 

3. 새로운 위치 생성

renderaccount@ellord-Precision-T5600:/home3$ mkdir postgres-data
renderaccount@ellord-Precision-T5600:/home3$ sudo chown postgres:postgres postgres-data/
[sudo] renderaccount 암호: 
renderaccount@ellord-Precision-T5600:/home3$ sudo chmod 700 postgres-data/
renderaccount@ellord-Precision-T5600:/home3$ ls -la
합계 36
drwxr-xr-x  6 renderaccount renderaccount  4096 10월  8 19:54 .
drwxr-xr-x 22 root          root           4096 10월  8 19:30 ..
drwx------  2 postgres      postgres       4096 10월  8 19:54 postgres-data

 

 

4. 새로운 공간으로 데이터 이전

renderaccount@ellord-Precision-T5600:/home3$ sudo mv /var/lib/postgresql/12/main/ /home3/postgres-data/
renderaccount@ellord-Precision-T5600:/home3$

 

 

5. conf 파일 수정

root@ellord-Precision-T5600:/home3/postgres-data# cd /etc/postgresql/12/main/postgresql.conf

data_directory = '/home3/postgres-data/main'

 

 

6. PostgreSQL 서비스 시작

renderaccount@ellord-Precision-T5600:/home3$ sudo service postgresql start
renderaccount@ellord-Precision-T5600:/home3$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor pr>
     Active: active (exited) since Tue 2024-10-08 20:03:28 KST; 16s ago
    Process: 12867 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 12867 (code=exited, status=0/SUCCESS)

10월 08 20:03:28 ellord-Precision-T5600 systemd[1]: Starting PostgreSQL RDBMS...
10월 08 20:03:28 ellord-Precision-T5600 systemd[1]: Finished PostgreSQL RDBMS.
lines 1-8/8 (END)
블로그 이미지

엘로드넷

,

 

vi /etc/sudors

 

사용자계정   ALL=(ALL:ALL) ALL

 

 

root@48efa0ebd424:/etc# chmod 640 sudoers

root@48efa0ebd424:/etc# vi sudoers


root    ALL=(ALL:ALL) ALL
renderaccount   ALL=(ALL:ALL) ALL

:wq!

root@48efa0ebd424:/etc# chmod 440 sudoers
블로그 이미지

엘로드넷

,

 

apt-get update

 

root@48efa0ebd424:/home# apt-get update
Get:1 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease [128 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [3937 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1275 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [1270 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [3928 kB]
Get:10 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [30.9 kB]
Get:11 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]     
Get:12 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]      
Get:13 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [4399 kB]   
Get:14 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1555 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [4079 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [33.5 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [28.6 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [55.2 kB] 
Fetched 32.8 MB in 10s (3328 kB/s)                                                    
Reading package lists... Done

 

apt-get install sudo

 

root@48efa0ebd424:/home# apt-get install sudo
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  sudo
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 515 kB of archives.
After this operation, 2257 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 sudo amd64 1.8.31-1ubuntu1.5 [515 kB]
Fetched 515 kB in 2s (219 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package sudo.
(Reading database ... 4124 files and directories currently installed.)
Preparing to unpack .../sudo_1.8.31-1ubuntu1.5_amd64.deb ...
Unpacking sudo (1.8.31-1ubuntu1.5) ...
Setting up sudo (1.8.31-1ubuntu1.5) ...
root@48efa0ebd424:/home#

 

 

블로그 이미지

엘로드넷

,

rsync 설정은 문제가 없는 것 같은데 Permission denied가 발생한다면 selinux  가 enable 된 상태이다.

selinux 를  disabled로 변경하면 문제가 해결되지만 보안상 selinux를 enable해 둔 상태로 rsync를 가능하게 해보자.

 

아래와 같은 Permission denied 에러가 발생하고 있다.

ellord@DS1TTC ~ % rsync -azPog --delete root@218.146.255.53::home/ /Volumes/4T/backup/53home    
receiving file list ... 
rsync: opendir "/." (in home) failed: Permission denied (13)
1 file to consider
IO error encountered -- skipping file deletion
                    
sent 16 bytes  received 129 bytes  290.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/66382bca-8bca-11ec-aade-6613bcf0e2ee/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(1404) [generator=2.6.9]

 

 

1. selinux 환경 확인

[root@localhost /]# getenforce
Enforcing
[root@localhost /]# 
[root@localhost /]# getsebool -a | grep rsync
postgresql_can_rsync --> off
rsync_anon_write --> off
rsync_client --> off
rsync_export_all_ro --> off
rsync_full_access --> off
[root@localhost /]# set

selinux가 enforcing상태이고, rsync관련은 전부 off로 되어 있다.

 

rsync_client : 클아이언트 접속 허용

rsync_export_all_ro : 읽기 모드 허용

rsync_full_access  : 읽고쓰는 모든 기능 허용

 

이 부분을 on으로 변경해 보자.

 

[root@localhost /]# setsebool -P rsync_client 1
[root@localhost /]# getsebool -a | grep rsync
postgresql_can_rsync --> off
rsync_anon_write --> off
rsync_client --> on
rsync_export_all_ro --> off
rsync_full_access --> off

 

 

[root@localhost /]# setsebool -P rsync_export_all_ro 1
[root@localhost /]# getsebool -a | grep rsync
postgresql_can_rsync --> off
rsync_anon_write --> off
rsync_client --> on
rsync_export_all_ro --> on
rsync_full_access --> off
[root@localhost /]#

 

 

[root@localhost /]# setsebool -P rsync_full_access 1
[root@localhost /]# getsebool -a | grep rsync
postgresql_can_rsync --> off
rsync_anon_write --> off
rsync_client --> on
rsync_export_all_ro --> on
rsync_full_access --> on
[root@localhost /]#

 

 

2. rsync를 다시 시도해 본다.

 

ellord@DS1TTC ~ % rsync -azPog --delete root@서버아이피::home/ /Volumes/4T/backup
receiving file list ... 
526 files to consider
ds1ttc/             
ds1ttc/.bash_logout
          18 100%   17.58kB/s    0:00:00 (xfer#1, to-check=523/526)
ds1ttc/.bash_profile
         193 100%  188.48kB/s    0:00:00 (xfer#2, to-check=522/526)
ds1ttc/.bashrc
         231 100%  112.79kB/s    0:00:00 (xfer#3, to-check=521/526)

 

정상적으로 된다.

 

 

블로그 이미지

엘로드넷

,

리눅스 swapfile 추가

Linux 2020. 9. 1. 18:52

스왑파티션 확인

 

[root@localhost /]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                              	partition	16318460	0	-2

 

스왑파일을 추가로 만든다.

 

[root@localhost /]# fallocate -l 1GB /swapfile

swapon: /swapfile: read swap header failed: Invalid argument 와 같은 에러 방지를 위해 다음과 같이 해준다.

 

[root@localhost /]# sudo dd if=/dev/zero of=/swapfile count=1024 bs=1MiB

 

스왑파일 퍼미션 변경

[root@localhost /]# chmod 600 /swapfile

 

스왑파일로 변경

[root@localhost /]# mkswap /swapfile 
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=ed717676-8540-48c3-8034-94d0dea8e5b5

 

스왑파일 적용

[root@localhost /]# swapon /swapfile

 

스왑메모리 확인

[root@localhost /]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                              	partition	16318460	0	-2
/swapfile                              	file	1048572	0	-3
[root@localhost /]# 

/swapfile 이 추가되어 있다.

 

 

부팅시 적용

[root@localhost /]# vi /etc/fstab

 

하단에 아래 항목 추가

/swapfile swap swap defaults 0 0


#
# /etc/fstab
# Created by anaconda on Mon Aug 31 16:53:23 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=7d8e34c6-1c5e-43ed-9bb2-296a8e3be09a /boot                   xfs     defaults        0 0
UUID=C6F0-811D          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/swapfile		swap			swap	defaults	0 0

 

스왑을 적용한다.

[root@localhost /]# swapon -a

 

 

블로그 이미지

엘로드넷

,

1. 오라클 사이트에서 다운로드

 

http://www.oracle.com/java/technologies/javase7-archive-downloads.html 

 

jdk-7u80-linux-x64.tar.gz 를 다운받는다.

 

 

2. 서버에 업로드

 

3. 압축을 푼다.

 

[root@localhost ellord]# tar xvfz jdk-7u80-linux-x64.tar.gz 

 

 

4. 압축이 풀린 폴더를 /usr/local 로 이동시켜 준다.

 

[root@localhost ellord]# mv jdk1.7.0_80/ /usr/local/

 

5. 심볼릭 링크를 만든다. java여러 버전을 관리하기 위해서.

 

[root@localhost local]# ln -s jdk1.7.0_80/ ./java

아래와 같이 java 심볼릭 링크가 생성되었다.

 

[root@localhost local]# ll
total 0
drwxr-xr-x. 2 root root   6 Apr 11  2018 bin
drwxr-xr-x. 2 root root   6 Apr 11  2018 etc
drwxr-xr-x. 2 root root   6 Apr 11  2018 games
drwxr-xr-x. 2 root root   6 Apr 11  2018 include
lrwxrwxrwx. 1 root root  12 Sep  1 15:48 java -> jdk1.7.0_80/
drwxr-xr-x. 8   10  143 233 Apr 11  2015 jdk1.7.0_80
drwxr-xr-x. 2 root root   6 Apr 11  2018 lib
drwxr-xr-x. 2 root root   6 Apr 11  2018 lib64
drwxr-xr-x. 2 root root   6 Apr 11  2018 libexec
drwxr-xr-x. 2 root root   6 Apr 11  2018 sbin
drwxr-xr-x. 5 root root  49 Aug 31 16:53 share
drwxr-xr-x. 2 root root   6 Apr 11  2018 src
[root@localhost local]# 

 

6. 현재 자바 버전을 확인해 본다.

 

[root@localhost local]# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
[root@localhost local]# 

openjdk 1.8이 설치되어 있다.

 

방금 설치한 jdk1.7로 변경하려고 한다.

 

7. alternatives 심볼릭 링크 생성

[root@localhost local]# alternatives --install /usr/bin/java java /usr/local/java/bin/java 2
[root@localhost local]# alternatives --install /usr/bin/java javac /usr/local/java/bin/javac 2
[root@localhost local]# alternatives --install /usr/bin/java javaws /usr/local/java/bin/javaws 2
[root@localhost local]# 
[root@localhost local]# alternatives --set java /usr/local/java/bin/java
[root@localhost local]# alternatives --set javac /usr/local/java/bin/javac
[root@localhost local]# alternatives --set javaws /usr/local/java/bin/javaws
[root@localhost local]# 

 

8. 심볼릭 링크 확인

[root@localhost local]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64/jre/bin/java)
 + 2           /usr/local/java/bin/java

Enter to keep the current selection[+], or type selection number: 2

2번에 등록된 것 확인할 수 있다. 

2를 입력하고 엔터.

 

확인해 본다.

[root@localhost local]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@localhost local]# 

변경이 잘 되었다.

 

 

 

 

 

 

 

 

 

 

 

 

 

블로그 이미지

엘로드넷

,

같은 서버내의 서로 다른 계정끼리 폴더를 공유하는 방법이다.

 

 

공유할 폴더 : /home/testuser/공유폴더

공유할 사용자 : testuser1, testuser2

 

이후부터는 root로 작업한다.

 

 

1. 그룹을 만든다

 

# groupadd mygroup

 

2. 새로 만든 그룹에 속할 계정을 지정해 준다.(계정은 미리 만들어져 있어야 함)

 

# usermod -a -G mygroup testuser1
# usermod -a -G mygroup testuser2

 

-a : 그룹에 추가

-G : 다음에 그룹명 지정

mygroup : 그룹명

testuser1, testuser2 : 사용자계정

 

 

3. 그룹을 확인해 본다.

# cat /etc/group
mygroup:x:1011:testuser1,testuser2

group 파일의 하단에 위와 같이 그룹이 지정된 것을 확인할 수 있다.

 

 

 

4. 공유폴더의 그룹명을 변경해 준다.

 

# chgrp -R mygroup /home/testuser/공유폴더
# chmod -R 2775 /home/testuser/공유폴더

 

2 : 새롭게 생성되는 하위 폴더에 같은 그룹을 지정해주는 옵션

7 : 소유자에게 rwx(4+2+1) 권한 주기

7 : 그룹에게 rwx(4+2+1) 권한 주기

5 : 타인에게 rx(4+1) 권한 주기

 

 

5. 새로운 사용자를 생성하면서 이 그룹에 추가하려면 아래와 같이 하면 된다.

# useradd -m -c "Test User3" -s/bin/bash -G mygroup testuser3

 

공유설정은 끝났다.

 

 

6.

testuser1 계정으로 로그인해서 심볼릭링크를 걸어보자.

 

# ln -s /home/testuser/공유폴더 ./공유폴더

 

공유폴더 링크가 생성되었다.

ftp로 접속을 하면 폴더가 보인다.

 

그런데 접근이 안된다.

 

vsftpd설정에서 chroot_list 옵션을 사용중이어서 상위폴더로 접근이 금지되어 있기 때문이다.

 

 

7. 다음과 같이 해보자

 

심볼릭링크를 삭제한다.

 

그리고 아래와 같이 폴더를 생성한다.

 

# mkdir 공유폴더

 

아래와 같이 원본공유 폴더를 새로 생성한 공유폴더에 마운트 한다.

 

# mount --bind /home/testuser/공유폴더 ./공유폴더

 

 

원본 공유폴더에 777권한을 준다.

# chmod 777 /home/testuser/공유폴더

 

테스트를 해본다.

testuser1, testuser2 등 각기 다른 다른 사용자로 접속하여 파일을 생성하고 삭제해 본다.

정상적으로 작동한다.

 

 

 

*추가

 

재부팅하면 mount 가 해제되므로 다시 설정해야 함.

해당 폴더에 쓰기가 안된다면 selinux 를 아래와 같이 변경

 

# setsebool -P allow_ftpd_full_access 1

 

 

끝.

 

 

 

 

'Linux' 카테고리의 다른 글

리눅스 swapfile 추가  (0) 2020.09.01
centos7 jdk1.7 설치하기, 자바버전선택  (0) 2020.09.01
mariadb 설치 후 centos8 시작프로그램 등록  (0) 2020.05.02
rsync @ERROR: chroot failed  (0) 2019.01.08
CentOS7 apache 2.4 mod_deflate  (0) 2017.11.26
블로그 이미지

엘로드넷

,

시작프로그램 내역확인. 

[root@localhost ~]# chkconfig --list

알림: 이 출력 결과에서는 SysV 서비스만을 보여주며 기존의 systemd 서비스는 
포함되어 있지 않습니다. SysV 설정 데이터는 기존의 systemd  설정에 의해 
덮어쓰여질 수 있습니다. 

      'systemctl list-unit-files'를 사용하여 systemd 서비스를 나열하실 수 있습니다.
       특정 대상에 활성화된 서비스를 확인하려면
       'systemctl list-dependencies [target]'을 사용하십시오.

[root@localhost ~]# 

안된다.

 

systemctl 명령어를 사용하라고 한다.

[root@localhost ~]# systemctl list-unit-files | grep mariadb
mariadb.service                            disabled 
mariadb@.service                           disabled 
[root@localhost ~]# 

 

 

시작프로그램 등록

[root@localhost ~]# systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@localhost ~]# 

 

등록확인

 

[root@localhost ~]# systemctl list-unit-files | grep mariadb
mariadb.service                            enabled  
mariadb@.service                           disabled 
[root@localhost ~]# 

 

시작프로그램에서 해제할 때엔

 

systemctl disable mariadb 로 하면 된다.

 

 

 

끝.

'Linux' 카테고리의 다른 글

centos7 jdk1.7 설치하기, 자바버전선택  (0) 2020.09.01
CentOS 리눅스 계정간 폴더 공유하기  (0) 2020.08.24
rsync @ERROR: chroot failed  (0) 2019.01.08
CentOS7 apache 2.4 mod_deflate  (0) 2017.11.26
CentOS7 sshd 포트 변경하기  (0) 2017.10.29
블로그 이미지

엘로드넷

,

잘 되던  rsync 가 아래와 같은 에러를 남기로 안될 때.


rsync @ERROR: chroot failed





1. SELinux 확인


9f57a1d448ffbd0a827ef4a2104344d8_1545056212_757.png
 

enabled 로 되어 있다.


이것을  disabled 로 변경하면 되지만 보안상 좋지 않으므로.


selinux 에 rsync 를 허용하는 방향으로 변경하고자 한다.



2. SELInux에서 관리하는 것들은 아래 명령어로 확인가능하다.


9f57a1d448ffbd0a827ef4a2104344d8_1545056534_8227.png
 

많은 것들이 표시되고 대부분 off로 되어 있다.


이중에서 grep키워드를 통해 rsync와 관련된 것들만 확인해 보자.


9f57a1d448ffbd0a827ef4a2104344d8_1545056631_7385.png
 

모두 off로 되어 있다.


이중에서 파일이나 디렉토리를 read only 상태로 접근을 허용하기 위해서는 rsync_export_all_ro 를 on  으로 변경해 줘야 한다.


아래와 같이 입력한다.


9f57a1d448ffbd0a827ef4a2104344d8_1545056833_0302.png
 

다시 getsebool 을 통해 rsync 상태를 확인해 본다.


9f57a1d448ffbd0a827ef4a2104344d8_1545056873_4517.png
 

rsync_export_all_ro 가 on 으로 변경되어 있다.



다시 rsync 명령어를 해보면 잘 될 것이다.



끝.



블로그 이미지

엘로드넷

,

CentOS7 에서 아파치 yum 설치시 mod_deflate 가 설치되어 있다.

아래와 같이 확인된다.


[root@localhost conf.d]# sudo httpd -M | grep deflate

 deflate_module (shared)



1. 설정파일을 아래와 같이 만든다.


[root@localhost conf.d]# vi /etc/httpd/conf.d/mod_deflate.conf


<filesMatch "\.(js|html|txt|css)$">

        SetOutputFilter DEFLATE

</filesMatch>

DeflateCompressionLevel 7

DeflateMemLevel 8

DeflateWindowSize 10

~                     



DeflateCompressionLevel : 1 ~ 9 (압축강도; 클수록 압축강도 높음)

DeflateMemLevel : 1 ~9 (압축시 메모리 사용수준)

DeflateWindowSize : 1 ~ 15




2. 아파치를 재시작한다.


[root@localhost conf.d]# systemctl restart httpd




3. 압축이 되는지 확인


서버에서) 파일 사이즈 확인 


[root@localhost js]# du -hs jquery-1.11.3.min.js 

96K jquery-1.11.3.min.js


jquery-1.11.3.min.js 파일이 96K 로 나온다.



wget으로 다운받아서 사이즈 확인

ELLORDNET-MPR:~ ellord$ wget --header="Accept-Encoding: gzip" http://www.yulha.in/js/jquery-1.11.3.min.js

--2017-11-26 21:42:20--  http://www.yulha.in/js/jquery-1.11.3.min.js

Resolving www.yulha.in (www.yulha.in)... 218.146.255.56

Connecting to www.yulha.in (www.yulha.in)|218.146.255.56|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: unspecified [application/javascript]

Saving to: ‘jquery-1.11.3.min.js’


    [ <=>                                                                                                      ] 42,385      --.-K/s   in 0.006s  


2017-11-26 21:42:20 (7.07 MB/s) - ‘jquery-1.11.3.min.js’ saved [42385]



ELLORDNET-MPR:~ ellord$ du -hs jquery-1.11.3.min.js 

 44K jquery-1.11.3.min.js



44K 로 나온다.



끝.









'Linux' 카테고리의 다른 글

mariadb 설치 후 centos8 시작프로그램 등록  (0) 2020.05.02
rsync @ERROR: chroot failed  (0) 2019.01.08
CentOS7 sshd 포트 변경하기  (0) 2017.10.29
아파치 OpenSSL 사설인증서 적용  (0) 2016.12.06
iconv euckr to utf8 파일명  (0) 2016.12.06
블로그 이미지

엘로드넷

,