Linux 검색 결과

55개 발견
  1. 미리보기
    2018.07.19 - mr.november11

    [Linux] systemctl status 실행 시 state : degraded 경우 해결법

  2. 미리보기
    2018.07.19 - mr.november11

    [Linux] HPE 스마트 스토리지 관리자(HPE SSA) CLI 를 활용한 서버 Disk 상태 확인

  3. 미리보기
    2018.07.09 - mr.november11

    [Linux]sudo 명령어 수행 시 sudo: sorry, you must have a tty to run do Error가 발생할 때 해결 방안

  4. 미리보기
    2018.07.07 - mr.november11

    [Linux] CentOS7에서 2TB 이상 사이즈의 디스크 GTP 파티션 생성 및 포맷 방법

  5. 미리보기
    2018.07.02 - mr.november11

    [Linux] CentOS 7, rhel7 hostname 호스트네임 변경하기

  6. 미리보기
    2018.06.26 - mr.november11

    [Linux] CentOS SFTP 서버 설정하기 - chroot로 디렉토리 제한 및 SSH와 포트 분리까지

  7. 미리보기
    2018.06.16 - mr.november11

    [Linux] CentOS7 Linux 설치용 USB 제작

  8. 미리보기
    2018.06.11 - mr.november11

    [Linux] 오픈 가능한 최대 파일 개수와 현재 오픈 중인 파일 개수 확인 방법

 

[Linux] systemctl status 실행 시 state : degraded 경우 해결법

 

현상

systemctl status 실행 시 state 상태가 degraded 일 경우가 있다.

 

원인

확인 결과 일부 service가 정상적으로 실행되지 못 할 경우에 degrade 상태가 발생한다.

실패한 서비스는 systemctl --failed 명령어를 통해 파악 가능하다.

이번 경우에는 crontab이 정상적으로 실행되지 않아 trouble shooting을 위해 systemctl 을 확인 했으며 아래와 같이 crond.service 가 loading failed 상태임을 확인할 수 있었다.

solution

구글링을 통해 해결 방법을 알아본 결과 systemctl reset-failed를 실행하면 된다.

systemctl reset-failed 실행 후 systemctl --failed 를 통해 failed 상태의 service가 모두 정상화 되었음을 확인 할 수 있다.

문제는 failed 상태가 아님에도 불구하고 crond 서비스가 여전히 inactive 상태라는 점이다.

근본적인 문제 해결 방법은 해당 서비스를 다시 start 한 후 해소되었다.

systemctl --failed 상태인 서비스들은 별도로 기록하여 reset-failed 실행 후 status까지 최종 확인하는 것이 필요하다.

 

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

[Linux] HPE 스마트 스토리지 관리자(HPE SSA) CLI 를 활용한 서버 Disk 상태 확인

SSA CLI는 HPE 스마트 스토리지 관리자 CLI툴로 HP 서버의 Disk 상태를 확인할 수 있는 툴이다.

Linux상에서는 bios 를 통해 RAID 설정된 disk 장치만 감지 가능하다.

  • Disk 2장이 RAID 1으로 구성되어 있을 경우 Disk 1개 고장은 Linux kernel상에서는 감지가 불가능하다. Disk 5장이 RAID 5으로 4+1 로 구성되어 있을 경우 또한 마찬가지이다.

실제 Disk의 상태를 확인하기 위해서는 ssacli 사용이 필요하다.

ssacli 명령어를 활용한 Disk 상태 확인

/usr/sbin/ssacli ctrl all show config 명령어를 통해 개별 Disk 상태 및 RAID 구성 확인을 확인 할 수 있다.

  [root@server~]# /usr/sbin/ssacli ctrl all show config 


