계정 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 |