나처럼 윈도우10을 사용하면서 우분투(리눅스) 환경도 함께 사용하는 경우(WSL), 

우분투가 윈도우 위에서 돌아가는 듯 보이지만 엄연히 별개의 운영체제가 분리되어 동작하는 중이었다. (당시 이에 관한 이해가 부족)


가령, Node.js를 설치하는 방법도 윈도우에서는 https://nodejs.org/에서 인스톨러 파일(.exe 등)을 다운받아 설치한다고 대부분의 교재에서 확인할 수 있고,

우분투 등 리눅스에서는 npm 등 패키지 매니저를 이용해 설치하는 것이 선호되는 방법이다.


Node.js를 설치하면 윈도우의 기본 경로는 보통

C:\Program Files\nodejs

다.

 

윈도우에서 설치된 우분투 리눅스의 npm으로 설치한 경로는 내 경우엔

/usr/bin

이다.

 

따라서 윈도우용과 우분투용을 별개로 생각하고 설치해줘야 한다는 것이다.

 

MySQL의 경우에도 저번 글에 언급했지만, 각각 설치를 해주었는데 둘 다 기본 포트가 3306으로 설정되기 때문에, 먼저 설치한 것이 선점하면 나머지 하나가 켜지지 않는 문제가 생겼다.

 

설치 과정에서 포트를 변경해주는 것이 가장 편하고, 이미 설정했다면 설정 파일을 수정해서 변경해주면 된다.

(하나를 끄고, 사용하는 방법도 있지만 매번 켜고 끄는 것이 번거롭기 때문에 포트를 변경해주는 것이 나을 것이다.)

 

 

각설하고,

 

Node.js 실습 과정에서 난 처음부터 우분투 환경에서 실습을 진행하였다.

저번 글처럼 MySQL의 포트를 변경했는데, 윈도우는 그대로 3306을 사용하기로 하고, 우분투의 것을 3307로 변경했다.

데이터베이스 실습을 하면서 예제 데이터를 우분투의 MySQL에 만들어두었다.

 

Sequelize를 사용하는데 MySQL의 포트를 지정해주지 않았더니 기본 포트인 3306을 인식해서 윈도우용을 잡아 데이터가 나오지 않았다. (윈도우 MySQL에는 예제 데이터를 넣지 않았다.)

 

따라서, 포트를 변경하려면 Sequelize의 config/config.json 파일을 수정해야 한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
{
  "development": {
    "username""root",
    "password""1234",
    "database""nodejs",
    "host""127.0.0.1",
    "port"3307,
    "dialect""mysql",
    "operatorsAliases"false
  },
  ...
}

port만 추가해주니 잘 된다.

 

끝.

'개인 공부 > Node.js' 카테고리의 다른 글

윈도우10 WSL에서 bcrypt 설치 오류 해결 방법  (0) 2018.12.26

Moving Data




* dump 파일 생성하기




export/import 실습)




full export/import 실습)



DATA PUMP 실습)


'스마트웹&콘텐츠 개발자 과정 > Oracle' 카테고리의 다른 글

Workshop II 남은 부분 수업  (0) 2018.07.24
admin 수업 마지막  (0) 2018.07.03
Admin 수업 - 백업 실습  (0) 2018.06.21
admin  (0) 2018.06.20
Admin  (0) 2018.06.14

* 복습

수업 들어가기 전에 할 일.


1. 리눅스 서버 부팅

2. oracle/oracle 로그인

3. 새 터미널 실행

4. $ lsnrctl start → 리스너 프로세스 시작

5. $ sqlplus / as sysdba

   SQL> startup → DB 시작

   SQL> exit

6. $ emctl start dbconsole → EM DB 홈페이지 시작



$ cd $ORACLE_HOME(반드시 대문자로) -> 오라클의 홈 디렉토리(오라클 제품이 설치된 최상위 디렉토리)로 이동


[oracle@localhost db_1]$ pwd

/u01/app/oracle/product/11.2.0/db_1


