레이블이 Linux인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Linux인 게시물을 표시합니다. 모든 게시물 표시

2015년 5월 29일 금요일

TIP::linux root 암호 복구 방법

일어나서는 안되는 일이지만 가끔 일어나는 일이 root 암호를 잊는 것이다. 이 페이지를 찾아왔다면 암호를 잃어버려 화들짝 놀라 수명이 단축되는 느낌을 느꼈겠지만 걱정 마시라. (씨익)

다양한 이유가 있겠지만 정말 아무생각없이 설치하다가 또는 이전 관리자가 사라져 버리거나 해서 linux root 암호를 잃었을 때 복구방법을 설명 드리겠다. 참고로 난 지금 졸리다.

=-= zzZ

. note : CentOS 6 기준으로 설명하나 grub을 사용하는 linux는 대부분 비슷할 것이라고 생각된다. 아니면 말고..

우선 강제로 reboot 시킨다. 서버나 PC의 전원 버튼을 길게 눌러 껐다가 다시 켜거나 reset 버튼을 누른다. 전원을 뽑고 다시 연결하는 방법도 있다. 하드웨어와 linux가 친한 경우 전원버튼을 한 번만 살짝 누르면 자연스럽게 종료되기도 한다. 대부분의 비싼 x86 서버가 "한 번 살짝 눌러 OS에 종료 시그널 보내기 기능"을 지원하며, 요즘은 PC들도 잘 된다.

전원이 들어가고 팬(Fan)돌아가는 소리가 나면 매우 긴장하고 있다가 아래와 같은 화면이 보일 때 아무키나 누른다. 친절하게 상단에 아무키나 누르면 메뉴로 간다고 되어 있다. 지나쳤다면 잽싸게 Ctrl+Alt+Del.


메뉴 화면이 뜨고 그동안 설치했던 커널목록이 보인다. 아래에는 하나밖에 없다. yum update로 kernel이 업데이트 되었다면, 자주 update를 했다면 목록이 더 많을 수 있다. 아무거나 선택해도 되지만 우린 최신 커널이 좋으므로 제일 상단의 커널을 선택한다. (주의: 엔터를 누르면 안된다. 방향키로 선택만)


"e"키를 누르면 보통 아래와 같이 세개의 메뉴가 보인다. 방향키로 kernel로 시작하는 라인을 선택하고 또 "e"키를 누른다.


편집할 수 있는 페이지로 이동하고 커서가 보인다. 라인 제일 끝에 "single" 또는 "(숫자)1""쳐" 넣는다. 그리고 이 부분에서 누르고 싶었던 "엔터"를 누른다.


다시 아까봤던 화면으로 돌아오면 "b"를 누른다.


상단에 single user mode로 들어왔다는 표시가 보이고, 반가운 console이 보인다. ㅠㅠ


"passwd" 라고 치고, 엔터, 동일하게 두번 새 암호를 넣으면 root 로그인 암호가 변경된다. (현재 root이므로 무슨 짓이든 가능하다.)


그리고
>reboot

다시 재부팅 되고 로그인 화면이 보이면 변경된 암호로 로그인 할 수 있다. (감격 ㅠ^ㅠ)

root암호를 잊었을 때 외에도 linux 설정에 문제가 있어 부팅이 제대로 안되는 경우에 single-user mode를 활용할 수 있다. single-user mode에서 해결안되는 문제는 부팅 가능한 이미지 (DVD or USB)를 사용해서 rescue 모드로 부팅해야 한다.

. 주의 : 본인이 관리자가 아닌 서버에서 이러시면 곤란하다.

2015년 5월 27일 수요일

FIX::OutOfMemoryError: unable to create new native thread

OutOfMemoryError: unable to create new native thread 원인

OutOfMemoryError 문구만 봐서는 해당 에러가 메모리와 관련된 오류일 것이라고 생각하기 쉽다. 하지만 Java 1.6과 1.7에서 OS가 Thread를 생성해 주지 못할 때 OutOfMemoryError: unable to create new native thread 에러가 표시될 수 있다.
. 참고 : http://java.dzone.com/articles/outofmemoryerror-unable-create

Linux에서 사용자가 생성할 수 있는 최대 프로세스 개수를 확인하는 방법 중 하나는 ulimit 을 이용하는 것이다.

