실습> PATH 변수에 현재 디렉터리를 설정하지 않는 경우
외부 명령어를 실행할 때 환경변수 PATH에 경로가 없다면 실행이 안된다.
그래서 현재
환경 변수 : 쉘 환경에서 사용하는 변수로 (전역변수 성질을 가지고 있다. )
환경 변수 PATH 에 저장된 값을 확인할 때
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
명령어를 실행할 때 현재 디렉터리를 PATH 변수에 설정하지 않는 이유는 ?
보안상 설정하지 않는다.
[root@localhost ~]# useradd user1
[root@localhost ~]# cd ~user1
[root@localhost ~]# vi ls
#!/bin/sh
echo "악성파일 실행중.."
[root@localhost ~]# chmod 755 ls
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
1. PATH 변수 앞에 현재 디렉터리가 있을 경우
[root@localhost ~]# PATH=.:$PATH
[root@localhost ~]# echo $PATH
.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# cd ~user1
[root@localhost ~]# ls
악성파일 실행중...
2. PATH 변수 뒤에 현재 디렉터리가 있을 경우
[root@localhost ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:.
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:.
[root@localhost ~]# ls
ls
[root@localhost ~]# ./ls
악성파일 실행중...
[root@localhost ~]# mv ls ls-l
[root@localhost ~]# ls
ls-l
ls -l 을 사용할려고 하다가 ls-l을 사용하면 (오타가 나면) 맨 끝에 . 에 의해서 악성 실행파일 실행된다.
[root@localhost ~]# ls-l
악성파일 실행중...
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:.
3. PATH 변수에 현재 디렉터리가 없을 경우
[root@localhost ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# ls
ls
[root@localhost ~]# ls-l
-bash: ls-l: command not found
[root@localhost ~]# ./ls-l
악성파일 실행중...
'Linux > Linux 실습' 카테고리의 다른 글
| [Linux] 가상 호스트 설정하기 (0) | 2021.11.09 |
|---|---|
| [Linux] HTTP Method 정리 : GET/POST 방식 (0) | 2021.11.09 |
| 사용자 크론(Cron) 생성/제거 (0) | 2021.11.06 |
| yum 프로세스 강제 종료 (0) | 2021.11.06 |
| 쉘 스크립트에서 시그널 전송 막기 (0) | 2021.11.06 |