[oracle@localhost sqlplus]$ cd admin/

[oracle@localhost admin]$ ls

glogin.sql  help  libsqlplus.def  plustrce.sql  pupbld.sql

[oracle@localhost admin]$ vi glogin.sql 


아래 내용 추가하고 저장하고 나가기

SET sqlp "_USER> "

SET linesize 120




3. Configuring the Oracle Network Environment



* 파일 : $ORACLE_HOME/network/admin/listener.ora

- 이름

- Network 주소

  (Host Protocol, Port)

- DB 정보

  (ORACLE_HOME, DB 이름)


* 관리도구 : Net manager

            Net Configuration assistant

            lsnrctl


$ lsnrctl

$ netmgr (넷 매니저 실행)


[oracle@localhost admin]$ ls

listener.ora  samples  shrept.lst

[oracle@localhost admin]$ cat listener.ora 

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.


LISTENER1 =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1522))

  )


SID_LIST_LISTENER1 =

  (SID_LIST =

    (SID_DESC =

      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

      (SID_NAME = orcl)

    )

  )


ADR_BASE_LISTENER1 = /u01/app/oracle



생성한 listener1 시작

$ lsnrctl

LSNRCTL> start listener1


종료

LSNRCTL> stop listener1


리스너를 통한 접속

$ sqlplus hr/hr@listener1



※ 리스너의 역할은 오로지 '접속' 해 주는 것이다.

   접속이 된 후에는 아무런 간섭을 하지 않는다.


실습 시작할 때 리스너 먼저 띄우고, DB를 띄웠는데

DB가 떠 있는 상태에서 리스너를 내렸다가 올리면 DB가 등록되는 시간이 약간 걸린다.


[oracle@localhost admin]$ netmgr


넷 매니저를 실행해서 Profile 설정을 바꿔준다.


[oracle@localhost admin]$ ls

listener.ora  samples  shrept.lst  sqlnet.ora  tnsnames.ora

[oracle@localhost admin]$ cat sqlnet.ora 

# sqlnet.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora

# Generated by Oracle configuration tools.


NAMES.DIRECTORY_PATH= (TNSNAMES)


ADR_BASE = /u01/app/oracle


→ 실제 운영중인 DB에서는 sqlnet.ora의 내용이 가장 길다.

  sqlnet.ora는 클라이언트, 서버 양측에 다 존재한다(필요하다).



※ 네트워크 기능을 잘 활용하면 원격 DB에 접속하지 않고도 내용을 볼 수 있다.

   Database link라는 객체가 그런 역할을 한다.

   select * from member@link 이름


ex)















☆ 스샷 남기면서 쓰고픈데 따라가기 바빠 그럴 시간이 없다 ㄷㄷ



'스마트웹&콘텐츠 개발자 과정 > Oracle' 카테고리의 다른 글

Admin  (0) 2018.06.14
Admin 수업  (0) 2018.06.12
DBA 수업  (0) 2018.06.07
6/5 오후  (0) 2018.06.05
SQL (6/4 오후)  (0) 2018.06.04

레드햇 엔터프라이즈 리눅스 5로 시작



[oracle@localhost ~]$ lsnrctl start


LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 07-JUN-2018 17:11:29


Copyright (c) 1991, 2009, Oracle.  All rights reserved.


Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...


TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Log messages written to /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))


Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date                07-JUN-2018 17:11:30

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Log File         /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))

The listener supports no services

The command completed successfully

[oracle@localhost ~]$ sqlplus


SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 7 17:12:14 2018


Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Enter user-name: hr

Enter password: 

ERROR:

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

Linux Error: 2: No such file or directory

Process ID: 0

Session ID: 0 Serial number: 0



Enter user-name:      

[oracle@localhost ~]$ 

[oracle@localhost ~]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 7 17:14:09 2018


Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to an idle instance.


SQL> startup

ORACLE instance started.


Total System Global Area  623546368 bytes

Fixed Size                  1338308 bytes

Variable Size             390071356 bytes

