Linux 10

다원·2023년 1월 12일
0

su&sudo

일반 사용자와 root 관리자

root 관리자의 경우 어느 사용자의 홈 디렉터리에 들어가서 작업을 할 수 있음
일반 사용자의 경우 다른 사용자의 홈 디렉터리 작업을 할 수 없음

su

사용자 전환 할 때 사용
su 사용자_명 > 사용자 패스워드를 넣으면 해당 사용자로 전환됨

su만 사용할 경우 su root로 해석되어 root의 패스워드가 필요
su 명령어의 경우 사용자가 완전히 전환되는것
su -c를 할 경우 사용자가 관리자 권한으로 한 번 작업하는 것을 의미
(su 이후 사용자를 지정하지 않았기 때문에 root사용자의 패스워드를 입력)

sudo su

sudo su를 사용할 경우 일시적으로 root 사용자의 권한을 얻음
root로 전환되는데(관리자 권한) /etc/sudoers파일에 해당 사용자가 등록되어있으면
사용자 패스워드를 이용하여 root로 들어갈 수 있음

sudoers

일반사용자가 sudo or su 명령어를 사용할 수 있도록 관리하는 파일
해당 파일에 저장되지 않은 일반 사용자는 사용자 권한으로 접속 할 수 없음

  • 일반 사용자가 사용자 권한 접속할 수 있도록 sudo 권한 부여
  • wheel 그룹을 이용하여 권한 관리
    여러 사용자에게 권한을 줄 경우 그룹을 생성하고 사용자에게 그룹을 지정해주고 해당 그룹에 권한을 부여 -> 그룹에 포함된 사용자는 같은 권한을 가지게 됨
  • paul 사용자에게 wheel 그룹을 추가
  • paul 사용자에서 sudo 명령을 사용하여 일시적으로 사용자 권한
    접속 시 root의 패스워드가 아닌 사용자의 패스워드를 사용

ubuntu의 sudoers

사용은 centos와 동일하나 ubuntu의 경우 sudoers 파일의 그룹은 sudo
사용자가 sudo su 로 일시적으로 root권한으로 변경할 때 사용자 패스워드를 사용

사용자& 그룹 속성

finger, id, groups,getent

getent(get entires)

Linux 시스템에서는 어느 명령어를 실행하면 내부적으로 /etc/nsswitch.conf 파일에 정의된 엔트리를 데이터베이스와 라이브러리 파일에서 찾아 접속하여 명령어를 실행
-> getent: 엔트리를 보이는 명령어

  • 엔트리: /etc/아래에 위치한 엔트리는 getent 명령어 하면 직접 해당 명령어를 실행
  • /etc/nsswitch.conf 파일은 원격지 호스트의 passwd 파일에 접속할 때도 사용
    -> NIS에 대한 정보를 확인 할 수 있음
  • 엔터프라이즈 Linux 서버: 도메인으로 네트워크에서 사용자의 도메인 로그인 인증 정보를 보유하고 있다가, 로그인 시 대신 정보를 제공하여 인증하는 NIS를 사용
    -> 도메인 전체 사용자의 로그인 계정 관리

PAM

Pluggable Authentication Module
PAM은 /etc/pam.d에 있는 모듈별 파일로 인증을 관리
crond, login, passwd, reboot 등 존재
개별적으로 해당 모듈에 대한 사용자 인증을 설정할 수 있으나,
pam.d 아래에 있는 파일로 인증 설정 해줄 경우 작업 효율과 보안 증진 오류 최소화
개별적으로 관리하는 원래 설정파일 보다, pam.d 우선 적용

  • pam.d 디렉터리 밑에 하위 파일들
  • sshd 원본 파일에서 PAM 사용 여부 확인 가능
  • PAM에서의 sshd 파일을 확인

pam.d 사용하여 관리자 권한 접근 제한

사용하기 전 root 사용자의 패스워드를 다른 사용자들이 알 경우 관리자 권한으로 언제든 접속 할 수 있음
pam.d > su 파일을 설정하여 root 사용자로 들어오는 사용자를 지정할 수 있음

  • pam.d > su
    required: 인증이 거부되기 전에 비록 PAM이 이 서비스에 등록된 다른 모든 모듈들을 요구함에도 불구하고 실패할 경우 인증을 거부
    pam.d로 관리자 권한을 제한하고 싶을 경우 required의 주석을 해제(필수적)

    주석을 풀 경우 pam.wheel.so use_uid: wheel.so(wheel 소스파일)저장된 사용자만 접근 가능

    centos를 wheel 그룹으로 변경해주면 su root 할 경우 root 패스워드로 접속 할 수 있음

    그러나 abc 사용자의 경우 root 사용자의 패스워드를 알아도 접속 할 수 없음

    추가로 abc의 경우 sudoers에 사용자 권한이 없기 때문에 su 명령어도 쓸 수 없게됨

    abc의 그룹을 wheel를 추가하고 abc(모든 컴퓨터에서) centos(해당 사용자의):wheel(해당 그룹을) bin/cat, bin/kill(명령을 실행 할 수 있음) 을 사용할 수 있음

그룹관리

  • 그룹 생성 groupadd
  • 그룹 삭제 groupdel
  • 그룹 설정 groupmod -n(new name) -p(password)
  • chgrp 사용자명 파일명: 해당 파일의 사용자 그룹을 변경
  • 사용자와 그룹 등의 속성을 보이는 finger, id, groups, getent

/etc/nsswitch.conf

원격지 호스트 passwd 파일 접속 시 사용
NIS 서버

  • system-config-users
    User Manager tool

프로세스

프로세스 명령어

프로세스 확인 명령어:ps, pstree, top, pidof, pgrep, pmap
특정 작업의 프로세스를 확인:fuser
프로세스 종료 명렁어: kill, killall 등
프로세스 우선순위 지정: nice, renice
메모리 : free, sync
커널 정보의 uname
백그라운드 &, bg, fg, %, jobs, disown
시스템 사용자: w, who, users,last, lastb 등

메모리

메모리 관리

cash에 저장된 메모리를 반환해서 시스템이 사용하게 해야함
주기적인 관리를 위해 crond 작업을 수행함
-e: vi 편집기

서비스

여러 서비스를 실행하고, 클라이언트 머신에서 다양한 서버 서비스에 접속해서 작업
서버는 서비스를 데몬 형태로 실행

서비스 수행

해당 프로그램 설치 >
구성 파일 변경 > 방화벽 서비스 포트 open > SELinux 설정 permissive getenforce 확인
service 서비스 명 start 하여 서비스 데몬을 실행시킨 뒤 netstate -nltp 명령어를 통해 서비스 포트 확인하고 실행 레벨을 정해지구 클라이언트들은 해당 서비스를 접속 시켜서 서비스를 이용

서비스를 실행

service network start/stop/restart/status 등
/etc/(rc.d/)init.d/서비스_명 start 방식

리소스 제한

여러 클라이언트들이 동시에 한 서버에 연결되면 세션이 많아지면, 많은 리소스를 사용하게되어 서버의 성능을 떨어트릴 수 있음
연결 세션 수를 제한하고, 서버 리소스에 대한 한계를 설정하여 성능 유지
사용자들이 사용하는 서버의 HDD 사용량은 disk quotas로 지정
cpu와 ram, process 용량은 /etc/security/limits.conf

profile
공부일지,

0개의 댓글