>ulimit -a
core file size                (blocks, -c) 0
data seg size               (kbytes, -d) unlimited
scheduling priority        (-e) 0
file size                      (blocks, -f) unlimited
pending signals            (-i) 62341
max locked memory       (kbytes, -l) 64
max memory size          (kbytes, -m) unlimited
open files                    (-n) 10240    
pipe size                     (512 bytes, -p) 8
POSIX message queues   (bytes, -q) 819200
real-time priority            (-r) 0
stack size                     (kbytes, -s) 10240
cpu time                     (seconds, -t) unlimited
max user processes        (-u) 1024    
virtual memory             (kbytes, -v) unlimited
file locks                      (-x) unlimited

프로세스 생성과 관련된 값은 "max user processes"이다.

해당값만 보고 싶다면
>ulimit -u
1024

Hard 설정 값을 보고 싶다면
>ulimit -Hu
2048

Java 프로세스가 자식 프로세스 모두 합쳐서 해당 값보다 많은 수의 Thread를 생성하려고 한다면 OutOfMemoryError: unable to create new native thread에러가 발생하게 된다.

max user processes 값 변경 방법

>ulimit -Hu 65535
>ulimit -Su 65535

위와 같이 할 경우 재부팅 되거나 세션이 새로 열리면 변경된 값이 적용되지 않는다.
재부팅이나 새 세션에도 해당값을 유지하려면 /etc/security/limits.conf 파일을 편집한 후 재부팅해야 한다.

>vi /etc/security/limits.conf
대략적으로 주석을 보면 어떻게 하는지 알 수 있다.

파일 제일 끝에 아래와 같이 추가한다. 이미 비슷한 라인이 있으면 편집한다.
*    hard    nproc    65535
*    soft    nproc    65535

특정 유저만 해당값을 설정하고 싶으면 '*'대신에 ID를 넣어준다.

hadoop    hard    nproc    65535
hadoop    soft    nproc    65535

hard는 최대로 생성할 수 있는 프로세스 수가 아니라 최대로 설정 가능한 제한값으로 root유저만 변경 가능하다. soft 값이 생성할 수 있는 최대 프로세스 수이며 root를 포함한 모든 유저는 hard값이하로만 설정 가능하다. (hard가 1024면 soft는 1024보다 클 수 없다.)
. 참고 : http://unix.stackexchange.com/questions/29577/ulimit-difference-between-hard-and-soft-limits