Database Buffers          226492416 bytes

Redo Buffers                5644288 bytes

Database mounted.

Database opened.

SQL> conn hr/hr

Connected.

SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

[oracle@localhost ~]$ emctl start dbconsole

Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0 

Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.

https://localhost.localdomain:1158/em/console/aboutApplication

Starting Oracle Enterprise Manager 11g Database Control .......... started. 

------------------------------------------------------------------

Logs are generated in directory /u01/app/oracle/product/11.2.0/db_1/localhost.localdomain_orcl/sysman/log 

[oracle@localhost ~]$ 





※ 앞으로 수업 들어가기 전에 할 일.


  1. 리눅스 서버 부팅
  2. oracle/oracle 로그인
  3. 새 터미널 실행
  4. $ lsnrctl start → 리스너 프로세스 시작
  5. $ sqlplus / as sysdba
    SQL> startup → DB 시작
    SQL> exit
  6. $ emctl start dbconsole → EM DB 홈페이지 시작


'스마트웹&콘텐츠 개발자 과정 > Oracle' 카테고리의 다른 글

Admin 수업  (0) 2018.06.12
Admin 수업  (0) 2018.06.08
6/5 오후  (0) 2018.06.05
SQL (6/4 오후)  (0) 2018.06.04
5/31 오후  (0) 2018.05.31

소프트웨어 패키지 관리 (계속)



3. 파일 압축 관리


1) tar (Tape ARchive)

  • 파일과 디렉토리를 하나의 파일로 묶어주는 아카이브(archive)를 생성해주는 도구
  • 원래 테이프 장치에서 아카이브를 생성하기 위해 설계
  • 압축 기능이 없는 것은 아니지만, 단순히 파일들을 꾸러미 형태로 묶는 것이 주된 기능
  • 사용법

- 형식

$ tar Function + Options  아카이브명.tar  디렉토리/파일


- Function

  • c : 새로운 아카이브 생성
  • x : 아카이브 해제
  • u : 아카이브 비교하여 새로운 파일 추가
  • t : 아카이브에 있는 파일 확인


- Options

  • f : tar 아카이브 파일 지정
  • v : 아카이브 생성 및 해제시 정보 출력
  • z : tar.gz 형태로 압축 또는 해제 (확장자는 붙여줘야 함)
  • j : tar.bz2 형태로 압축 또는 해제 (확장자는 붙여줘야 함)


  • cf 옵션 (생성 및 파일 지정)




  • v 옵션 (아카이브 생성 과정 보임)




  • x 옵션 (해제)




  • r 옵션 (새로운 디렉토리와 파일 추가)




  • -C 옵션 (특정 경로에 아카이브 해제)




tar에서 가장 중요한 것, cvf와 xvf



  • z 옵션 (gzip 유틸리티로 압축)





2) gzip & gunzip

  • gzip 유틸리티는 파일을 압축하고 푸는 데 사용되는 GNU 압축 유틸리티
  • gzip에 의해서 압축되는 파일은 .gz 확장자


3) bzip2 & bunzip2

  • gzip보다 높은 압축률, gzip에 비해 압축 해제 속도는 느림.




4. RPM(Redhat Package Manager)을 이용한 패키지 관리


1) 명령

  • -i 패키지명 : 설치
  • -U 패키지명 : 업그레이드
  • -e 패키지명 : 제거
  • -q 패키지 목록 : 질의
  • -V 패키지 목록 : 검증
  • -y 패키지 목록 : 검증
  • -b 패키지명 : 패키지 생성



5. YUM(Yellowdog Updater Modified)을 이용한 패키지 관리


1) RPM의 패키지 의존성 문제 해결

- RPM 패키지 설치 시 자동으로 의존성 문제 처리

- RPM 패키지를 안전하게 설치, 제거, 업그레이드


yum install <패키지 명>


'스마트웹&콘텐츠 개발자 과정 > GNU Linux' 카테고리의 다른 글