Smart Array P840 in Slot 3               (sn: XXXXXX )
  Port Name: 1I
  Port Name: 2I
  Internal Drive Cage at Port 1I, Box 1, OK
  Internal Drive Cage at Port 1I, Box 1, OK
  Internal Drive Cage at Port 2I, Box 2, OK
  Array A (SAS, Unused Space: 0 MB)
    logicaldrive 1 (1.8 TB, RAID 0, OK)
    physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS HDD, 2 TB, OK)
  Array B (SAS, Unused Space: 0 MB)
    logicaldrive 2 (43.7 TB, RAID 6, OK)
    physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS HDD, 6 TB, OK)
    physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS HDD, 6 TB, OK)
    physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS HDD, 6 TB, OK)
    physicaldrive 1I:1:5 (port 1I:box 1:bay 5, SAS HDD, 6 TB, OK)
    physicaldrive 1I:1:6 (port 1I:box 1:bay 6, SAS HDD, 6 TB, OK)
    physicaldrive 1I:1:7 (port 1I:box 1:bay 7, SAS HDD, 6 TB, OK)
    physicaldrive 1I:1:8 (port 1I:box 1:bay 8, SAS HDD, 6 TB, OK)
    physicaldrive 2I:2:1 (port 2I:box 2:bay 1, SAS HDD, 6 TB, OK)
    physicaldrive 2I:2:3 (port 2I:box 2:bay 3, SAS HDD, 6 TB, OK)
    physicaldrive 2I:2:4 (port 2I:box 2:bay 4, SAS HDD, 6 TB, OK)
  Unassigned

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

[Linux]sudo 명령어 수행 시 sudo: sorry, you must have a tty to run do Error가 발생할 때 해결 방안

1. 현상

특정 유저의 crontab이나 zabbix 계정으로 실행되는 zabbix agent 에서 root 권한의 명령어를 수행하고 싶다면 sudo를 사용하면 된다.

문제는 sudo 관련하여 /etc/sudoers에 해당 계정의 권한을 설정했음에도, 아래와 같은 로그를 남기며 명령어 수행을 실패하는 경우가 있다.

sudo: sorry, you must have a tty to run sudo

 

2. 원인

해당 원인을 분석한 결과 /etc/sudoers 파일 내 Defaults requiretty 값이 설정되어 위와 같은 에러가 발생했다. Defaults requiretty 이 설정되면 cron 이나 agent 내부에서 sudo 명령어 실행이 불가능하며, 실제 tty(teletyperwriter, Linux 콘솔 or 터미널) 를 통해 접속된 상태에서만 sudo 명령어 실행이 가능하다.

[man page 내 requiretty 관련 guide]

requiretty 

If set, sudo will only run when the user is logged in to a real tty. When this flag is set, sudo can only be run from a login session and not via other means such as cron(8) or cgi-bin scripts. This flag is off by default.

 

3. 해결방안

visudo 또는 /etc/sudoers 파일을 vi 편집기로 Open 한 후

Defaults    requiretty 구문을 주석(#) 처리하면 된다.

 

 

 

 

 

 

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다


[Linux] CentOS7에서 2TB 이상 사이즈의 디스크 GTP 파티션 생성 및 포맷 방법

우리가 일반적으로 사용하는 Linux 디스크는 MBR(Master Boot Record) 방식의 파티션을 사용한다.

MBR의 단점은 파티션 최대 용량 제한으로 한 개의 파티션에 최대 2TB 밖에 사용이 불가능하다.

추가로, MBR의 경우 생성 가능한 파티션의 개수가 주 파티션 4개이며,

일반적으로 주 파티션 3개 + 확장 파티션 1개를 사용한다. (확장 파티션의 경우 부팅 파티션으로 지정이 불가능)


이러한 단점에도 불구하고 상용 환경에서 큰 영향은 없었기 때문에 MBR이 지속 사용되었다.

하지만, 최근 빅데이터 저장 서버의 증가와 디스크 기술 발전에 따른 대용량 디스크 대중화로 2TB 이상의 파티션 생성이 필요한 환경이 되었다.

GPT(GUID Partition Table)은 최대 용량 8ZB을 지원하며 최대 파티션 128개를 지원한다.

추가로 GPT 파티션으로 부팅하기 위해서는 BIOS가 아닌 UEFI 부팅 설정이 필요하다.

GPT 파티션 생성

GPT 파티션을 생성하기 위해서는 일반적으로 사용하는 fdisk 명령어가 아닌

parted라는 명령어를 사용해야 한다.

[root@server ~]# parted /dev/sdb 

GNU Parted 3.1

Using /dev/sdb

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted)

파티션 생성은 parted 커맨드 내 mkpart 명령어를 통해 생성 가능하다.

ex) mkpart primary 1 8002GB 

mkpart PART-TYPE [FS-TYPE] START END     make a partition 

생성된 GPT 파티션을 print 명령어를 통해 확인 가능하다.

(parted) print 

Model: HPE LOGICAL VOLUME (scsi)

Disk /dev/sdb: 8002GB

Sector size (logical/physical): 512B/4096B

