리눅스#5

최동민·2022년 7월 10일
0

Linux

목록 보기
5/25

RUID(Real User IDentification)

  • 로그인 당시 ID, 파일을 실행한 사용자
    EUID(Effective User IDentification)
  • 프로세스가 동작하는 동안 부여되는 ID, SetUID가 설정되어 있으면 해당 소유자의 ID로 변한다. 다른 파일에 대한 접근 권한 부여(rwx).

SetGID

  • 8진수 네 자리 중 첫번째 값을 2진수 010인 2로 표현하는 것.
  • 파일 실행 시 소유그룹의 권한을 얻어와서 사용할 수 있게 됨(파일 실행이 끝날 때까지 GID를 빌려옴)
  • 파일을 SetGID 설정 시 소유 그룹의 파일 허가권이 rwx가 아닌 rws 로 표시됨
  • 대표적인 예 : 모든 유저에게 메세지를 보내는 /usr/bin/wall
    #chmod g+s[파일명] 명령어올 설정 가능

  • 이 파일(userFile) 실행할 떄 그룹의 권한을 얻는다.
    => 이게 SetGID

Stiky bit

  • 8진수 네 자리 중 첫번째 값을 2진수 001인 1로 표현하는 것.
  • 특정 디렉터리를 누구나 자유롭게 사용할 수 있도록 권한을 부여함.
  • 파일 및 디렉터리 생성은 가능하지만, 삭제는 생성한 유저와 디렉터리 소유자만 가능.
  • 여러 사람이 공유할 디렉터리에 주로 설정되어 업무상 공유할 내용들을 업로드하는 목적으로 사용됨.
  • Group과 other 계층 사용자에세 사용가능하며 동시에 두 계층에게 부여하는 것은 불가능
  • 설정하면 other 사용자의 파일 실행 허가권이 t로 표시됨
  • 대표적인 예 : 임시파일들이 저장되는 /tmp
    #chmod o+t [파일명] 명령어로 설정 가능

  • r-x : 누구나 들어오는건 되는데 생성하는건 불가능하다.
  • chmod해준다. xrwt로 바뀌었다. 다른 계정으로 들어가서 작성을 해보자.
  • 다른 계정으로 들어갔을 때 파일을 만들 수 있는 것을 확인 할 수 있다.

링크

: 다른 파일과 이어주는 파일을 의미하며 바로가기파일과 비슷함.

inode : 리눅스 파일 시스템에서 사용하는 자료 구조를 의미하며, 파일/디렉터리의 정보를 가짐.
inode block : inode가 모여있는 공간(전체 디스크 공간의 1%정도를 차지)
data block : 실제 데이터가 저장된 공간.

  • 모든 파일 / 디렉터리는 각자 1개씩의 inode를 가짐
  • 파일 소유권, 허가권, 파일 종류, 파일 실제 데이터 위치(주소) 등이 저장되어 있음.
  • 여기서 4204653이 inode 숫자임.

    inod가 똑같다.

    복사한 cpFile은 inod가 다르다
#ln [링크대상파일명][링크파일명]
  • 원본 파일 데이터를 사용한다.(기존 파일의 inode와 같은 inode번호를 복사)
  • 파일을 제거하는 명령어인 rm을 호출하면 내부적으로 unlink()라는 시스템 콜이 호출됨.
  • inode는 자신을 참조하는 횟수인 '링크 카운터'를 가지게 되며, 하드링크를 생성할 때마다 카운터가 1 증가되고, 링크가 끊어질 때마다 카운터가 1씩 감소.
  • 카운터가 0이 되면 inode는 free()가 되어 다른파일을 생성할 때 사용할 수 있음.
  • 참조를 하기 때문에 원본 파일이 변경되면 하드링크 파일도 같이 변경된다.
    다른 곳으로 옮겨도 inode 값이 같기 때문에 작동은 잘 된다.
