본문 바로가기

How to/컴퓨터

웹서버 나만의 NAS (4) CentOS yum 기본 명령어와 권한 문제

yum

    앞서 리눅스에 기본적인 서버 프로그램들을 설치하고 구동하는 방법을 알아보았다. 이번 포스트에서는 리눅스를 다루기 위해 필요한 아주 기본적인 명령어들만을 다루려고 한다. 우리의 경우 CentOS 7을 깔았기 때문에, 다들 yum을 통해 패키지를 다운받았을 것이다. 바로

$ sudo yum install [PACKAGE_NAME]

이런 명령어를 통해서 말이다. 그렇다면 rpm의 의존성 문제를 해결하는 차원에서 나온 yum을 통해 어떻게 패키지들을 관리할 수 있는지 알아보겠다.


$ sudo yum update

이 명령어를 통해 설치된 패키지들을 업데이트할 수 있다.


$ sudo yum upgrade

이 명령어는 패키지 뿐만 아니라 시스템 업그레이드를 동반한다.


$ yum list

이 명령어는 저장소에서 모든 패키지와 그룹 리스트를 불러온다. 조금 끔찍해보이지만 grep을 이용하면 검색어와 관련된 리스트만 긁어올수있다. sudo yum list | grep [KEYWORD]


$ yum search [KEYWORD]

이 명령어는 위에 list와 grep을 이용한 명령어와 비슷하지만 조금 다르다. 위는 list 형식으로 출력하고 이 명령어는 summary까지 검색, 출력해준다. 차이는 직접 해보면 더 와닿는다.


$ yum list installed

이 명령어는 설치한 패키지의 리스트를 출력한다.


$ yum list update

이 명령어는 업데이트가 필요한 패키지의 리스트를 출력한다.


$ yum check-update

이 명령어는 비슷하게 업데이트가 필요한 패키지를 체크한다.


$ yum info [PACKAGE_NAME]

특정 패키지의 정보를 불러온다. 패키지 이름을 붙히지 않으면 저장소에서 모든 패키지 정보를 불러온다. ㅎㄷㄷ


$ sudo yum history

이 명령어를 통해 여태것 내가 했던 yum내역을 볼 수 있다.


$ sudo yum history info [번호]

아까 명령어로 봤던 리스트에서 번호를 찾아 입력하면 그 번호번째 수행한 yum의 자세한 정보를 볼 수 있다.


$ sudo yum history undo [번호]

이 명령어를 통해 내가 했던 yum명령어를 취소 할 수 있다. 이럴 경우 같이 설치된 의존성 패키지들도 전부 삭제된다.


$ sudo yum remove [PACKAGE_NAME]

특정 패키지를 삭제한다. histoy undo로 삭제를 취소할 경우 다시 설치한다.


$ sudo yum autoremove

쓰이지않는 의존성 파일들을 삭제한다. 보통 remove로 특정 패키지를 날리고, auotremove로 쓰이지 않는 의존성 파일도 같이 날릴 수 있다.


컴퓨터 끄기

     물리적으로 컴퓨터를 그냥 꺼버리면 컴퓨터에 무리가 간다. 그렇기 때문에 꼭 시스템을 종료하고, 전원을 내려야한다.

$ sudo shutdown -h now

지금 당장 시스템을 종료하고 전원을 끈다는 명령어이다. 컴퓨터를 끄는 행위는 상당히 중요한 일 중 하나이다. 다른 유저가 서버에 접속해서 작업 중일지 알 수 없다. 그래서 보통 shutdown을 하기 전에 서버가 곧 종료될 것임을 알리는 명령어와 몇분후 끌 것인가에 대한 명령어들이 있다. 하지만 그런 복잡한 업무를 우리 초보 레벨에서 할 거라고 생각하지 않고, 바로 끌수 있는 명령어만 알아본다. 앞서 이야기 했듯이, 컴퓨터를 끄는 행위는 상당히 중요한 행위로 su나 sudo와 같은 권한을 요구한다. shutdown은 컴퓨터를 끄는 명령어이다. -h는 시스템을 종료하고, 컴퓨터를 끌것임을 알려준다. now는 지금 당장 끌 것임을 나타낸다. 필자의 경우에 처음 리눅스를 끄려고했을떄 정말 당황했었던 기억이 난다. 이로써 우리는 제대로 컴퓨터를 끌 줄도 알게 되었다!


권한 문제

  그럼 이번엔 리눅스의 권한 문제이다. 상당히 중요한 문제로 많은 해킹문제가 여기서 비롯된다. 권한에 대해 잘 잡아두도록 한다.


ssh로 root로그인 막기

$ sudo vim /etc/ssh/sshd_config

49줄 주석해제 후 수정 PermitRootLogin no

$ sudo systemctl restart sshd

su사용, wheel 그룹

$ sudo vim /etc/pam.d/su

6번쨰 줄 주석 삭제

$ auth required pam_wheel.so use_uid
$ cat /etc/group
$ cat /etc/group | grep wheel
$ sudo usermod -G wheel USERID

(USERID 부분에 본인의 아이디를 입력)

$ sudo usermod -g wheel USERID

이 그룹을 우선순위로 한다.


sudo 설정

sudo visudo를 통해 수정 가능하다. 하지만 이미 default로 wheel그룹 sudo사용 가능하다. 위 과정에 맞춰 본인 아이디를 wheel그룹에 잘 집어 넣었다면 무리없이 사용 가능하다!