추가
. 파일 편집을 마친 후 재부팅 해야 해당 값이 적용된 다는 것을 잊지 말자.
. 해당 값을 너무 작게 설정하면 OS가 먹통이 될 수 있다. 복구하려면 rescue 나 single-user mode에서 /etc/security/limits.conf 파일을 편집해야 한다.
. max user processes의 최대값은 4,194,303이나 "sysctl kernel.pid_max"값에 따른다. CentOS 6.5의 kernel.pid_max 값은 32,768이다. 즉 ulimit에서 65,535로 변경해도 32,768이다.
(참고 : http://unix.stackexchange.com/questions/124040/how-to-determine-the-max-user-process-value)

참고
http://stackoverflow.com/questions/9361816/maximum-number-of-processes-in-linux

2014년 10월 27일 월요일

Linux 파일명에서 rc

리눅스 파일을 보다보면 rc라는 단어를 포함한 파일명을 보게된다.

XXX.rc
XXXX-1.8.rc5

rc는 2가지 뜻이 있다.

1. Run Commands - 뭔가를 시작할 때 필요한 정보 또는 명령을 포함한 파일이다. 예를 들어 OS가 부팅될 때 호출되는 스크립트 파일명에 붙을 수 있다.
2. Release Candidate - Stable한 버전을 릴리즈 하기 전 검증이 덜 된 배포본이다. 사용가능한 상태이나 완벽한 상태라고 하기엔 부족한상태. rc상태에서 버그가 고쳐지거나 하면 rc뒤에 숫자가 올라간다. 검증 완료되면 rc가 떨어지고 stable한 버전이 된다.


http://en.wikipedia.org/wiki/Run_commands
http://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate

2012년 12월 24일 월요일

yum update 실행시 멈추는 경우 해결 방법

yum update를 진행하다가 더이상 진행이 되지 않는 경우가 있다. 원인은 여러가지가 있을 수 있으나 내 경험상 아래의 경우가 대부분이다.
  a. update중 ssh 세션이 종료
  b. Ctrl+c 로 update 진행을 중단한 경우
  c. kill -9 등으로 프로세스를 강제 종료한 경우

위와 같은 경우 발생하는 문제는 rpmdb가 꼬이거나, lock 상태로 남아있어 더이상 진행이 되지 않으나 로그나, 출력에서는 아무런 결과가 보이지 않을 수 있다.

아래에 몇 가지 해결 방법을 적어 본다. 모두 root 유저로 작업해야 한다.

1. yum-utils사용
>yum clean
>yum-complete-transaction (명령이 없을 경우 "yum install yum-utils" 실행)
>yum update

위와 같은 방법으로 해도 update시 계속 같은 패키지에서 멈춘다면 rpmdb를 의심해 본다.

2. Rebuild RPMDB
우선 해당 rpm 파일을 찾는다. yum install 또는 update시 yum은 rpm파일을 로컬에 저장한 후 패키지를 설치한다. yum의 임시 파일 저장 디렉토리를 찾아간다. yum의 cache 디렉토리는 RHEL6의 경우 /var/cache/yum이다.

>cd /var/cache/yum
>find ./ -name PACKAGE-NAME.rpm
./base/packages/PACKAGE-NAME.rpm

rpm파일을 찾았다면 rpm 명령으로 설치를 시도해 본다.

>rpm -Uvh /var/chache/yum/base/packages/PACKAGE-NAME.rpm

설치중 "rpmdb: Lock table is out of available locker entries"라는 오류가 발생하면서 설치가 되지 않는다면 이전에 패키지를 설치하던 중 프로세스가 비정상 종료되어 db가 업데이트 되지 않아서 발생하는 문제다. 아래와 같이 db를 rebuild해준다.

>tar czvf rpm-backup.tar.gz /var/lib/rpm (기존 파일들을 백업)
>rm -rf /var/lib/rpm/__db.00* (db파일들 삭제)
>rpm --rebuilddb

시간이 좀 지나면 새 "__db.XXX"파일이 만들어진다. 다시 설치 실패한 패키지를 설치한다.

>rpm -Uvh /var/chache/yum/base/packages/PACKAGE-NAME.rpm

설치가 제대로 됐다면 다시 1번 과정을 시도해 본다.

2012년 11월 22일 목요일

yum history 사용하기

yum history 명령을 사용해서 그동안 사용했던 yum  명령들을 확인할 수 있다.
(아래 예제들은 CentOS 6에서 테스트 되었지만 RedHat계열(Fedora, RHEL 등)에서 똑같이 동작한다. 5버전에는 적용되지 않았다.)

>yum history
Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    47 | root              | 2012-08-25 16:09 | Install        |    1
    46 | root              | 2012-08-20 17:00 | Install        |    1
    45 | root              | 2012-08-20 09:07 | Install        |    1
    44 | root              | 2012-08-20 09:06 | Install        |    3
    43 | root              | 2012-08-20 09:05 | Install        |    8
    42 | root              | 2012-08-05 15:51 | Install        |    1
    41 | root              | 2012-08-05 15:47 | Install        |    1
    40 | root              | 2012-08-05 15:41 | Install        |    2
    39 | root              | 2012-08-05 15:24 | Install        |    1
    38 | root              | 2012-08-05 15:18 | Install        |    1
    37 | root              | 2012-08-05 15:14 | Install        |    3
    36 | root              | 2012-08-05 14:53 | I, U           |  195 EE
    35 | root              | 2012-08-05 14:52 | Install        |    3
    34 | root              | 2012-01-19 11:20 | I, U           |   42 EE
    33 | root              | 2012-03-07 15:22 | Install        |    8
    32 | root              | 2011-12-26 14:04 | Install        |    1
    31 | root              | 2011-12-26 13:11 | Install        |   18
    30 | root              | 2011-12-26 11:31 | Install        |    1
    29 | root              | 2011-12-26 11:18 | Install        |   12 EE
    28 | root              | 2011-12-21 17:59 | Install        |    1
history list

yum 명령을 사용해서 패키지를 설치하거나 업데이트를 하면 ID가 하나씩 증가한다. 각 항목의 세부사항을 알고 싶은면 info 옵션을 사용한다.

>yum history info 47
Loaded plugins: fastestmirror
Transaction ID : 47
Begin time     : Sat Aug 25 16:09:43 2012
Begin rpmdb    : 586:e318ebe25b7f3c641234d8aec7f55b25e005ba00
End time       :                           (0 seconds)
End rpmdb      : 587:870ce250959935e6a5968fbb5928c1378daedda7
User           : root
Return-Code    : Success
Command Line   : install dosfstools
Transaction performed with:
    Installed     rpm-4.8.0-27.el6.x86_64                       @base
    Installed     yum-3.2.29-30.el6.centos.noarch               @base
    Installed     yum-plugin-fastestmirror-1.1.30-14.el6.noarch @base
Packages Altered:
    Install dosfstools-3.0.9-4.el6.x86_64 @base
history info

만약 실행했던 yum 명령에 실수가 있었다면 rollback 옵션으로 되돌릴 수 있다. 위에서 확인한 항목중 ID 47에서 46으로 되돌릴 경우 아래와 같이 한다.

>yum history rollback 46
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.tt.co.kr
 * extras: centos.tt.co.kr
 * updates: centoso4.centos.org
base                                                     | 3.7 kB     00:00
extras                                                   | 3.5 kB     00:00
nodejs-stable                                            | 2.9 kB     00:00
updates                                                  | 3.5 kB     00:00
updates/primary_db                                       | 4.0 MB     00:08
Rollback to transaction 46, from Mon Aug 20 17:00:17 2012
  Undoing the following transactions: 47
    Install dosfstools-3.0.9-4.el6.x86_64 @base
Resolving Dependencies
--> Running transaction check
---> Package dosfstools.x86_64 0:3.0.9-4.el6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================
 Package             Arch            Version               Repository      Size
=======================================================================
Removing:
 dosfstools          x86_64          3.0.9-4.el6           @base          197 k

Transaction Summary
=======================================================================
Remove        1 Package(s)

Installed size: 197 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : dosfstools-3.0.9-4.el6.x86_64                                1/1
  Verifying  : dosfstools-3.0.9-4.el6.x86_64                                1/1

Removed:
  dosfstools.x86_64 0:3.0.9-4.el6

Complete!

yum 으로 설치한 패키지를 rpm -e 명령으로도 삭제할 수 있다.
>rpm -e dosfstools

하지만 패키지 관리를 잘 하려면 yum의 도움을 받는 것이 더 편하다고 생각된다.

주의 : 
  1. 패키지에 따라 의존성 문제로 되돌릴 수 없는 경우가 있다.
  2. 설정파일들은 패키지 설치/삭제 시 되돌리지 못할 수 있으므로 백업을 받아 놓는다.
  3. RHEL, CentOS 5버전은 적용 안됐다. 6이상에서만 사용가능.

2012년 11월 20일 화요일

Local yum Repository로 RHEL 업데이트 하기

RedHat Enterprise Linux는 RedHat의 RHN(RedHat Network)을 등록하지 않으면 공식 업데이트 서비스를 받을 수 없다. RHN은 1년에 백만원정도 하는 유지보수 계약을 통해서 받을 수 있는데 이는 소프트웨어 구입비용과 달리 공식 업데이트 사용과 문제 발생시 지원관련된 비용이다. 유지보수비용이 문제라면 Local Network에 최신 상태로 업데이트 할 수 있는 yum Repository를 구축할 수 있다. 소프트웨어 자체는 무료이기 때문에 이는 합법적이다.
하지만 한가지 아쉬운 점은 RHEL의 최신 ISO를 받을 수 있는 기간이 계정별로 30일밖에 안된다는 것이다.

Local Repository의 이점
Local Repository를 구축하면 다음과 같은 장점이 있다.

1. 최초 설치시 설치하지 않은 패키지를 쉽게 설치할 수 있다.
만약 http패키지를 최초 설치시 빼먹었다면 RHN에 등록된 것 같이 "yum install httpd" 명령으로 쉽게 설치 가능하다. Repository가 없다면 DVD를 사용하거나 RPM파일을 복사해서 설치를 해야한다. 또한 의존성을 따지면서 추가로 많은 RPM들을 깔아야 할테지만 yum명령을 쓰면 의존성이 걸린 패키지까지 알아서 설치해 준다.

2. 업데이트가 있다면 RHN에 등록하지 않고 쉽게 업데이트 할 수 있다.
추가 패키지 설치와 마찬가지로 yum명령을 사용해서 의존성 문제를 쉽게 해결할 수 있다. 단 Local Repository에 최신 버전이 올라가 있어야 한다.

3. 꼭 최신 패키지가 필요하지 않을 때 버전을 고정시킬 수 있다.
최신 RHEL이 6.3버전이고, 안정성 문제로 6.2에서만 머무르고 싶을 때 Local Repository를 6.2 버전으로 만들어 놓는다면 "yum update"를 사용하더라도 6.2버전으로만 업데이트 할 수 있다. 또한 2개 버전을 올려놓고, 업데이트할 서버에서 .repo파일의 baseurl옵션의 타겟만 바꿔서 사용할 수 있다. (repo파일 관련내용은 아래 구축.4 내용 참고)

RHEL 외 CentOS, Fedora도 같은 방법으로 Local Repository를 구축하고, 쉽게 yum명령을 사용할 수 있다. Local Repository는 RHN등록을 피하면서, yum 명령을 사용할 수 있는 유용한 수단이다.

Local Repository 구축단계
구축 단계는 아래와 같다.

1. 최신 RHEL Binary DVD ISO 다운로드
2. 업데이트할 서버가 접속가능한 네트워크에 http 또는 ftp 서버 구성
3. http 또는 ftp 홈 디렉토리 아래에 새 디렉토리를 만들고 1번에서 다운로드 받은 ISO를 mount 또는 풀어서 옮김
4. 업데이트 받을 서버의 /etc/yum.repos.d/ 디렉토리에 새로 구축한 yum Repository 설정파일 생성 및 "yum repolist" 명령으로 확인
5. 업데이트 실행

1. 최신 RHEL Binary DVD ISO 다운로드

업데이트 하려는 RHEL의 최신 버전의 Binary DVD ISO파일을 RedHat Software & Download Center에서 다운로드 받아야 한다. 계정별로 30일간 다운로드 가능하며, 다운로드 방법은 다음 링크를 참조한다.

* RHEL ISO Download 방법

2. 업데이트할 서버가 접속가능한 네트워크에 http 또는 ftp 서버 구성

어떤 네트워크(Public or Private)든 상관없이 업데이트할 서버가 접속한 네트워크에 http 또는 ftp 서버를 구축한다. ftp 프로토콜이 더 빠르긴 하겠지만 http서버 구성이 더 간단하다. 이미 http 또는 ftp서버가 구축되어 있다면 이번 단계는 넘어간다.

httd서버를 구성할 경우 서버역할을 할 서버에서 아래와 같이 명령을 실행한다.
>yum -y install httpd

iptables를 사용한다면 iptables에 http포트 예외 추가
>iptables -A INPUT -p tcp --dport 80 -j ACCEPT


3. http 또는 ftp 홈 디렉토리 아래에 새 디렉토리를 만들고 1번에서 다운로드 받은 ISO를 mount 또는 풀어서 옮김

2번과 같이 했다면 httpd의 홈 디렉토리는 /var/www/html이다. 아 디렉토리 아래에 아래와 같이 디렉토리를 생성한다.
>mkdir -p /var/www/html/rhel

1번에서 다운로드 받은 ISO를 위에서 만든 디렉토리에 mount 또는 풀어서 복사 한다.


mount할 경우(ISO파일이 /root에 있다고 가정)
>mount -o loop /root/rhel-server-VERSION-x86_64-dvd.iso /var/www/html/rhel

복사할 경우
>mount -o loop /root/rhel-server-VERSION-x86_64-dvd.iso /mnt
>cp -r /mnt/* /var/www/html/rhel


웹브라우저에서 "http://SERVER-IP/rhel"주소로 들어가면 복사한 파일들을 확인할 수 있다. 파일이 보이지 않는다면 아래 사항을 점검한다.

A. 2번 방법으로 httpd서버를 새로 구성했다면 파일이 제대로 복사되지 않았을 것이다. cd /var/www/html/rhel로 이동해서 파일들이 제대로 있는지 확인한다.
B. 이미 http 또는 ftp가 구축되어 있던 서버에 파일을 복사했다면 설정파일에서 브라우징 가능하게 설정되어 있는지 확인한다. httpd의 경우 /etc/httpd/conf/httpd.conf파일에서 아래 부분을 수정한다. (Indexes 추가)

<directory "/var/www/html">
#  Options FollowSymLinks
  Options Indexes FollowSymLinks
</directory>

C. 방화벽을 점검한다. "iptables -F"와 "setenforce 0"명령을 실행 후 파일들이 보인다면 방화벽 설정 문제다. 방화벽에 대해 잘 모른다면 앞의 두 명령을 실행해서 업데이트 한다. 방화벽 복구 방법은 "service iptables restart"와 "setenforce 1"이다.

4. 업데이트 받을 서버의 /etc/yum.repos.d/ 디렉토리에 새로 구축한 yum Repository 설정파일 생성 및 "yum repolist"명령으로 확인

업데이트 할 서버의 /etc/yum.repos.d/ 디렉토리 아래에 새로 구축한 yum Repository 정보를 만들어 준다. Repository 정보를 가진 파일은 .repo 확장자를 가져야 한다. 아래는 예시를 따라 .repo파일을 만든다.

>vi /etc/yum.repos.d/local.repo
[LOCAL]
name=Local Repo
baseurl=http://serverip/rhel
enabled=1


  • [LOCAL] : repo id로 공백없이 마음에 드는 값을 넣어준다.
  • name : repo name으로 공백 상관없이 간단히 Repository를 설명한다. 업데이트에 영향을 주지 않는다.
  • baseurl :  ftp를 사용할 경우 http대신 ftp로 시작하는 url을 넣어 준다. serverip는 2번에서 구성한 서버의 ip 또는 domain name을 넣어준다.
  • enabled : [LOCAL] Repository 사용 여부를 결정하는 항목이다. RHN에 등록되지 않았다면 같은 디렉토리에 있는 공식 업데이트 Repository 관련 파일내용에서 enabled 항목이 0으로 되어 있는 것을 확인할 수있다. (0:사용안함, 1:사용)

위 파일을 생성했다면 아래 명령으로 제대로 설정 되었는지 확인한다.
>yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
LOCAL                                                 | 4.0 kB     00:00
repo id                  repo name                                        status
LOCAL                  Local repo                                        3,585
repolist: 3,585

repo id와 repo name이 파일에 설정한대로 나왔다면 OK
제대로 나오지 않는다면 브라우저에서 baseurl을 넣어본다. 파일들이 보이면 설정파일에 오타가 있는지 확인하고, 파일이 보이지 않으면 3번 과정을 확인한다. iptables 또는 SELinux가 포트를 막을 수 있으므로 "iptables -F" 또는 "setenforce 0" 명령으로 방화벽을 모두 제거하고 다시 시도해 본다.

5. 업데이트 실행

4번까지 제대로 되었다면 업데이트를 실행한다.
>yum -y update

kernel등 일부 패키지는 재부팅해야 적용이 된다.
>yum -y update kernel && reboot

daemon등 일부 패키지는 서비스를 재시작해야 적용이 된다.
>yum -y update httpd && servece httpd restart

2012년 11월 15일 목요일

Samba Error : 'Address aleady in use'

아무런 이유없이 이런 메시지를 볼 수 있다. 난 정말 제대로 했다고 믿는데 말이다. 심호흡 10,000번으로 마음을 가라앉히고 서버에서 아래 명령을 실행하자!

>smbpasswd -a user_name

1. 위와같이 samba 사용자를 추가해서 된다면 Address와는 전혀 관련 없다. 
2. Samba사용자는 useradd로 server사용자 계정을 추가한다고 자동적으로 추가되지 않는다. 위 명령으로 꼭 추가해 주어야 한다.
3. Samba만 사용하는 사용자를 추가하려면 보안을 위해 콘솔이나 ssh 접속을 못하게 만들자. 추가하는 방법은 "useradd -s /sbin/nologin user_name"이다. 

끝~

FIX :: ssh 접속이 느리고, /var/log/messages에 systemd-logind.service failed. 메시지가 남을 때

ssh 접속이 느릴 때가 있습니다. 보통은DNS가 제대로 설정되지 않았는데 /etc/ssh/sshd_config에 UseDNS가 yes로 되어 있을 때 발생합니다. 위와 같을 경우 /etc/ssh/sshd_config파일에서 아래와 같이 수정 후 ...