리눅스 기초  (0) 2018.05.29
리눅스 기초 (5/28 월)  (0) 2018.05.28
리눅스 기초 (5/25 금)  (0) 2018.05.25

5. 계정 사용자 정보 변경


1) usermod

-c 내용 : 사용자의 설명 필드 변경

-d 홈 디렉토리 : 사용자의 홈 디렉토리 변경

-e 만료일 : pw의 만료 일자 변경

-G 그룹 : 사용자의 그룹 변경

-s 기본 쉘 : 사용자의 로그인 쉘 변경

-u UID : 사용자의 UID 변경

-l 사용자명 : 사용자의 계정명 변경


[root@localhost ~]# usermod -s /bin/test ydvt5

[root@localhost ~]# 

[root@localhost ~]# cat /etc/passwd | grep ydvt5

ydvt5:x:1006:1008::/users/ydvt5:/bin/test



6. 사용자 계정 바꾸기


1) su (Substitude User)



7. 그룹 관리


1) 그룹 생성

groupadd [-g gid] [-r] [-f] 그룹명

-g : 그룹의 고유 ID

-r : 그룹의 ID를 500 이하의 값으로 자동 지정

-f : 강제로 그룹 추가


2) 자신이 소속된 그룹 확인

# groups


3) 그룹 삭제

# groupdel [그룹명]


4) 그룹 속성 변경

groupmod [-g gid] [-n 변경될 그룹명] 기존 그룹명

-g : 그룹의 고유 ID

-n : 변경될 그룹명




소프트웨어 패키지 관리



1. 개요

>> 리눅스 소프트웨어 형태

- tar라는 아카이브 도구에 의해서 묶여진 소스 코드 형태

- RPM 도구로 만들어진 RPM 바이너리 형태


>> tar

- 원하는 옵션을 부여하여 바이너리 파일을 만들어 설치 가능

- 바이너리 패키지가 배포되지 않은 최신 버전의 소프트웨어를 설치하거나 업데이트할 때 유용

- 모든 UNIX 계열 OS에서 사용 가능


>> RPM

- 레드햇 리눅스사에서 개발한 소프트웨어 패키지 관리 도구

- 누구나 쉽게 소프트웨어를 설치할 수 있는 장점

- 다른 패키지와 의존성 문제를 가지기 때문에 의존성 패키지가 설치되지 않은 경우 설치하는 불편함이 존재


>> YUM, APT

- RPM과 같은 의존성 문제 해결

- 미지의 RPM 패키지를 설치하고자 할 경우 RPM 도구보다 선호



2. 패키지 확장자 종류


확장자

패키지 도구

설명

 .tar.gz(.tgz)

 tar+gzip

 tar 아카이브 파일을 gzip으로 압축한 파일

 .tar.bz2

 tar+bzip2

 tar 아카이브 파일을 bzip2로 압축한 파일

 .rpm

 rpm

 rpm으로 만들어진 패키지

 .tar

 tar

 tar로 만들어진 아카이브 파일

 .deb

 dpkg

 데비안 패키지 도구에 의해 만들어진 파일

 .patch, .diff

 

 패치 파일


※ 윈도우 시스템처럼 자동으로 확장자가 붙는 것이 아니라, 사용자가 확장자명을 지정

'스마트웹&콘텐츠 개발자 과정 > GNU Linux' 카테고리의 다른 글

리눅스 기초 (5/30 오전)  (0) 2018.05.30
리눅스 기초 (5/28 월)  (0) 2018.05.28
리눅스 기초 (5/25 금)  (0) 2018.05.25

시스템 명령어(계속)



* 파이프 (|) : 한 명령의 출력을 다른 명령의 입력으로 리디렉션

ex) ls -al | sort | more


* df (Disk File system) : 하드 디스크의 용량이 얼마나 남아있는지 확인

>> df [옵션]

-a : 디폴트로 생략된 0 블록 크기의 파일 시스템도 보여줌

-i : 파일 크기를 블록 대신 inode로 디스크 정보를 보여줌