Partition Table: gpt

Disk Flags:
Number Start   End     Size   File system Name Flags

1     1049kB 8002GB 8002GB  

이후에는 일반 MBR 파티션과 같이 mkfs로 xfs 타입으로 포맷 후 /etc/fstab에 mount 하여 사용하면 된다.

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

[Linux] CentOS 7, rhel7 hostname 호스트네임 변경하기

CentOS 6버전 및 rhel6 버전에서는 /etc/sysconfig/network 파일 내 hostname이 변수로 저장되어 있었다.

7버전부터는 /etc/hostname 파일 내 hostname이 저장된다. 

권장되는 hostname 변경 방법은 hostnamectl 명령어를 통한 변경이다.

hostnamectl 사용법은 아래와 같다. 

ServerAfter는 변경될 호스트 네임을 임의로 지정한 값이다. 

변경된 호스트네임을 확인하려면 터미널 종료 후 재접속하면 된다. 

 

추가로, 위와 같이 명령어 실행 시 대문자가 적용되지 않고 ServerAfter 가 serverafterf로 모두 소문자로 변경되어 저장된다.

호스트네임에 대문자 적용을 원할 시 --static 옵션을 한 번 더 지정해준다. 

재접속 시 대문자가 적용되어 있다.

 

 

 



다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

[Linux] CentOS SFTP 서버 설정하기 - chroot로 디렉토리 제한 및 SSH와 포트 분리까지

SFTP는 보안 프로토콜을 사용하는 FTP서버이며, 원격 터미널 접속 프로토콜인 SSH와 동일하게 SSH 데몬하에서 동작한다.

여기서는

1) SFTP 접속을 위한 User 생성 및 접속 테스트

2) SSH 데몬 내 SFTP 서버용 포트 추가

3) SSH(22) 과 SFTP 서버용 포트 분리

4) Chroot를 활용한 홈 디렉토리 이동 제한

를 정리할 예정이다.

 

해당 문서를 정리에는 아래 Zetawiki 사이트가 큰 도움이 되었다.

https://zetawiki.com/wiki/SFTP%EB%A7%8C_%EB%90%98%EB%8A%94_%EA%B3%84%EC%A0%95_%EC%83%9D%EC%84%B1

 

1) SFTP 접속을 위한 User 생성 및 접속 테스트

 

  1. User생성

    SFTP용 User 생성 시 shell 관련 option에서 /sbin/nologin 을 설정하여

    쉘 권한은 제외하고 SFTP 및 FTP 접속 권한만 제공한다. 

    여기서 user는 test 라는 이름으로 진행한다.

    이후 passwd 명령어로 해당 유저에 패스워드를 할당한다.

     

  2. SSH 및 SFTP 접속 테스트

    1. (SSH)앞단에 Shell 관련 설정을 /sbin/nologin으로 지정했기 때문에 SSH 접속 시 아래와 같은 메시지가 발생한다.

    2. (SFTP) sftp 명령어(sftp test@localhost)를 통해 아래와 같이 SFTP 접속이 가능하다.

      현재는 chroot 설정이 되어 있지 않아, test 계정임에도 불구하고 외부 디렉토리 이동이 자유롭게 가능하다.

      이는 보안정책상 지양해야하며 chroot를 통해 디렉토리 이동에 제한 설정이 필요하다.

       

2) SSH 데몬 내 SFTP 서버용 포트 추가

SFTP 서버는 SSH 데몬을 통해 내 실행되기 때문에 Default로 SSH와 동일하게 22번 포트를 사용하여 서비스 된다.

SFTP 포트는 /etc/ssh/sshd_config 설정 변경을 통해 분리 가능하다.

 

여기서는 Server2(192.168.124.200)를 Client로 7777라는 Port를 SFTP로 사용예정이다.

  1. sshd_config 설정

    SFTP 서버를 위한 추가 포트 설정은 sshd_config 내 Port 값 추가를 통해 지원 가능하다.

Port 

Specifies the port number that sshd(8) listens on. The default is 22. Multiple options of this type are permitted.

위와 같이 설정 후 systemctl restart sshd 로 데몬을 재기동하면 아래와 같이 7777 포트로 SSH 접속이 가능하다.

 

3) SSH(22) 과 SFTP 서버용 포트 분리

현재 SSH 및 SFTP 데몬은 22 및 7777을 통해 제공되고 있다.

