Linux 154

[CentOS 7] You () are not allowed to use this program (crontab) - 1

에러 해결 crontab을 사용하려고 할 때 간혹 아래 사진과 같은 메시지가 노출되며 사용 불가할 때가 있다. 이 경우에는 아래 경로의 설정 파일을 이용하여 사용자의 crontab 사용 권한을 제어하고 있는 상태일 수 있다. /etc/cron.allow /etc/cron.deny 서버에 /etc/cron.allow라는 파일이 존재하면, root 권한으로 해당 파일에 크론탭을 사용할 계정명을 추가하고 저장한다. 이후 사용자가 크론탭을 사용할 수 있는지 확인해본다. 크론 서비스를 재시작할 필요는 없다. 각 파일 유무에 따른 crontab 사용 제한 /etc/cron.deny O /etc/cron.deny X /etc/cron.allow O /etc/cron.allow에 등록된 계정만 허용 /etc/cron...

Linux 2021.07.31

proxy: Unsupported authorisation protocol

원격 서버에서 크롬 브라우저와 같이 GUI 프로그램을 실행했을 때 아래와 같은 에러를 만날 수 있다. proxy: Unsupported authorisation protocol 프로토콜 사용이 안 된다는 말인데, 기본적으로 원격 GUI 실행은 X Forwarding, 즉 실행에 필요한 프로토콜이 SSH를 통해 포워딩된다. 확인할 다른 부분도 있겠지만 /etc/ssh/sshd_config 파일부터 확인해보도록 한다. 아래의 설정이 no로 되어있지는 않은지, X11Forwarding yes 요청한 사용자가 ssh를 사용하도록 허용되어 있는지 확인하도록 한다. 간단한 배경 지식 Linux에서는 X11이라는 디스플레이 서버를 이용하여 GUI(Graphical User Interface) 환경을 그린다. 크롬 브..

Linux 2021.07.30

ssh - 특정 사용자 접속 제한

SSH는 기본적으로 모든 사용자가 사용할 수 있다. 하지만 필요하다면 특정 사용자나 그룹만 접속할 수 있도록 허용하거나 반대로 접속을 제한할 수 있다. 설정 파일의 경로는 일반적으로 아래와 같다. /etc/ssh/sshd_config # 편집 vim /etc/ssh/sshd_config 시스템 설정 파일이므로 편집에는 root 권한이 필요하다. AllowUsers 접속할 사용자를 지정한다. 이 경우 다른 사용자는 ssh 접속이 불가능하게 된다. AllowUsers # 예시 AllowUsers test_user 공백으로 사용자를 구분하여 여러 사용자를 한꺼번에 허용할 수 있다. 또한 사용자가 특정 호스트에서만 접속할 수 있도록 아래와 같이 ip를 제한할 수도 있다. AllowUsers @ # 예시 Allo..

Linux 2021.07.29

sed - 쉘에서 파일 내용 일부 삭제

sed; stream editor 문자열을 필터링하고 변환하는 스트림 편집기 디스크 사용량이 너무 많아서 확인해보니, 로그 파일 하나가 20GB, 30GB가 넘어가고 있었다. 확인해보니 일정 시간 간격으로 로그 파일을 생성하는 게 아니라, 하나의 파일에 로그를 계속 쌓고 있는 상황이다. 정리는 하되 최신 파일 내용을 남겨두어야 하는데 용량이 너무 커서 에디터로 열리지도 않는다. ……도대체 누가 왜 이렇게 한 걸까? 아무튼 그게 급한 게 아니고, 에디터로 편집하는 게 아니라 명령어로 파일 처음부터 어디까지만 삭제할 수는 없을까? 다급하게 찾아보았더니 다행히 sed 명령을 사용하는 방법이 있었다. sed -i '1, 10000d' # -i : 출력 결과를 원본 파일에 저장 sed 명령은 기본적으로 원본 파일..

Linux 2021.07.26

du - 디렉터리 용량 확인

du; Disk Usage 지정된 디렉터리의 디스크 사용량 표시 디스크 정리할 때 디스크 사용량이 많은 디렉터리와 파일을 확인할 때 사용한다. du [OPTION] [DIRECTORY|FILE] # 예시 du -sh ./* # -s : summarize. 디렉터리 내의 모든 파일과 서브 디렉터리의 용량을 합쳐서 표시 # -h : human-readable. 사람이 읽기 쉬운 단위로 표시 보통 현재 디렉터리의 하위 디렉터리 용량을 확인하면서 어느 부분이 원인인지 찾아들어가는 편이다. 모든 디렉터리를 지정하면 출력도 길고 시간도 오래 걸릴 수 있어서 추천하지 않는다. 용량 기준으로 내림차순 정렬 du -sh /PATH | sort -nr

