[22.12.30] 49일차 [리눅스]

W·2022년 12월 30일
0

국비

목록 보기
73/119

파일/디렉터리 소유권

  • ls -l
    -l 옵션은 파일 목록의 상세 속성값을 조회하는 옵션값

[root@DBsrv ~]# ll

1d2rwx3r-x4r-x

  • 1
    d: 디렉터리 경로
  • 2
    rwx : 경로/파일의 소유자의 허가권
  • 3
    r-x : 그룹의 허가권
  • 4
    r-x : 그 외 사용자의 허가권

chmod

파일/디렉터리의 허가 수준을 변경할 수 있는 명령어

상대권한 변경

  • chmod u|g|o +|- 권한종류
    ex) chmod o+r ttd.cnf

  • 임의 파일 test 생성

[root@DBsrv ~]# touch test

[root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg

-rw-r--r--. 1 root root 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos


  • test 파일의 그룹의 권한에 w(쓰기)권한을 추가

[root@DBsrv ~]# chmod g+w test

[root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg

-rw-rw-r--. 1 root root 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos


  • test 파일에 대해서 other 사용자에 대해서 r(읽기) 허용을 제외

[root@DBsrv ~]# chmod o-r test

[root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg

-rw-rw----. 1 root root 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos

직접권한 변경

  • chmod 777 대상파일

[root@DBsrv ~]# chmod 755 test

[root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg

-rwxr-xr-x. 1 root root 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos

파일/디렉터리 소유권

[root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg

-rwxr-xr-x. 1 root root 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos.

  • 첫번째 root : 파일의 소유자 (기본 값은 해당 파일을 생성한 사용자가 소유자가 된다)
  • 두번째 root : 소유자가 속한 그룹

파일/디렉터리에 대한 권한은 대상이 소유자/그룹/그외사용자로 정해져 있으므로 필요한 권한에 따라 필요하다면 적절하게 소유권한을 변경해야 할 경우도 있음.

chown

파일/디렉터리의 소유권을 변경하는 명령어

  • chown 계정명 파일명

[root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg

-rwxr-xr-x. 1 root root 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos


  • test 파일의 소유권을 root → oracle 로 변경
    [root@DBsrv ~]# chown oracle test
    [root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Desktop
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Documents
drwxr-xr-x. 2 root root 53 Dec 15 03:13 Downloads
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Music
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Pictures
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Public
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Templates
-rwxr-xr-x. 1 oracle root 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos

chgrp

파일/디렉터리의 그룹을 변경하는 명령어

  • chgrp 그룹명 파일명

[root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg

-rwxr-xr-x. 1 oracle root 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos

  • test 파일의 그룹을 oinstall로 변경

[root@DBsrv ~]# chgrp oinstall test

[root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg

-rwxr-xr-x. 1 oracle oinstall 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos

소유자/그룹을 한번에 변경

  • chown 소유자.그룹 파일명

  • test 파일의 소유자/그룹을 root로 변경

[root@DBsrv ~]# chown root.root test

[root@DBsrv ~]# ll

total 4
-rw-------. 1 root root 1351 Dec 15 02:36 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Desktop
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Documents
drwxr-xr-x. 2 root root 53 Dec 15 03:13 Downloads
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Music
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Pictures
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Public
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Templates
-rwxr-xr-x. 1 root root 0 Dec 30 15:03 test
drwxr-xr-x. 2 root root 6 Dec 15 03:11 Videos

RPM(Redhat Package Manager)

  • 기존 리눅스 환경에서는 프로그램의 설치 시 소스코드를 컴파일하는 작업들을 수행해야 하는 어려움이 있었음.
  • 이를 해결하기 위해서 redhat 사에서는 설치과정을 간편화한 rpm의 방식을 개발하였음.
  • rpm 방식은 패키지 파일을 작성한 사용자가 미리 설정한 방식대로 작업을 자동으로 수행해주는 형태의 프로그램 설치 방법을 지원하여 상대적으로 사용이 간편해지는 장점을 가지게 되었음.
  • 단점으로는 사용자가 설치 과정 상에서 변경하는 것이 불가능해지고 정해진 설정값으로만 설치를 진행하게 되는 부분.
  • 또한 rpm파일을 통한 프로그램의 설치에서 사전 설치가 필요한 패키지의 파악이 불가능하며 미리 설치가 되어 있지 않다면 이후의 과정에서 정상적인 설치가 보장되지 않는 문제가 발생할 수 있다. 이런 문제들을 의존성 문제라고 한다.

RPM 파일을 통한 설치

rpm -Uvh 패키지명.rpm
-U(대문자) : 기존 설치된 동일 패키지가 없는 경우 새로 설치를 진행, 동일 패키지가 있는 경우 이를 업그레이드하여 설치를 진행해주는 옵션
v : 설치 과정을 출력
h : 화면의 하단에 설치 진행도 바를 표시해주는 옵션

RPM 명령어로 패키지 삭제

rpm -e 패키지명
e : 패키지를 삭제할 때 사용하는 옵션

설치된 패키지 조회

패키지 명으로 현재 설치된 패키지 조회
[root@DBsrv ~]# rpm -qa mysql*

mysql80-community-release-el7-7.noarch
mysql-community-server-8.0.31-1.el7.x86_64
mysql-community-client-plugins-8.0.31-1.el7.x86_64
mysql-community-client-8.0.31-1.el7.x86_64
mysql-community-libs-8.0.31-1.el7.x86_64
mysql-community-libs-compat-8.0.31-1.el7.x86_64
mysql-community-common-8.0.31-1.el7.x86_64
mysql-community-icu-data-files-8.0.31-1.el7.x86_64

[root@DBsrv ~]# rpm -qa *jdk*

java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
java-1.8.0-openjdk-headless-1.8.0.352.b08-2.el7_9.x86_64
copy-jdk-configs-3.3-11.el7_9.noarch
java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64

패키지 상세 정보 조회

[root@DBsrv ~]# rpm -qi mysql-community-server-8.0.31-1.el7.x86_64

Name        : mysql-community-server
Version     : 8.0.31
Release     : 1.el7
Architecture: x86_64
Install Date: Thu 15 Dec 2022 03:17:48 AM KST
Group       : Applications/Databases
Size        : 308783250
License     : Copyright (c) 2000, 2022, Oracle and/or its affiliates. Under GPLv2 license as shown in the Description field.
Signature   : RSA/SHA256, Wed 14 Sep 2022 05:31:50 PM KST, Key ID 467b942d3a79bd29
Source RPM  : mysql-community-8.0.31-1.el7.src.rpm
Build Date  : Wed 14 Sep 2022 04:18:01 AM KST
Build Host  : pb2-el7-20.regionaliad02.mysql2iad.oraclevcn.com
Relocations : (not relocatable)
Packager    : MySQL Release Engineering <mysql-build@oss.oracle.com>
Vendor      : Oracle and/or its affiliates
URL         : http://www.mysql.com/
Summary     : A very fast and reliable SQL database server
Description :
The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
and robust SQL (Structured Query Language) database server. MySQL Server
is intended for mission-critical, heavy-load production systems as well
as for embedding into mass-deployed software. MySQL is a trademark of
Oracle and/or its affiliates

The MySQL software has Dual Licensing, which means you can use the MySQL
software free of charge under the GNU General Public License
(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
licenses from Oracle and/or its affiliates if you do not wish to be bound by the terms of
the GPL. See the chapter "Licensing and Support" in the manual for
further info.

The MySQL web site (http://www.mysql.com/) provides the latest news and
information about the MySQL software.  Also please see the documentation
and the manual for more information.

This package includes the MySQL server binary as well as related utilities
to run and administer a MySQL server.

YUM/DNF

  • YUM은 RHEL7/Centos7에서 사용하는 패키지 관리 도구
  • DNF는 RHEL8 기반 이상의 버전에서 사용되는 YUM의 개선판 도구로 볼 수 있으며, 사용 명령어는 거의 동일하다고 볼 수 있음.
  • RPM 패키지가 가지는 의존성 문제를 해결할 수 있는 도구
  • RPM 패키지에서 요구하는 미리 설치된 패키지가 있다면 YUM 온라인 패키지 저장소에서 확인해서 누락된 요소를 받아서 자동으로 설치해줌으로 의존성으로 인한 문제를 해결 할 수 있다.
  • 리포지터리(온라인 패키지 저장소)는 인터넷 상에 존재하기 때문에 YUM을 통한 패키지 관리시 인터넷에 연결이 되어 있어야 한다.
  • 리포지터리는 운영체제 버전에 따라서 패키지 구성이나 버전이 다르며, 최신 버전이 아닌 구버전이 등록되어 있는 경우도 있음.

YUM/DNF을 통한 패키지 설치

리포지터리를 통한 패키지 설치

  • yum install 패키지명 -y
  • -y 옵션은 설치 과정에서 물어보는 진행여부에 항상 yes로 답하여 자동 진행하는 옵션이다.
  • 패키지명으로 설치를 진행하는 경우 리포지터리에 패키지 명으로 조회하여 관련 파일들을 다운로드하여 자동으로 설치까지 진행해준다.

rpm파일을 통한 패키지 설치

  • yum install rpm패키지.rpm
    yum을 통하여 rpm패키지 파일을 설치하게 되면 누락된 요소를 확인하여 리포지터리를 통하여 의존성문제 없이 설치할 수 있게끔 주변 패키지들도 자동으로 설치를 해준다.

YUM/DNF로 패키지 업데이트

  • yum update 패키지명 -y
  • 패키지명을 입력하여 업데이트하는 경우에는 입력한 패키지만 업데이트를 해준다.
  • 패키지명을 입력하지 않고 명령을 실행하는 경우 설치된 모든 패키지들에 대해서 업데이트를 진행하게 된다.
  • 서버 환경에서는 안정성이 최우선 고려사항이므로 특별한 이슈가 없다면 업데이트를 하지 않고 유지하되 업데이트가 필요한 상황인 경우 미리 호환성 여부를 확인 후 필요한 패키지에 대해서만 업데이트를 진행해준다.

YUM/DNF로 패키지 삭제

  • yum remove 패키지명

YUM/DNF로 패키지 정보 조회

  • yum info 패키지명
    [root@DBsrv ~]# yum info mysql-community-server-8.0.31-1.el7.x86_64

YUM/DNF로 패키지그룹 조회

[root@DBsrv ~]# yum grouplist

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * epel: mirror-jp.misakamikoto.network
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
Installed Environment Groups:
   GNOME Desktop
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Cinnamon Desktop
   MATE Desktop
   Basic Web Server
   Virtualization Host
   Server with GUI
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Cinnamon
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Educational Software
   Electronic Lab
   Fedora Packager
   General Purpose Desktop
   Graphical Administration Tools
   Haskell
   LXQt Desktop
   Legacy UNIX Compatibility
   MATE
   Milkymist
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
   TurboGears application framework
   Xfce
Done

패키지 그룹 설치하기

  • yum groupinstall "패키지그룹명"
  • YUM에서는 여러 패키지를 한번에 설치할 때 각 패키지명들 사이를 공백으로 구분한다.
  • 그룹패키지의 경우 패키지명에 공백이 포함된 경우가 많으므로 패키지명을 ""큰따옴표로 묶어 이름을 표시해줘야 오류가 발생하지 않는다.

리포지터리 정보 캐시 삭제하기

  • 기본적으로 기존 리포지터리에서 조회한 정보들은 캐시로 저장하여 보관하다가 다음 명령어 사용시 활용한다.
  • 가끔 리포지터리 서버가 불안정하거나 또는 접속이 되지 않는 경우에 캐시된 값을 그대로 사용한게 문제인 경우가 있기 때문에 그런 경우 캐시를 삭제하는 작업을 해주는 것이 방법 중 하나이다

[root@DBsrv ~]# yum clean all

0개의 댓글