-k : 파일 크기를 킬로바이트(kb)로 보여줌

-T : 파일 시스템의 종류와 함께 디스크 정보를 보여줌

-t : fstype 값을 가진 파일 시스템에 대한 디스크 정보

-h : 쉬운 용량 표시 단위로 표기 (예:1G, 25M 1K)


* du (Disk Usage) : 사용한 디스크 용량에 대한 정보 제공

>> du [옵션][디렉토리명]

-a : 해당 경로에 대한 사용한 디스크 용량 표시

-k : 용량 표시 단위를 킬로 바이트(kb)로 표시

-m : 용량 표시를 메가 바이트(MB)로 표시


* find원하는 파일 위치 찾기

-amin n : n분 전에 마지막으로 액세스된 파일

-atime n : n*24시간 전에 마지막으로 액세스된 파일

-cmin n : n분 전에 마지막으로 변경된 파일

-ctime n : n*24시간 전에 마지막으로 변경된 파일

-empty : 비어있는 파일이나 디렉토리

-name <pattern> : Pattern으로 주어진 파일

-newer 파일 : “파일”보다 최신의 파일


* grep (Global Regular Expression Print) : 지정된 파일에 대해서 일치하는 라인 출력

>> grep [파일명(들)]

ex) cat /etc/passwd | grep fedora




2. 시스템 상태 확인 명령



1) 프로세스(Process)의 개념


* 프로세스(Process) : 주 기억장치에서 운영체제에 의해 실행 중인 프로그램

* 프로세스 번호 : 시스템에서 자동적으로 프로세스 식별번호(PID : Process Identifier Number)를 할당

>> 0 ~ 30,000개



2) 프로세스 상태 확인 명령


* ps (Process Status) : 프로세스의 상태 확인

>> ps [옵션][인수]

-a : All, 사용자의 단말기에 관련된 모든 프로세스의 상태정보 표시

-j : “job” 형식으로 표시

-l : Long, 자세하게 모든 상태 정보를 표시

-u 사용자명 : User, 기술된 사용자의 상태 정보를 표시

-s : 시그널 포맷으로 표시

-m : 메모리 정보 표시

-x : 터미널 제어 없이 프로세스 현황 표시

※ ps 옵션은 -(하이푼) 잘 안 붙이고 사용.


* kill 프로세스 종료

>> kill [옵션] PID(들)

-1, -HUP : 프로세스를 재활성화

-9 : 프로세스 강제 kill

ex) ps ax | grep cupsd



3) 그 외 시스템 상태 확인 명령


* finger

- 시스템 사용자의 개인 정보를 나타내는 명령

- 상대방에게 메일을 보내기 위하여 메일을 수신할 사람의 login 명을 찾는 용도로 사용

- 여러 명이 사용하는 Multi-User Mode에서 다른 사용자에 대한 정보를 알려주며, who 명령보다는 정보들이 자세하게 나타남

ex) $ finger –s fedora


>> finger 옵션

-s : 간단한 형식으로 출력

-l : 자세한 형식으로 출력

-p : 설정된 계획을 제외하고 출력시킬 때 사용


>> finger의 필드와 의미

Login : login 할 때의 사용자 id

Name : 사용자의 이름

TTY : 터미널 이름

Idle : 아무 일도 하지 않는 시간

When : login한 시간

Where : 원격 시스템에서 login한 경우 원격 시스템의 호스트 이름


* tty : 단말기명 확인


* whereis : 명령어의 경로명 확인

>> whereis [명령어]


* time : 명령어의 실행 시간 측정

>> time [명령어]


* ping : 원격지 호스트의 동작 여부 확인

>> ping [원격지 호스트명]




사용자 계정 관리




1. 계정(account)의 개요

>> 건물명 Linux

>> 504호 주택 

- 계정 생성 (adduser)

- 주소 : /home/504

- 소유권 이전



2. 사용자 계정 생성


1) adduser

# adduser(or useradd) 계정명

ex)

# adduser ydvt