#ln-s [링크대상파일명][링크파일명]
  • 별도의 파일 데이터를 가지며 참조하는 파일의 경로를 지정함.
  • 경로를 지정하기 때문에, 다른 파일 시스템 간에 사용하는 것이 기능(usb - C drive)
  • 심볼릭링크가 가리키는 곳에 파일이 삭제되거나, 이동이 될 경우에 동작하지 않음(Dangling Link 문제)
  • Windows의 바로가기 기능과 유사함.
  • 새로운 inod를 생성하며, 원본 파일이 어디있는 지의 위치를 가짐.
  • 심볼릭 링크 생성 방법. 권한 맨 앞 l이 붙은 게 심볼릭 링크파일이라는 의미.
    권한 기본은 777이다.

    또 생성해보면 inod가 다름

    원본 파일인 linktest를 삭제해보면 참조 파일인 Hard1 은 그래도 잘 나오지만, Simbolic1은 재구실을 하지 못한다. 원본 파일 위치가 사라졌기 떄문에.

    그리고 linktest를 다시 만들어보니 Simbolic도 다시 살아났다.
    원본 파일 위치에다 똑같은 이름으로 다시 만들면 다시 살아난 파일로 간주하는 것.
    위치와 파일명을 참조한다고 보면 되겠다.

4
2
4
4

4
2
4
2

4
3
4
3

리눅스와 프로그램 설치

make와 cmake(cross platform make system)

• 패키지의 소스 파일을 받아서 직접 설정 및 컴파일 하는 방식
• Makefile이라는 파일을 읽음으로서 소스 코드에서 실행 가능한 프로그램과 라이브러리를 자동으로 빌드하는 자동화 도구
• apt로 설치될 때 적용되지 않는 특별한 옵션, 사용자 설정, 소스코드의 수정 등이 필요할 경우 사용
• 일반 사용자보다 프로그래머 혹은 고급 시스템 사용자에게 적합
• cmake: configure와 make작업을 통합하는 프로그램으로, 운영체제에 맞는 make파일의 생성을 목적으로 함.

dpkg

• dpkg(Debian Package): Windows의 setup.exe와 같이 바로 실행할 수 있는 설치 파일.
• *.deb 확장자를가지며 패키지(Package)라 부름
• 단점: 의존성
ex) 우분투의 Firefox는 X 윈도우에 의존적이므로 X 윈도우가 설치 되어있지 않으면 설치가 불가능.

apt(apt-get)

• dpkg가 가지는 의존성 문제를 해결해주며 특정 패키지를 설치하고자 할 때, 의존성이 있는 다른 패키지를 자동으로 먼저 설치해줌.
• 우분투가 제공하는 deb 파일 저장소에서 deb파일 뿐만 아니라, 의존성이 있는 다른 deb파일까지 인터넷을 통해 알아서 다운로드
후 자동 설치해줌
• 단점: 인터넷에 연결되어있어야함.
deb 파일 저장소 URL정보

Firefox 에서 계산기를 받아보자
다운은 usr의 local로

세팅에서 root로 되어있는 경로 설정을 바꿔준다

galculator 다운 후 Save File 선택 후 OK

/usr/local 에 다운되었고, dpkg로 다운로드

설치 완료

apt

-y는 yes, 사용자에게 설치 시 yes/no를 묻는 과정을 생략한다. 모두yes
g++과 make 설치하기

qt5-default 와 libssl-dev 패키지 설치
qt5-default : 그래픽 환경기반으로 설정할 수 있음

flex, bison, libelf-dev 패키지 설치

Firefox에서 htps:/www.kernel.org (커널 아카이브)
mainline의 tarball 설치 (커널 다운로드)

Kernel Compile



다운된 tar 압축 풀기 (커널 압축 풀기)

make mrproper : 커널 설정 초기화 (아무 메세지도 안나오면 정상 동작한 것)

make xconfig에서 File systems 안에 DOS/FAT/EXFAT/NT Filesystems 안에 NTFS 관련 체크 후 저장.
: 윈도우의 NTFS파일 시스템도 호환 가능하도록 하겠다.

컴파일 과저에서 나올 수 있는 오류 제거 -> 커널을 그냥 받으면 기본 설정이 되어있어서 수정해야 오류가 나지 않는다.
nano ./.config 파일에서 아래 내용 지우기
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"
다 지워준다.

make clean
config할 때 생성되었던 쓸데없는 파일 정리해준다.
한번에 여러 명령을 같이 실행할 때에는 ;(세미콜론)으로 구분해주면 된다.

make modules_install : 컴파일 된 모듈을 /lib/modules에 설치
make install : 설치
(근데 이게 엄청 오래걸림) (시도만 해보자^^)

profile
코드를 두드리면 문이 열린다

0개의 댓글