외부 클라이언트에 SFTP서버를 제공하며 방화벽 정책을 허용해줄 시 7777 그대로를 Open하면 해당 포트를 통한 외부의 터미널 접속이 가능해진다.

보안상의 위험을 사전 방지하고자 7777 포트는 SFTP 접속만 가능하도록 설정할 수 있다.

sshd_config 내 Match 룰설정을 통해 SFTP전용 포트 설정이 가능하며

SFTP 클라이언트 유저들이 서버를 마음대로 이동하지 못하도록 홈디렉토리 제어가 가능하다.

 

  1. SFTP 전용 데몬 포트 설정

    Match rule 내 ForceCommand 설정을 통해 가능하다.

    ForceCommand Specifying a command of internal-sftp will force the use of an in-process SFTP server that requires no support files when used with ChrootDirectory. The default is none.

     

    위와 같이 설정 시 SSH를 통해 접속을 시도하면 This service allows sftp connections only. 메시지가 출력되며 접속이 실패한다.

4) Chroot를 활용한 홈 디렉토리 이동 제한

위에서 봤던것과 같이 test 계정을 통해 sftp 접속 시 root나 외부 계정의 파일 현황을 그대로 조회할 수 있다.

SFTP 서버 운용상 보안의 Risk가 있기 때문에 test 계정이 SFTP 접속 시에는 test 홈 디렉토리 이외에는 이동하지 못하게 제어가 필요하다.

홈 디렉토리 설정은 sshd_config 내 Match의 chroot를 통해 설정 가능하다.

/etc/ssh/sshd_config 파일 내 아래와 같이 설정 시

/home/test 디렉토리는 SFTP를 접속 시 / 디렉토리와 동일 계위가 된다.

위와 같이 설정 후 데몬 재기동 시 

-> systemctl restart sshd

외부에서 SFTP 접속을 시도하면 Connection closed가 발생한다.

이를 해결하기 위해서는 SFTP의 홈 디렉토리로 설정한 /home/test 폴더의 소유권자를

root로 변경이 필요하다.

-> chown root:root /home/test

추가로 test 계정에서 접속 시 디렉토리 조회 권한을 갖기 위해 755 권한 설정을 수행한다.

 

변경 후에는 접속이 가능하다.

[root@server2 ~]# sftp -P 7777 192.168.124.100 root@192.168.124.100's password: Connected to 192.168.124.100. sftp>

 

이후 SFTP 업로드 및 다운로드로 운용 예정인 폴더 대상으로

test 그룹 설정 후 chmod 775로 쓰기 권한을 설정하여 운용 하면된다.

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

[Linux] CentOS7 Linux 설치용 USB 제작

2018. 6. 16. 09:42 - mr.november11

[Linux] CentOS7 Linux 설치용 USB 제작

DVD가 아닌 USB 내에 CentOS 설치용 iso 이미지 파일을 구워 설치 디스크로 만들 수 있다.

CentOS ISO이미지 파일 받기

USB 내 ISO이미지 굽기

(ISO 파일은 CD-ROM용 이미지 파일이라는 인식이 커서 굽기라는 표현자연스러운 것 같다..)

구글링으로 "USB Linux 설치" 키워드 검색 시 win32imager 라는 툴이 결과값으로 가장 많이 나온다.

하지만, 실제로 시도 시 위 프로그램으로는 Linux 서버에서 정상적으로 부팅되지 않는다..

그래서 추가로 구글링해본 결과 Rufus라는 프로그램을 찾았다.

Rufus는 Portable 방식도 지원하고 있으며 아래 링크를 통해 다운로드 가능하다.사용법은 크게 어렵지 않다.ISO이미지 파일을 선택한 후 별도의 설정 없이 시작 버튼을 클릭하면 알아서 잘 진행된다.



다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

[Linux] 오픈 가능한 최대 파일 개수와 현재 오픈 중인 파일 개수 확인 방법

오픈 가능한 파일 최대 개수

확인 방법

  • /proc/sys/fs/file-max 파일 또는 sytctl -a | grep file-max를 통해 확인 가능

변경 방법

  • /etc/sysctl.conf 파일 내 fs.file-max 값 수정
  • 값 적용 후 sysctl -p

 

오픈 중인 파일 수 확인

확인 방법

  • /proc/sys/fs/file-nr 파일 또는 sytctl -a | grep file-nr를 통해 확인 가능

 

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다