# cat /etc/passwd | grep ydvt  ->  /etc/passwd 파일에서 ydvt 키워드와 일치하는 줄 출력


2) adduser 옵션

-c 설명 : 패스워드 파일에 새로운 사용자 설명 추가

-d 디렉토리 : 새 계정에 대한 디렉토리 위치 지정

-e 유효기간 : 지정된 날짜에 사용자의 계정 삭제

-f 비활성일수 : 패스워드가 만기된 후 계정이 영구히 말소될 때까지의 시간

-u uid : 사용자의 ID 지정

-s shell : 사용자의 로그인 shell 지정

-n : 사용자 계정 추가 기본 모드를 지정하지 않을 때

-G [그룹, …] : 사용자를 기본 그룹 이외의 다른 그룹에 추가할 때


ex)

# adduser ydvt1 -c "Developer Course in Yedam"

실습)

[root@localhost ~]# adduser ydvt1 -c "Developer Course in Yedam"

[root@localhost ~]# cat /etc/passwd | grep ydvt1

ydvt1:x:1002:1002:Developer Course in Yedam:/home/ydvt1:/bin/bash

계정명|패스워드|PID|          설명          | 계정 위치 |  쉘(shell)


# mkdir /users

# adduser –d /users/ydvt2 ydvt2

# cat /etc/passwd | grep ydvt2

ydvt2:x:1003:1003::/users/ydvt2:/bin/bash

※ /users라는 디렉토리가 없는 상태에서 /users/ydvt2 디렉토리를 ydvt2 사용자의 홈 디렉토리로 지정하면 계정이 생성되지 않음

실습)

[root@localhost ~]# mkdir /users

[root@localhost ~]# adduser -d /users/ydvt2 ydvt2

[root@localhost ~]# cat /etc/passwd | grep ydvt2

ydvt2:x:1003:1003::/users/ydvt2:/bin/bash


# adduser ydvt3 –u 530 –d /users/ydvt3

실습)

[root@localhost ~]# adduser ydvt3 -u 530 -d /users/ydvt3

[root@localhost ~]# cat /etc/passwd | grep ydvt3

ydvt3:x:530:1004::/users/ydvt3:/bin/bash


# adduser ydvt4 –u 540 –d /users/ydvt4 –s /bin/false

실습)

[root@localhost ~]# adduser ydvt4 -u 540 -d /users/ydvt4 -s /bin/false

[root@localhost ~]# cat /etc/passwd | grep ydvt*

ydvt:x:1001:1001::/home/ydvt:/bin/bash

ydvt1:x:1002:1002:Developer Course in Yedam:/home/ydvt1:/bin/bash

ydvt2:x:1003:1003::/users/ydvt2:/bin/bash

ydvt3:x:530:1004::/users/ydvt3:/bin/bash

ydvt4:x:540:1005::/users/ydvt4:/bin/false


* 새로 생성된 계정 디렉토리에 있는 숨김 파일은 계정 추가시 /etc/skel 디렉토리 내에 있는 파일들이 사용자 홈 디렉토리로 복사됨.


3) adduser 명령 기본 설정값 변경

* 사용자 생성 명령어의 기본 설정값 확인

# useradd -D     (= adduser -D)

실습)

[root@localhost ~]# adduser -D -b /users

[root@localhost ~]# 

[root@localhost ~]# useradd -D

GROUP=100

HOME=/users

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes


# adduser –D –s /bin/false

※ shell을 false로 바꿔버리면, 접속(로그인) 불가...

실습)

[root@localhost ~]# adduser -D -s /bin/false

[root@localhost ~]# 

[root@localhost ~]# adduser -D

GROUP=100

HOME=/users

INACTIVE=-1

EXPIRE=

SHELL=/bin/false

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes



3. 사용자 계정 삭제


1) userdel

# userdel ydvt4

/users/ydvt5 디렉토리는 삭제되지 않음

# cd /users

# rm –r ydvt5

# userdel –r ydvt5


