728x90

 

계정 2개 생성 후 2번 계정에 c언어 코드 작성하여 컴파일 후 진행.(à컴파일 하면 자동으로 a.out파일 생성됨)

 

1. 1번 계정으로 a.out 파일 실행

2. 2번 계정으로 다른 사람이 실행할 수 없게 바꾸기

3. 1번 계정으로 a.out 실행해보기

4. 2번 계정으로 소스코드 만든 후 실행권한 부여

5. 4에서 만들었던 소스코드를 누구나 쓸 수 있게 바꾸기

6. 1번 계정으로 2번 계정에 있는 소스코드를 옮기기

 

에 대하여 작성하려한다.

 

(단, sudo 사용하지 않고, 권한 부여는 최소한으로 부여하며, chmod 명령어 사용시 숫자모드로 사용하기.)

 

1번 계정인 minseong 계정 과 2번 계정인 swing29 계정을 생성 후 

 

0. 2번 게정에 c언어 코드 작성하여 컴파일 후 진행

 

swing29 계정으로 전환한 후에 vi 명령어(vi swuni2.c)를 입력해 vi 편집기를 연다. 

vi 편집기에서 명령모드에서 입력모드로 전환한다.

 

c언어 코드로 'loveu'라는 내용을 작성하여 gcc 명령어로 컴파일 후 진행한다.

 

1. 1번 계정으로 a,out 실행

 

vi 명령어로 vi 편집기를 실행하게 되면 c언어로 코드를 작성한 후 gcc 명령어를 시행한다.

 

여기서 컴파일 명령어인 gcc, 그리고 g++이 존재하는데

c일 경우에 gcc 컴파일대상소스코드 -o 실행파일이름

c++일 경우에 g++ 컴파일대상소스코드 -o 실행파일이름

 

실행한 후에 ./실행파일이름 명령을 통해 파일을 실행할 수 있다.

 

swuni.c 파일을 생성한 다음 gcc로 swuni.c 파일을 컴파일 하게 되면 ,

ls 를 통해 a.out이 생성되었다는 것을 알 수 있다.

 

 

2. 2번 계정으로 다른 사람이 실행할 수 없게 바꾸기

 

chmod 명령어를 이용해서 파일이나 디렉토리에 부여된 권한을 수정할 수 있다.

chmod로 수정할 수 있는 방법은 기호문자열을 사용하는 방법과 8진수 숫자를 이용하는 방법 두 가지가 있따.

 

기호모드를 사용하는 경우 기존 권한 중 일부 권한을 더하거나 뺄 경우 많이 사용한다.

 

먼저 어떤 대상에게 어떤 권한을 더할 것인지 문자로 설정하자.

대상으로 u = 사용자, g = 그룹, o = 기타, a = 전부 

추가 여부로 + 더하기, - 빼기, = 설정

권한으로  = 읽기, w = 쓰기, x = 실행

을 의미한다.

 

예를 들어 그룹에게 실행 권한을 더할 경우에는 

chmod g+x 파일명 형태를 사용한다.

 

그렇다면 숫자모드를 사용한 경우는 어떻게 사용되어지는가.

8진수로 표기하는 방법은 일단 rwx 세 자리 각각 2진수 표시한다.

r = max 4 w= max 2, , x = max 1로 rwx 도합 7이 최대값이다.

 

여기서 다른 사람들이 실행하지 못하게 설정하려 했으니까 

실행을 제외한 나머지 -rw-rw-r-- 로 계산해보니 664가 맞는 실행문이다.

 

3. 1번 계정으로 a.out 실행해보기

 

소스코드를 c언어로 실행했기 때문에 gcc 컴파일대상소스코드 -o 실행파일이름으로 컴파일한다.

이후 ./a.out 명령을 통해 파일 실행할수 있었다. 

 

4. 2번 계정으로 소스코드 만든 후 실행권한 부여

 

소스코드를 작성하는 방법은 cat > ~ 명령어를 이용해 소스코드 파일을 만들고,

코드를 입력한 뒤 ctrl+d를 이용하여 입력을 멈춘다.

 

 

5. 4에서 만들었던 소스코드를 누구나 쓸 수 있게 바꾸기

 

숫자모드인 chmod 명령어로 기존 소스코드 권한에서 실행할 수 있는 권한을 추가해서 실행한다.

이때 숫자모드는 대체적으로 파일의 권한 전체를 재설정할 때 많이 사용되기 때문에

실행권한을 따로 추가하는 것이 아니라 실행권한까지 모두 포함한 권한을 실행한다.

 

이래서 사용자가 rwx 를 모두 사용할 수 있겠끔 777을 적어서 낸다.

ls -l 명령어를 통하여 swuni2.c가 -rwxrwxrwx 로 변했음을 알 수 있다.

 

 

6. 1번 계정으로 2번 계정에 있는 소스코드를 옮기기

 

swing29계정에 있던 소스코드 swuni2.c 를 1번 계정으로 옮겨서 실행한다.

 

'자기개발 > Linux' 카테고리의 다른 글

[ Linux 2주차 ] 과제 재제출  (0) 2021.05.03
[ Linux 2주차 ] 과제4  (0) 2021.04.27
[ Linux 2주차 ] 과제 2  (0) 2021.04.27
[Linux 2주차] 과제1  (0) 2021.04.27
kali Linux 1주차 과제  (0) 2021.03.30

+ Recent posts