목차
※ (1~2번) 수행된 명령과 실행 결과를 확인할 수 있는 그림을 캡처하고 과제물 파일에 붙여넣기 하여 답안을 작성합니다. 과제물을 작성할 때 문제를 쓸 필요는 없습니다.
1. 리눅스를 설치하고 일반 사용자 계정을 생성한다. 이때 계정 이름(user name)은 자신의 학번(예: 202434-348000)으로 하고, 계정 설명(교재 162쪽 참고)은 자신의 한글 이름(예: 김철수 또는 Kim, Chulsu)으로 하며, 기본 셸은 bin/bash로 한다. 해당 계정으로 로그인 한 후 터미널 창을 띄운다. 여기까지는 준비 과정으로 캡처할 필요가 없다. grep 명령을 사용하여 /etc/passwd 파일에서 자신의 계정 정보를 가지는 1개 라인만을 터미널 창에 출력한다. 이때 명령 프롬프트의 모양에 계정 이름(자신의 학번)이 나타나야 하고, 작업 디렉터리는 자신의 홈 디렉터리이어야 한다. (10점)
1) 리눅스(centos7.9.2009) 설치
① 방법 1 ② 방법 2
2) 일반 사용자 계정 생성 3) grep 명령
2. vi 편집기를 사용하여 아래의 내용으로 파일을 생성한다. 편집 과정은 캡처할 필요 없다. 명령 프롬프트에서 적당한 출력 명령을 사용하여 파일 hello.html의 내용을 터미널 창에 출력한다. (5점)
※ (3~5번) 명령을 작성하고, 명령의 의미를 자세히 설명하라. 그림 캡처는 필요 없으며, 설명에 필요하다면 가정을 전제해도 된다. 설명이 부족하면 감점됩니다. (각 5점)
3. 파일 'runApp.sh'의 실행 권한을 소유자와 그룹에게 부여하는 명령을 작성하고, 공백 포함 200자 이내로 설명하라. 다른 권한은 변경이 없어야 한다. (5점)
4. 디렉터리의 기본 접근권한을 750(rwxr-x---)로, 파일의 기본 접근권한을 640(rw-r-----)로 설정하는 명령을 작성하고, 공백 포함 200자 이내로 설명하시오. (5점)
5. 현재 작업 디렉터리(서브 디렉터리 포함)에 존재하는 정규 파일 중 이름이 ‘.json’ 로 끝나는 모든 파일을 찾아, 파일의 접근 권한을 644(rw-r--r--)로 변경하고, 파일의 절대 경로(파일명 포함)를 터미널 창에 출력하는 find 명령을 작성하시오. 공백 포함 300자 이내로 설명하시오. (5점)
6. 참고문헌
1. 리눅스를 설치하고 일반 사용자 계정을 생성한다. 이때 계정 이름(user name)은 자신의 학번(예: 202434-348000)으로 하고, 계정 설명(교재 162쪽 참고)은 자신의 한글 이름(예: 김철수 또는 Kim, Chulsu)으로 하며, 기본 셸은 bin/bash로 한다. 해당 계정으로 로그인 한 후 터미널 창을 띄운다. 여기까지는 준비 과정으로 캡처할 필요가 없다. grep 명령을 사용하여 /etc/passwd 파일에서 자신의 계정 정보를 가지는 1개 라인만을 터미널 창에 출력한다. 이때 명령 프롬프트의 모양에 계정 이름(자신의 학번)이 나타나야 하고, 작업 디렉터리는 자신의 홈 디렉터리이어야 한다. (10점)
1) 리눅스(centos7.9.2009) 설치
① 방법 1 ② 방법 2
2) 일반 사용자 계정 생성 3) grep 명령
2. vi 편집기를 사용하여 아래의 내용으로 파일을 생성한다. 편집 과정은 캡처할 필요 없다. 명령 프롬프트에서 적당한 출력 명령을 사용하여 파일 hello.html의 내용을 터미널 창에 출력한다. (5점)
※ (3~5번) 명령을 작성하고, 명령의 의미를 자세히 설명하라. 그림 캡처는 필요 없으며, 설명에 필요하다면 가정을 전제해도 된다. 설명이 부족하면 감점됩니다. (각 5점)
3. 파일 'runApp.sh'의 실행 권한을 소유자와 그룹에게 부여하는 명령을 작성하고, 공백 포함 200자 이내로 설명하라. 다른 권한은 변경이 없어야 한다. (5점)
4. 디렉터리의 기본 접근권한을 750(rwxr-x---)로, 파일의 기본 접근권한을 640(rw-r-----)로 설정하는 명령을 작성하고, 공백 포함 200자 이내로 설명하시오. (5점)
5. 현재 작업 디렉터리(서브 디렉터리 포함)에 존재하는 정규 파일 중 이름이 ‘.json’ 로 끝나는 모든 파일을 찾아, 파일의 접근 권한을 644(rw-r--r--)로 변경하고, 파일의 절대 경로(파일명 포함)를 터미널 창에 출력하는 find 명령을 작성하시오. 공백 포함 300자 이내로 설명하시오. (5점)
6. 참고문헌
본문내용
설명하라. 그림 캡처는 필요 없으며, 설명에 필요하다면 가정을 전제해도 된다. 설명이 부족하면 감점됩니다. (각 5점)
3. 파일 \'runApp.sh\'의 실행 권한을 소유자와 그룹에게 부여하는 명령을 작성하고, 공백 포함 200자 이내로 설명하라. 다른 권한은 변경이 없어야 한다. (5점)
chmod u+x,g+x runApp.sh
이해를 돕기 위해, 아래 그림처럼 사용자를 변경(12345-12345 -> 123456-123456)하여 my_file이라는 파일을 하나 만들어 “chmod u+x,g+x my_file을 실행했다. 참고로 ”u+x,g+x“에서 콤마(,) 다음에 공백이 없어야 한다. 이 명령을 실행하고 ls 명령어로 접근권한의 변화를 아래 그림에서 확인할 수 있다. 즉, my_file의 기존 권한에서 실행권한이 추가되었음을 알 수 있다. “u”는 소유자이고, g는 그룹을 의미한다. 소유자와 그룹을 제외한 나머지는 “o\"로 표현한다. “+‘ 연산은 뒤에 따르는 접근권한을 추가한다는 의미다. ”-“연산은 제거를 의미하고, ”=“연산은 지정을 의미한다. 따라서 chmod 751 file을 실행하는 것과 chmod u=rwx,g=rx,o=x file를 실행하는 것은 동일한 의미를 가진다.
chmod는 파일의 소유자가 파일의 접근권한을 변경하기 위한 명령어로 사용법은 다음과 같다.
> chmod [ options ] mode files
mode는 접근권한을 표시하는 것으로, 세 자리의 8진수를 사용하여 지정하는 ‘8진수 모드’ 방법이 있다. 권한을 부여할 때 읽기(r)는 4, 쓰기(w)는 2, 실행(x)은 1로 하여 각 부류별로 8진수를 지정하는 방법이다. 예를 들어 chmod 755 file과 같이 수행하면 7=r+w+x이고 5=r+x이므로 접근권한을 rwxr-xr-x로 변경시키는 것이다. 즉, 소유자는 모든 권한을 가지며 나머지 사용자는 읽기와 실행 권한을 갖는다.
세 자리 8진수를 사용하는 방법은 접근권한 전체를 한꺼번에 변경시키는 방법으로 볼 수 있는데 9개의 비트 중 한두 개의 비트를 변경할 때는 mode 표시를 위해 ‘기호 모드’를 사용하는 방법도 있다. 앞에서 언급했던 “+, -, =”가 기호 모드로 사용되었다.
4. 디렉터리의 기본 접근권한을 750(rwxr-x---)로, 파일의 기본 접근권한을 640(rw-r-----)로 설정하는 명령을 작성하고, 공백 포함 200자 이내로 설명하시오. (5점)
umask 값은 파일이나 디렉터리를 생성할 때 부여되는 기본 권한을 지정하는 값으로, 기본 권한에서 차감되는 마스크를 의미한다. 예를 들면, 디렉터리의 기본 권한 777에서 027을 빼면 750이 되고, 파일의 기본 권한 666에서 027을 빼면 640이 된다. 따라서 umask 027을 설정하면 새로 생성되는 디렉터리는 rwxr-x---, 파일은 rw-r----- 권한을 갖게 된다.
5. 현재 작업 디렉터리(서브 디렉터리 포함)에 존재하는 정규 파일 중 이름이 ‘.json’ 로 끝나는 모든 파일을 찾아, 파일의 접근 권한을 644(rw-r--r--)로 변경하고, 파일의 절대 경로(파일명 포함)를 터미널 창에 출력하는 find 명령을 작성하시오. 공백 포함 300자 이내로 설명하시오. (5점)
적당한 디렉터리와 json파일을 생성하여 위 명령을 실행하면 그림과 같은 결과를 얻는다.
디렉터리 생성 : mkdir 디렉터리명
json 파일생성 : echo \'{}\' > a.json
접근권한 확인: ls -l 파일명(예: a.json)
파일 시스템에서 파일 검색에 가장 좋은 방법은 find 명령을 사용하는 것이다. 파일명뿐 아니라 파일의 속성을 기준으로 파일을 찾고, 계속해서 검색된 파일을 대상으로 적당한 명령을 수행할 수 있기 때문이다. 또한 파일을 검색할 때 검색 위치를 지정할 수 있으며 이름, 소유자, 접근권한, 크기, 수정시간 등의 파일 속성을 조건으로 사용할 수 있다. 사용법은 다음과 같다.
> find [pathnames] [expression]
경로(pathnames)를 지정하지 않으면 현재 디렉터리를 의미하는 도트(.)가 기본으로 주어지며 조건이나 액션(expression)이 주어지지 않으면 -print가 주어진다. $(pwd)는 현재 디렉터리의 절대 경로를 의미한다. 단, 마침표(.)를 사용하면 상대 경로가 출력된다.
위 명령어에서 -type f은 파일의 타입이 f인 경우로, 파일 타입으로는 b(블록 디바이스), c(문자 디바이스), d(디렉터리), f(정규 파일), l(심벌릭 링크)가 있다.
-name \"*.json\"는 파일 이름이 “.json”로 끝나는 모든 파일을 필터링한다는 의미다.
find 명령 사용에서“ -exec command {} ;”의 형식을 통해 사용자 정의 액션으로 임의의 command를 수행할 수 있다. -exec chmod 644 {} \\;는 조건에 맞는 각 파일에 대해 실행할 명령을 지정하는 옵션이다. 여기서는 chmod 644를 사용하여 파일의 접근 권한을 rw-r--r--로 바꾼다.
사용자 정의 액션에서 { }는 상응하는 파일(또는 디렉터리)을 표시하는 기호이며, \\;는 -exec 구문을 마무리하는 표시다. 즉, 세미콜론(;)은 명령의 종료를 표시하기 위한 구분자이고, (;)은 셸에서 특별한 의미를 가지므로 이스케이프 시키거나 따옴표로 묶어야 한다. 끝으로 -print는 조건에 맞는 파일의 경로를 출력하라는 옵션이다. 이때 $(pwd)를 기준으로 절대경로가 나오므로 파일명이 포함된 전체 경로를 확인할 수 있게 된다.
6. 참고문헌
김희천·김진욱(2023), UNIX시스템, 한국방송통신대학교출판문화원.
https://github.com/wsldl-pg/CentWSL/releases
https://rufus.ie/ko/
https://starseeds.tistory.com/7
과제 스트레스 싹~ 학점 쑥!
https://www.happycampus.com/store/zzzyzyztusz/
3. 파일 \'runApp.sh\'의 실행 권한을 소유자와 그룹에게 부여하는 명령을 작성하고, 공백 포함 200자 이내로 설명하라. 다른 권한은 변경이 없어야 한다. (5점)
chmod u+x,g+x runApp.sh
이해를 돕기 위해, 아래 그림처럼 사용자를 변경(12345-12345 -> 123456-123456)하여 my_file이라는 파일을 하나 만들어 “chmod u+x,g+x my_file을 실행했다. 참고로 ”u+x,g+x“에서 콤마(,) 다음에 공백이 없어야 한다. 이 명령을 실행하고 ls 명령어로 접근권한의 변화를 아래 그림에서 확인할 수 있다. 즉, my_file의 기존 권한에서 실행권한이 추가되었음을 알 수 있다. “u”는 소유자이고, g는 그룹을 의미한다. 소유자와 그룹을 제외한 나머지는 “o\"로 표현한다. “+‘ 연산은 뒤에 따르는 접근권한을 추가한다는 의미다. ”-“연산은 제거를 의미하고, ”=“연산은 지정을 의미한다. 따라서 chmod 751 file을 실행하는 것과 chmod u=rwx,g=rx,o=x file를 실행하는 것은 동일한 의미를 가진다.
chmod는 파일의 소유자가 파일의 접근권한을 변경하기 위한 명령어로 사용법은 다음과 같다.
> chmod [ options ] mode files
mode는 접근권한을 표시하는 것으로, 세 자리의 8진수를 사용하여 지정하는 ‘8진수 모드’ 방법이 있다. 권한을 부여할 때 읽기(r)는 4, 쓰기(w)는 2, 실행(x)은 1로 하여 각 부류별로 8진수를 지정하는 방법이다. 예를 들어 chmod 755 file과 같이 수행하면 7=r+w+x이고 5=r+x이므로 접근권한을 rwxr-xr-x로 변경시키는 것이다. 즉, 소유자는 모든 권한을 가지며 나머지 사용자는 읽기와 실행 권한을 갖는다.
세 자리 8진수를 사용하는 방법은 접근권한 전체를 한꺼번에 변경시키는 방법으로 볼 수 있는데 9개의 비트 중 한두 개의 비트를 변경할 때는 mode 표시를 위해 ‘기호 모드’를 사용하는 방법도 있다. 앞에서 언급했던 “+, -, =”가 기호 모드로 사용되었다.
4. 디렉터리의 기본 접근권한을 750(rwxr-x---)로, 파일의 기본 접근권한을 640(rw-r-----)로 설정하는 명령을 작성하고, 공백 포함 200자 이내로 설명하시오. (5점)
umask 값은 파일이나 디렉터리를 생성할 때 부여되는 기본 권한을 지정하는 값으로, 기본 권한에서 차감되는 마스크를 의미한다. 예를 들면, 디렉터리의 기본 권한 777에서 027을 빼면 750이 되고, 파일의 기본 권한 666에서 027을 빼면 640이 된다. 따라서 umask 027을 설정하면 새로 생성되는 디렉터리는 rwxr-x---, 파일은 rw-r----- 권한을 갖게 된다.
5. 현재 작업 디렉터리(서브 디렉터리 포함)에 존재하는 정규 파일 중 이름이 ‘.json’ 로 끝나는 모든 파일을 찾아, 파일의 접근 권한을 644(rw-r--r--)로 변경하고, 파일의 절대 경로(파일명 포함)를 터미널 창에 출력하는 find 명령을 작성하시오. 공백 포함 300자 이내로 설명하시오. (5점)
적당한 디렉터리와 json파일을 생성하여 위 명령을 실행하면 그림과 같은 결과를 얻는다.
디렉터리 생성 : mkdir 디렉터리명
json 파일생성 : echo \'{}\' > a.json
접근권한 확인: ls -l 파일명(예: a.json)
파일 시스템에서 파일 검색에 가장 좋은 방법은 find 명령을 사용하는 것이다. 파일명뿐 아니라 파일의 속성을 기준으로 파일을 찾고, 계속해서 검색된 파일을 대상으로 적당한 명령을 수행할 수 있기 때문이다. 또한 파일을 검색할 때 검색 위치를 지정할 수 있으며 이름, 소유자, 접근권한, 크기, 수정시간 등의 파일 속성을 조건으로 사용할 수 있다. 사용법은 다음과 같다.
> find [pathnames] [expression]
경로(pathnames)를 지정하지 않으면 현재 디렉터리를 의미하는 도트(.)가 기본으로 주어지며 조건이나 액션(expression)이 주어지지 않으면 -print가 주어진다. $(pwd)는 현재 디렉터리의 절대 경로를 의미한다. 단, 마침표(.)를 사용하면 상대 경로가 출력된다.
위 명령어에서 -type f은 파일의 타입이 f인 경우로, 파일 타입으로는 b(블록 디바이스), c(문자 디바이스), d(디렉터리), f(정규 파일), l(심벌릭 링크)가 있다.
-name \"*.json\"는 파일 이름이 “.json”로 끝나는 모든 파일을 필터링한다는 의미다.
find 명령 사용에서“ -exec command {} ;”의 형식을 통해 사용자 정의 액션으로 임의의 command를 수행할 수 있다. -exec chmod 644 {} \\;는 조건에 맞는 각 파일에 대해 실행할 명령을 지정하는 옵션이다. 여기서는 chmod 644를 사용하여 파일의 접근 권한을 rw-r--r--로 바꾼다.
사용자 정의 액션에서 { }는 상응하는 파일(또는 디렉터리)을 표시하는 기호이며, \\;는 -exec 구문을 마무리하는 표시다. 즉, 세미콜론(;)은 명령의 종료를 표시하기 위한 구분자이고, (;)은 셸에서 특별한 의미를 가지므로 이스케이프 시키거나 따옴표로 묶어야 한다. 끝으로 -print는 조건에 맞는 파일의 경로를 출력하라는 옵션이다. 이때 $(pwd)를 기준으로 절대경로가 나오므로 파일명이 포함된 전체 경로를 확인할 수 있게 된다.
6. 참고문헌
김희천·김진욱(2023), UNIX시스템, 한국방송통신대학교출판문화원.
https://github.com/wsldl-pg/CentWSL/releases
https://rufus.ie/ko/
https://starseeds.tistory.com/7
과제 스트레스 싹~ 학점 쑥!
https://www.happycampus.com/store/zzzyzyztusz/
소개글