* 계정 서비스 보류 및 재서비스

- /etc/passwd의 두 번째 필드 값 ‘*’표시

- 재서비스할 경우 ‘*’ 문자 삭제


* 계정 발급하더라도 로그인 불가능

- /etc/passwd의 /bin/bash  →  /bin/false (or /sbin/nologin)


4. 계정 패스워드 지정 및 변경


1) passwd 파일 구조

/etc/shadow 파일에 암호화된 형태로 안전하게 저장.


2) passwd 변경 (시스템 관리자)

실습)

[root@localhost users]# adduser ydvt5

[root@localhost users]# passwd ydvt5

ydvt5 사용자의 비밀 번호 변경 중

새  암호:

잘못된 암호: The password is shorter than 8 characters

새  암호 재입력:

passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.


3) passwd 변경 (사용자)

실습)

[root@localhost users]# su - ydvt5

[ydvt5@localhost ~]$ passwd

ydvt5 사용자의 비밀 번호 변경 중

ydvt5에 대한 암호 변경 중  

(현재) UNIX 암호:

새  암호:

새  암호 재입력:

passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.


* 사용자가 패스워드 변경할 경우 유의사항

- 숫자로만 지정 불가

- 사전적인 쉬운 단어로 지정 불가

- 6자 이상

- 이전에 사용하던 패스워드 지정 불가

- 여러 문자와 숫자 조합이 가장 좋음


4) Shadow Password System

실습)

[ydvt5@localhost ~]$ su -

암호:

[root@localhost ~]# pwunconv

[root@localhost ~]# cat /etc/passwd | grep root

root:$6$lsRpERiSxLnCFuWm$.2z9ktq5DGoIwNdoSsHvyZ9kWu3MsASJBwyZOUsEBvY05iBxH0w.y6DmH26Xs5tw7oSr2EmY2eSbL7WEth/P0.:0:0:root:/root:/bin/bash

operator:*:11:0:operator:/root:/sbin/nologin

[root@localhost ~]# cat /etc/shadow | grep root

cat: /etc/shadow: 그런 파일이나 디렉터리가 없습니다

[root@localhost ~]# pwconv

[root@localhost ~]# cat /etc/shadow | grep root

root:$6$lsRpERiSxLnCFuWm$.2z9ktq5DGoIwNdoSsHvyZ9kWu3MsASJBwyZOUsEBvY05iBxH0w.y6DmH26Xs5tw7oSr2EmY2eSbL7WEth/P0.:17679:0:99999:7:::

[root@localhost ~]# cat /etc/passwd | grep root

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin


5) 패스워드 관리 (chage)

# chage [옵션] [설정 내용] 사용자 계정

-l : chage 설정 내용 확인

-m : 새로운 pw를 변경할 수 있는 최소 일 수, 0은 언제나 변경 가능

-M : 유효한 pw의 최대 일수

-W : 사용자가 pw를 바꿀 때까지 경고할 일 수

-I : pw 유효기간이 경과된 후 사용자의 계정이 비활성화될 일 수

-E : 사용자가 계정을 사용할 수 있는 유효기간 (연도/월/일)

-d : 사용자가 pw를 변경한 마지막 일자


실습)

[root@localhost ~]# chage -l ydvt5

마지막으로 암호를 바꾼 날 : 5월 28, 2018

암호 만료 :안함

암호가 비활성화 기간 :안함

계정 만료 :안함

암호를 바꿀 수 있는 최소 날 수 : 0

암호를 바꿔야 하는 최대 날 수 : 99999

암호 만료 예고를 하는 날 수 : 7

[root@localhost ~]# chage -M 15 ydvt5

[root@localhost ~]# chage -l ydvt5

마지막으로 암호를 바꾼 날 : 5월 28, 2018

암호 만료 : 6월 12, 2018

암호가 비활성화 기간 :안함

계정 만료 :안함

암호를 바꿀 수 있는 최소 날 수 : 0

암호를 바꿔야 하는 최대 날 수 : 15

