원래라면 리눅스는 이제쯤 끝내고 다른 종목 공부하면서 서버 하나 만드는 중이어야할텐데
갑자기 장염에 걸려서 고생하고 노트북을 바꾸는 등 여러 일이 있어서 많이 늦어졌습니다. ㅠㅠ 5일차에 했던 내용 기록하겠습니다.
CRON은 정기적으로 명령을 실행시켜주는 프로그램입니다. 프로그램마다 목적이 다르겟지만 주기적으로 갱신이 필요하거나 한 경우에는 이런 기능이 꼭 필요하겟죠?
crontab -e를 칩니다. 처음 키는거라면 원하는 에디터를 고를 수 있습니다.
환경에 따라 더 많으신 분들이 계실 수 있습니다. 저는 익숙한 nano를 이용했습니다.
그리고 제일 밑 줄을 보시면 m h dom mon dow command라고 되어 있는 부분을 볼 수 있습니다.
구성은 여기 써있는 것처럼 크게 어렵지 않습니다.
m은 분을 뜻하고 h는 시간을 뜻하고 dom은 dayofmonth 달의 며칠이냐는 뜻이며 month는 달을 의미하고 day of week는 일주일 중에 어느날인지를 적는겁니다. 여기서 저희가 입력할 내용은 */1 * * * * date >> date.log 2>&1입니다.
수업 내용에서는 중간중간에 다루는 추가적인 내용들이 있지만 이미 수업을 들어오면서 다 익혔던 부분들이기 때문에 다시 설명하고 가진 않겠습니다. 마저 커맨드를 풀이를 하자면 *은 말그대로 의미가 없는 숫자입니다. 공백이라고 생각하시면 되겠습니다. 그러니 1분에 한 번으로 보시면 되겠습니다. >>은 덮어씌우는 명령어이고 이번에 새로나온게 2>&1인데 여기서 2>는 에러출력을 의미합니다 근데 거기에 &1이 붙는다면 에러출력을 표준출력으로 출력한다는 의미입니다. Redirection을 하는거죠 그래서 에러의 결과도 date.log에 같이 출력되게 됩니다.
이제 잘 작동하는지 확인을 해야겠죠?
하지만 여기서는 cat을 사용하지는 않습니다. 이번에 사용할 것은 tail입니다. 꼬리라는 뜻이죠
head와는 반대로 제일 뒷쪽의 내용을 보여줍니다. 그런데 좋은 기능인 이유 중 하나가 tail -f를 하면 자동으로 타겟으로 설정한 파일이 갱신될 때마다 최신화해서 바로 화면에 출력해주기 때문입니다. 처음에는 결과값이 1개였다가 1분이 지나 결과값이 갱신되어 총 2개가 된 모습입니다. 기다리면 뜨니까 한 번 기다려보는 것도 좋습니다.
이것도 엄연히 스크립트가 돌아가는 것이므로 빠져나오려면 Ctrl+z혹은 Ctrl+c를 해주시면 됩니다.
다음은 Start Script입니다.
Start Script란? 쉘이 시작될 때 명령어가 자동으로 설정되는 것을 말합니다.
alias라는 명령어를 사용하는데 의미는 별명이라는 뜻을 가지고 있습니다. 허허 대충 감이 오시나요?
이게 무슨 의미인지 대충 이해하신 분도 계실 것 같습니다만 밑의 결과까지 보여드리겠습니다.
네 ls -al의 결과값이 나왔죠? 입력은 l만 했는데 이유는 별명이라는 이름처럼 명령어에다가 별명을 입혀준 것입니다.
한마디로 단축키를 설정했다고도 할 수 있죠 자주 사용하는 명령어라면 정말정말 유용한 기능이 아닐 수 없습니다.
이와같이 alias를 통하여 많은 기능을 이런식으로 이용할 수 있습니다. 이는 검색을 통해서 훨씬 많은 명령어를 찾아볼 수 있고 그게 아니더라도 그냥 직접 자주 사용하는 명령어를 등록하면 됩니다.
근데 이걸 지금 왜 다루느냐 Start Script아니냐라는 얘기가 나오기 전에 말씀드립니다.
이런 명령어를 바꿔놓은 것들을 매번 터미널을 실행할 때마다 설정해줘야한다면 귀찮아서 그냥 안쓰고 말겠죠?
이제 그와 동시에 자동으로 이렇게 세팅이 되는 Start Script를 다뤄보겠습니다.
우선 자신이 쓰는 SHELL을 파악하기 위해 echo $SHELL을 입력합니다.
bash는 사용자가 bash를 처음실행했을 때 어느 특정한 이름의 파일을 실행하도록 약속이 되어 있습니다.
일단 홈 디렉토리로 이동합니다 cd ~ 그 뒤에 바로 nano .bashrc를 입력합니다 .bashrc는 이미 내용이 있으니 내용을 지우거나 하실 필요는 없습니다.
이 코드들은 bash라고 하는 쉘의 문법에 따라 작성된 코드들 입니다 확인을 위해
이렇게 코드 바깥인 fi 밑에다가 echo 'Hi, Bash'를 입력해봅니다. 그리고 저장하고 나노에서 나옵니다.
여기서 exit를 입력하면 터미널이 꺼지는데 걱정말고 다시 바로 터미널을 켜주시면됩니다 그리고 들어오면
이런 모습을 볼 수 있죠. 아니면 그냥 bash라고 입력을 해도 bash가 실행되기 때문에 귀찮으신분들은 그렇게 확인하셔도 됩니다.
이런식으로 SHELL을 자기 취향에 맞게 커스터마이징을 할 수 있습니다.
다음은 다중 사용자 시스팀입니다.
장점으로는 여러 사용자가 이용할 수 있고 개개인의 권한이 다 다르게 운영이 가능한 것인데 단점이 이 다중 사용자가 1명만 늘어나더라도 시스템의 복잡도가 훨씬 높아집니다.
유닉스 계열의 시스템은 다중사용자 시스템이고 그 점을 어떻게 사용하는가 또 사용했을 때 어떠한 문제점이 있을 수 있는가를 알고 넘어가면 좋다고 합니다.
제일 처음으로는 id입니다. identify의 줄임말 같은데 말 그대로 자신이 누구인지를 보여주는 부분입니다.
uid는 유저의 아이디를 뜻하고 gid는 그룹의 아이디인데 오우... 어렵네요 그룹은 알 필요가 없다고 하는데 궁금하네요
다음은 who입니다.
이 시스템에 누가 접속해있는지를 알 수 있는 명령어입니다. 당연히 저 뿐이니 저 하나만 뜨네요.
유닉스 계열에는 크게 2가지 형태의 사용자가 있습니다.
1.Super User(ROOT User)
2.User
역서 sudo는 잠깐 1가지 작업을 할 때 사용하는 명령어로 일시적으로만 슈퍼유저의 권한을 이용합니다.
그렇다고해서 모든 유저가 sudo를 사용할 수 있는 것은 아니고 super user가 될 수 있지만 일반 사용자의 권한으로 사용하는 유저만 가능합니다.
여기 끝에 $라고 되어 있는 부분이 보이시죠? $일 경우에는 일반 유저라는 뜻이고 SuperUser(Root)는 #이 붙어있다고 합니다.
자 이제 슈퍼 유저가 되는 방법입니다.
su - root를 입력합니다. su -까지만 입력해도 됩니다.
여기서 비밀번호를 잘 입력하면 되는데 저는 비밀번호를 모르겠더라고요 그래서 접속하지 못했습니다.
끝내고 싶을 경우에는 exit를 입력하면 이전에 사용하던 유저로 바뀝니다.
그리고 이게 루트 사용자의 잠금을 거는 경우가 있다고 하는데 이 때 푸는 방법은
sudo passwd - u root u입니다 u는 언락의 약자라고 하네요.
다시 락 거는 방법은 sudo passwd -l root
이제 사용자를 추가하는 방법입니다.
2가지 방법이 있는데 하나는 바로 비밀번호를 만들면서 만드는 방법이고 하나는 일단 만들고 설정하는 방법입니다.
이건 만들고 설정하는 방법입니다. 처음에 그냥 생성하려고 하니까 퍼미션없다고 빠꾸먹어서 다시 sudo를 이용해서 추가해줬습니다 here이라고 적혀있는 부분이 사용자명입니다. 이렇게 만든 뒤에 제대로 만들어졌는지 확인을 해야하니
cd /home을 이용하여 홈 디렉토리로 이동하여 ls를 합니다.
그럼 이렇게 here이라는 사용자의 디렉토리가 생성된 것을 확인할 수 있습니다.
여기서 그냥 로그인을 하면 비밀번호가 설정이 안돼서 입장이 안됩니다. 우린 비밀번호를 설정한 적도 없는데 설정하라고 하니 참 이상하죠..?^^
자 그럼 이제 비밀번호를 설정합니다. sudo passwd here을 입력하면 아래와 같이 뉴패스워드를 입력하라고 합니다.
그리고 2번 입력하면 비밀번호 업데이트가 성공적으로 이루어졌다고 나오죠
이제 사용자를 변경해서 들어가보겠습니다. su - here을 입력하여 접속합니다.
비밀번호까지 입력하고 로그인했는데 원래의 계정과는 좀 다른 모습이네요... 권한이 달라서 그런걸까요? 조금 소름이 끼칩니다.
그래서 sudo를 이용해보려고 했습니다. 얘는 완벽한 일반유저니까요.
음... 당연히 안될거라고는 생각했지만 안되네요. 그럼 여기서도 2가지 방법이 있습니다.
처음으로는 처음부터 권한을 주고 만드는 명령어입니다. sudo adduser here sudo 이렇게 만든다면 애초에 here이라는 유저는 슈퍼유저권한을 갖습니다 root유저라는 뜻은 아니며 sudo를 사용할 수 있는겁니다.
그 외에는 설정하기 위해서는 우선 sudo권한을 가진 계정이 필요합니다. 그러므로 다시 exit를 이용해 원래 사용자로 돌아갑니다.
그 뒤에 위와 같이 sudo usermod -a -G sudo here을 입력하면 됩니다 .이게 끝입니다. 해석하자면 usermod는 유저의 계정을 수정가능하게 만든다는 뜻이고 -a는 append 그룹이라는 곳에 유저를 추가한다는 의미이며 뒤에 -G를 항상 사용하는데 잘 모르겠지만 그룹을 수정한다는 의미라서 그런 것 같습니다.
아직 꽤 남긴했습니다만 앞으로 공부기록을 남기는건 제가 따로 공부해서 배운 점들을 적거나 하는 식으로 하겠습니다.
포스팅하며 복습을 하려고 했더니 시간을 너무 많이 잡아먹네요 ㅠㅠ 다들 그동안 봐주셔서 감사합니다.
'자기개발 > Linux' 카테고리의 다른 글
TCP 3-Way HandShaking과 4-Way HandShaking (0) | 2021.03.31 |
---|---|
Linux 공부 4일차 (0) | 2021.01.24 |
Linux 공부 3일차 (0) | 2021.01.23 |
Linux 공부 2일차 (0) | 2021.01.22 |
Linux 공부 1일차 (0) | 2021.01.21 |