Linux 2021.07.25

환경변수 PATH 추가

PATH Shell에서 입력받은 명령을 실행할 때 실행할 프로그램을 찾는 경로 기본 명령어가 저장된 디렉터리는 자동으로 등록되지만, 별도의 경로에 프로그램을 설치한 뒤 명령어를 사용하기 위해서는 PATH에 프로그램 실행 경로를 추가해주어야 한다. PATH 정보 확인 echo $PATH 먼저 등록된 경로의 우선순위가 높다. 예로 들어 python 실행 경로가 아래와 같을 경우, /usr/local/bin /home/ec2-user/.local/bin python 명령 실행 시 /usr/local/bin 아래의 python이 실행된다. 또한 모든 사용자에 대해 공통적으로 적용되는 기본 PATH 관련 설정은 /etc/profile(또는 /etc/bashrc) 파일에서 확인할 수 있다. PATH 추가 등록(임시..

Linux 2021.07.23

Alias 등록

Alias 복잡한 명령어 또는 여러 옵션을 사용하는 명령어에 별칭을 주어 간단한 형태로 간소화하여 사용할 수 있는 기능을 가진 명령어 Alias 목록 확인 현재 사용 중인 쉘에 등록된 alias를 확인할 수 있다. alias 몇 가지 명령어는 편의를 위해 자동으로 등록된다. Alias 등록 (일회성) 현재 사용 중인 쉘에 alias를 등록한다. alias = free -h 명령을 free로 별칭을 주면, free를 입력했을 때 free -h를 입력한 것과 동일한 결과를 얻을 수 있다. 다만 alias 명령은 현재 쉘에만 적용되기 때문에 다른 쉘에서나 재접속했을 때는 사용할 수 없다. 즉, 일회성이다. Alias 등록 (자동) 등록한 단축 명령어를 자주 사용한다면, 쉘이 실행될 때 자동으로 alias에 등..

Linux 2021.07.22

date - 시스템 시간 확인

시스템 시간 확인은 date 명령어로 간단하게 확인할 수 있다. date 기본적으로 요일 월 일 시간 시간대 연도의 형식으로 결과를 출력한다. 보통 날짜의 경우에는 2021/07/15 또는 2021-07-15 등의 형식을 가장 많이 쓰는데, date format을 지정하면 출력 형식을 변경할 수 있다. 출력 형식 지정 YYYY/MM/DD date +%Y/%m/%d # 2021/07/15​ YYYY-MM-DD date +%Y-%m-%d date +%F # 2021-07-15 HH:MM:SS date +%H:%M:%S # (0 - 23시) date +%T # (0 - 23시) date +%I:%M:%S # (1 - 12시) # 12:33:42 HH:MM:SS AM/PM date +'%I:%M:%S %p' d..

Linux 2021.07.19

grep - 디렉터리에서 키워드를 포함한 파일 찾기

grep은 문자열 검색 명령어로, 입력으로 받은 파일 내용에서 키워드가 포함된 행을 출력해준다. 친근하고 좋은 명령어지만 아무 옵션 없이, 파일도 하위 디렉터리도 많은데, 어떤 파일에서 해당 키워드가 있는지도 모르는 경우에는 상당히 난감해진다. 일일이 파일을 열어봐야 하기 때문이다. 이럴 때는 여러 파일을 입력하거나, 옵션을 지정하면 간단하게 문제를 해결할 수 있다. 1. 여러 파일 입력 grep '' … 입력한 두 파일 중에서 import라는 문자열이 포함된 파일은 send_attachment.py라는 파일이라는 것을 알 수 있다. 이 방법도 파일 이름을 직접 지정해야 하기 때문에 다소 불편하다. 이런 경우에는 *(와일드카드)를 활용하면 좋다. grep '' ** # 예시 grep 'example' *..

Linux 2021.07.17

Chrome 실행 시, Unable to open X display 에러

2021.07.14 - [CentOS] Chrome 및 Selenium 설치 위 글에서 CentOS에 크롬 설치 후 Selenium을 이용해서 브라우저 제어도 해봤지만, 아무래도 CLI로 브라우저를 직접 실행하는 방법은 뭔지 궁금할 것이다. 크롬 브라우저는 아래 명령어로 간단하게 실행시킬 수 있다. google-chrome google-chrome & # 백그라운드로 실행 그런데 아래와 같은 Unable to open X display 에러가 발생하는 경우도 있을 것이다. 왜냐하면 내가 그랬다. 찾아봤는데 잘 모르겠지만 그래픽 인터페이스를 사용하는 필요한 X window, Display Server가 없거나 실행 중이 아니라서 발생하는 에러인 것 같다. X window, Display Server가 뭔지..

Linux 2021.07.15