먼저
touch file.txt
파일 생성 후 cd 에서
ls -l
-rw-r--r-- 1 root root 0 5월 26 19:11 file.txt
- :파일의 유형 - 는 파일 d디렉터리를 말함
rw-r--r--: 파일 허가권 (rwx)
1: 링크 수 이 파일이 몇가지의 링크에 연결되어 있는지를 보여줌
root:파일 소유자 이름
root: 파일 소유그룹 이름
0:파일 크기 (아직 빈파일이기 때문에 당연히 크기는 0)
5월 26 19:11:생성 날짜
file.txt: 이름
파일 허가권'
rw-r--r--을 3개씩 끊어서 읽음
소유자 / 그룹 / 그 외 사용자
rw- / r-- / r--
r = read
w= write
x = execute(실행)
2진수를 활용하여
rw- / r-- / r--
420 400 400
6 4 4
(최대 7)
파일과 디렉터리의 소유와 허가권
chmod 명령
-파일 허가권 변경 명령어
-chmod777sample.txt (모든 사용자에게 모든 허가권을 줌)
chown/chgrp 명령
-파일의 소유권을 바꾸는 명령어
-chown centos(소유자).centos(그룹) sample.txt(파일 이름)
또는
chown centos sample.txt 및 chgrp centos sample.txt(사용자 이름 그룹 이름만 써도 된다)
실습)
touch test
파일 만들고
안에 내용과 어떤 경로를 불러와라
ls -l test 로 속성 확인
-rw-r--r-- 1 root root 52 5월 26 19:36 test
whoami
자기 자신이 지금 무엇인지 말해줌
그다음 실행을 시킨다 test를
실행 시키는 방법은 ./test
하지만 허가권에 실행이 없다
즉 허가가 거부 된다
그러면
chmod 755 test로 사용자 : rwx, 그룹: r-x, 그외:r-x
로 실행 부분이 다 허가가 되었다
다시 ./text를 해보면
아까 불렀던 경로에 파일들과 써놨던 글씨들이 보일 것이다.
이번에는 chmod 숫자를 사용하지 않고 허가권을 줘 보겠다
chmod u+x test2 // test2에 user부분에 실행권을 준다. user+execute로
ls -l를 해보면 사용자 부분에 rwx로 되어있다.
user = u
group = g
other = o(0아님) 오
한번에 전부다 더할 수도 있음
chmod ugo + x test2 // user,group,other에 실행 권한을 준다
chmod ugo - x test2 // user,group,other에 실행 권한을 빼준다
소유권
소유자를 바꾸는 방법 chown
소유자 구룹을 바꾸는 방법 chgrp
실습
ls -l test2
소유권을 확인
소유자 root 소유자 구룹 root
chown centos test2 소유자를 root->centos로 바꾼다
chgrp centos test2 소유 그룹을 root -> centos로 바꾼다
그렇다면 이제 centos로 소유자가 바뀌었으니까 centos로 가서 확인을 해보자
가는 방법은 터미널에 su - centos 라고 치면 된다 만약 본인의 현재 위치가 root라면 로그인 없이도 바로 centos에 들어갈 수 있다
whoami로 본인이 무엇인지 알아봄
centos라는 결과가 나온다
그 다음
ls -l /root(/root란 centos 소유권을 가진 파일이 root 아래 있기 때문에 /root아래의 있는 centos 소유권을 가진파일의 속성을 검색하려고 ls -l를 한 것이다 즉 우리가 알아보려고 하는 것은 root에 있는 /root 아래있는 centos소유권을 가진 파일을 centos에서 불러오겠다는 이야기다)
ls -ld 디렉토리의 내용을 보는 명령어
허가권에 소유자와 그룹 소유자는 x로 실행이 가능하겠지만 other은 실행이 불가능하다.
root 사용자가 워낙 중요하다 보니까 다른 것들이 접근하지 못하게 해놨다
그냥 그다음으로
링크
-파일 링크에는 하드 링크와 심볼릭 링크 두 가지가 있다.
심볼릭 링크는 바로가기 와 비슷하여 설명하기 쉬운데 하드 링크는 윈도우즈에는 없는 개념이라 어려울 수 있다.
-하드 링크르 생성하면 "하드링크파일"만 하나 생성되며 같은 inode1을 사용
(명령: #ln링크대상파일이름 링크파일이름)
-심볼릭 링크를 생성하면 새로운 inode2를 만들고, 데이터는 원본 파일을 연결하는 효과
(명령: #ln -s 맃크대상파일이름 링크파일이름)
예제)
mkdir linktest //디렉터리 생성
cd linktest / (linktest디렉터리에 들어감)
ls //아무것도 없는 것을 확인함
vi basefile // vi 로 안에 원본 파일입니다 라고 적은 후에 :wq로 종류함
ls -il //inode까지 보여주는 ls -il
그다음에
(L)ln basefile hardlink// hardlink 을 만들어줌 ln은 하드링크를 만듬 basefile과 같은 위치를 가르키는 hardlink 를 만듬
ln -s basefile sotflink // softflink 를 만들어줌
ln -s 와 ln으로 하드 링크와 심볼릭 링크를 만들었다 그렇다면 만약 원본파일을 다른 곳으로 움직이면 어떻게 될까(삭제와도 같은 의미를 가지고 있다)
하들 링크는 그대로 있지만
심볼릭 링크는 깨진다
그 이유는 심볼릭 링크는 원본파일을 가르켜야 심볼링크인데 더 이상 가르킬 원본파일이 없기 때문이다
'공개' 카테고리의 다른 글
Linux:: 필수 개념과 명령어 - 파일 압축과 묶기, 파일 위치 검색 (0) | 2021.05.28 |
---|---|
Linux::필수 개념과 명령어-편리한 설치를 위한 DNF (0) | 2021.05.28 |
Linux :: 필수개념과 명령어-프로그램 설치를 위한 RPM (0) | 2021.05.27 |
Linux::필수 개념과 명령어-사용자와 그룹 관리 (0) | 2021.05.25 |
Linux::필수 개념과 명령어- 리눅스 기본 명령어 (0) | 2021.05.25 |