암호 만료 예고를 하는 날 수 : 7


'스마트웹&콘텐츠 개발자 과정 > GNU Linux' 카테고리의 다른 글

리눅스 기초 (5/30 오전)  (0) 2018.05.30
리눅스 기초  (0) 2018.05.29
리눅스 기초 (5/25 금)  (0) 2018.05.25

* 파일 시스템 관리


1. 파일 시스템의 기능

파일의 생성, 수정, 제거 기능

파일 공유 기능

여러 종류의 접근 제어 기법 제공

파일간의 정보 전송 기능

복구 기능

심볼릭 링크 기능

암호화 및 복호화 기능


2. 파일의 종류

유닉스 시스템은 확장자 개념 자체가 없음

1) 보통 파일(Ordinary File)

2) 디렉토리 파일(Directory File) = 윈도우의 폴더 개념

3) 특수 파일(Special File)

- 대부분 /dev 디렉토리에 존재


3. 리눅스 시스템 디렉토리 구조

1) 루트 디렉토리 (/)

2) 부트 디렉토리 (/boot)

3) 시스템 설정 파일 디렉토리 (/etc)

4) 기본 실행 파일이 있는 바이너리 디렉토리 (/bin)

5) 디바이스 디렉토리 (/dev)

6) 사용자 계정 디렉토리 (/home)

등등


4. 허가권과 소유권

1) 형식

drwxr-xr-x  3 root root 4096  5월 23 11:17 test

파일 유형 / 파일 허가권(소유자/그룹/기타 사용자) / 링크 수 / 파일 소유자 이름 / 파일 소유 그룹 이름 / 파일 크기(byte) / 마지막 변경 날짜, 시간 / 파일 이름


2) 허가권

>> 파일의 접근 허가 권한 의미

- 읽기(read: r)

- 쓰기(write: w)

- 실행(execute: x)

- 디렉토리 파일과 일반 파일에서의 허가권은 다름


* <su>와 <su ->의 차이

>> su 뒤에 -을 붙이면 사용자의 홈 디렉토리로 이동

ex)

su - : 관리자 홈으로 이동(/root)

su - fedora : fedora 유저의 홈으로 이동(/home/fedora)



3) chmod : 권한 변경, 8진수 및 기호와 부호 이용




>> 디렉토리 파일의 허가권
- 디렉토리 파일은 x(실행) 허가권을 뺏으면 접근이 불가능해진다.


4) chown : 소유권 변경


5) chgrp : 그룹만 변경
* umask
- default : 022
666-022 = 664
777-022 = 775

6) ln(LiNk) : 바로 가기
- 하드 링크 = 물리적 링크
- 소프트 링크 = 기호적 링크 = 심볼릭 링크




* 시스템 명령어

1. 명령어 표준 형식

1) 파일 이름 생성
* 파일명 길이
 - 14자 (System V)
 - 255자 (BSD)
* 파일명 수정 시 고려사항
 - 대소문자 구분 : 매우 중요함
 - 파일명은 가급적 의미 부여
 - 특수문자는 가급적 피할 것
 - 파일명은 해당 디렉토리에서 사용하지 않는 이름 선택
 - 디렉토리명은 가급적 대문자
 - .(dot)로 시작하는 파일명은 숨겨진 파일

2) 시스템 명령어
>> who (or w) : 현재 로그인된 사용자를 보여줌
 - who의 옵션
 i : Idle Time 보여줌

>> who am i (or whoami)

>> 입출력 방향 전환
- 출력 리디렉션 (>)

- 추가 리디렉션 (>>)

- 입력 리디렉션 (<) : 쓸 일 없음. 그렇지만 알아두자.


'스마트웹&콘텐츠 개발자 과정 > GNU Linux' 카테고리의 다른 글

리눅스 기초 (5/30 오전)  (0) 2018.05.30
리눅스 기초  (0) 2018.05.29
리눅스 기초 (5/28 월)  (0) 2018.05.28

+ Recent posts