-
LPIC level 1 101 공부 - 5장 정리 (파일 관리)[공부] 프로그래밍/Linux 2023. 9. 9. 09:54
5-1 일반 유저인 tom이 자신이 속해있는 모든 그룹명만을 표시 : groups tom
-> 어떤 그룹에 속해있는지 : id [옵션] [유저명]
5-2 아래의 실행 결과
: fileA의 소속자는 yuko
이 파일을 소유하는 같은 그룹의 멤버만 읽고 쓰기가 가능
$ ls -l - rw- rw- r--. 1 yuko engineer 0 4月 20 14:16 fileA <---파미션---> <소유자><그룹>
-> ls -l : 파미션, 그 파일의 소유자, 소속하는 그룹명을 표시
①- ②rw- ③rw- ④r--① : 파일 종류- : 통상 파일d : 디렉토리l : 심볼릭 링크② : 유저 (소유자)에 대한 파미션r : 읽기w : 쓰기x :실행③ : 그룹에 대한 파미션④ : 그 외의 유저에 대한 파미션5-3 /etc/passwd 파일의 파미션 : -rw-r--r-- root root /etc/passwd
5-4 아래의 파일의 소유자는 읽기, 쓰기, 실행이 가능하며 모든 유저는 읽기와 실행이 가능한 파미션 설정 : chmod a+x,g-w fileA
$ ls -l -rw-rw-r--. 1 user01 user01 0 6月 9 15:30 fileA
-> chmod : 기존의 파일과 디렉토리에 설정되어있는 파미션 변경 (소유자 또는 root만 가능)
chmod [옵션] 모드 파일명-R디렉토리에 설정한 경우, 서브디렉토리를 포함하는재귀적인 파미션이 변경됨シンボリックモードオクタルモードchmod [유저] [조작] [파미션][유저] [그룹] [기타]읽기 : 4쓰기 : 2실행 : 1권한X : 0[유저]u : 소유자g : 그룹o : 기타a : 모두[유저]rw-4+2+0 = 6[조작]+ : 허가 추가- : 허가 삭제= : 허가 설정[그룹]rw-4+2+0 = 6[파미션]r : 일기w : 쓰기x : 실행권[기타]r--4+0+0 = 45-5 umask 값이 022 인 경우, 파일을 신규 작성할 때 파미션 : 644
-> 유저가 파일이나 디렉토리를 신규로 작성할 때는 디폴트의 파미션이 부여되어있다
유저의 디폴트 파미션은 shell에 설정된 umask값에 따라 정해진다
umask : umask 값 확인
파일디렉토리작성시에 애플리케이션이지정하는 파미션666 rw- rw- rw-777 rwx rwx rwxumask 값002 --- --- -w-002 --- --- -w-디폴트 파미션664 rw- rw- r--775 rwx rwx r-x5-6 파일을 신규 작성했을 때, rw-r----- 파미션이 되는 umask값 : 0027
5-7 student 그룹 파일을 소유 그룹은 변경하지 않고 소유자만 taro에서 hana로 변경하는 방법 : chown hana 파일명
-> chown : 지정된 파일의 소유자와 그룹을 변경 (root만 가능)
chown [옵션] 유저명 [.그룹명(=:그룹명)] 파일명 | 디렉토리명-R디렉토리만 설정이 가능하고, 서브디렉토리를 포함재귀적으로 소유자, 그룹이 변경chgrp [옵션] 그룹명 파일명 | 디렉토리명-R디렉토리만 설정이 가능하고, 서브디렉토리를 포함재귀적으로 그룹이 변경5-8 root 유저가 아래의 command를 실행했을 때
: /tmp/ryo 내에 있는 모든 파일, 디렉토리에 대해서 yuko에게 소유권이 넘겨짐
# chown -R yuko/tmp/ryo/*
5-9 유저가 독자적으로 작성해, root권한으로 인스톨한 mycmd 프로그램의 SUID를 설정 : chmod 4755 mycmd
# ls -l -rwxr-xr-x 1 root root 117 5月 22 17:23 mycmd
-> SUID : 리눅스의 특수한 파미션 속성 (Set User ID)
어떤 유저가 실행해도 유효 유저ID가 파일의 소유자ID가 된다
SUID는 파미션에 [4000] 또는 소유자에 [s]를 부여한다
# ls -l -rwxr-xr-x 1 root root 117 5月 22 17:47 mycmd #chmod u+s mysmd // =chmod 4755 mycmd (4755 -> 사전 파미션 755에 4000을 추가) -rwsr-xr-x 1 root root 117 5月 22 17:47 mycmd // 이 처리로 인해서 일반 유저인 yuko가 실행해도 유효 유저ID는 root가 된다
5-10 /tmp/team 이하에 신규 파일과 디렉토리를 작성했을 때, /tmp/team과 같은 그룹이 소유하는 설정 : chmod 2775 /tmp/team
-> SGID : 파일의 그룹ID가 실효 그룹ID로써 설정된다
파미션에 [2000] 또는 [s]를 부여
// 작업 디렉토리(/tmp/team)의 소유 그룹은 engineer # ls -ld drwxrwx--- 2 yuko engineer 4096 5月 22 17:47 // yuko가 작업 디렉토리 이외에 파일을 작성하면 1차 그룹인 yuko가 그룹ID가 된다 $ touch share_file $ ls -l -rw-rw-r-- 1 yuko yuko // SGID가 설정된 디렉토리 이하에서 파일이나 디렉토리를 작성하면 SGID가 설정된 디렉토리의 그룹이 계승되어 설정된다 # ls -ld drwxrwx--- 2 yuko engineer 4096 5月 22 17:47 . $ chmod g+s /tmp/team // =chmod 2770 /tmp/team $ ls -ld drwxrwx--- 2 yuko engineer 4096 5月 22 17:47 .
5-11 일반적으로 Sticky bit가 설정되어 있는 디렉토리 : /tmp
-> Sticky bit : 특정한 디렉토리에 대한 엑세스권이 허가 되어 있어도 파일의 삭제는 할 수 없도록
보호하는 설정
Sticky bit 설정 : chmod에 [1000] 혹은 [o+t] 사용
5-12 [In fileX fileY]이라고 실행했을 때
: fileX를 기초로 fileY이라는 ハードリンク를 작성한다
-> In : 파일에 링크를 작성
동일 파일에 다른 2개의 이름을 갖도록 하는것이 가능
따라서 데이터를 복사하는 것이 아니라 같은 데이터를 가리키고 있다
ハードリンクIn 오리지널파일명 링크명・ 링크 파일이 사용하는 i 노드 번호는 오리지널 파일과 같다・ 다른 파일 시스템 사이에서 링크 파일을 작성하는것은 X・ i 노드 번호는 같은 파일 시스템내에서 유니크 번호이기 때문에, 다른 파티션의 ハードリンク를 작성 XシンボリックリンクIn -s 오리지널파일명 링크명・ 링크 파일이 사용하는 i 노드 번호는 오리지널 파일과 다르다・ 다른 파일 시스템 사이에서 링크 파일을 작성하는것은 O・ 파미션 선두에 [l]이 표시$ ls fileX $ In fileX fileY // ハードリンク 작성 $ cat fileX hello $ cat fileY hello $ ls -li file* // i노드를 표시 : ls에 i 옵션 추가 97789 -rw-rw-r-- 2 yuko yuko 6 5月 22 21:42 fileX 97789 -rw-rw-r-- 2 yuko yuko 6 5月 22 21:42 fileY $ rm fileX $ cat fileY hello // fileX를 삭제해도 fileY에는 엑세스 가능
5-13 ハードリンク했을 때 변경되는 파일의 속성 : 링크 수
5-14 2회째 백업을 실행 했을 때에 변경되어 있지 않은 파일에 대해서 ハードリンク가 작성되어 있었다 -> 백업에 ハードリンク를 사용하는 장점
: ハードリンク는 링크元와 데이터를 공유하기 때문에 백업 용량을 절약 가능
ハードリンク는 복사와 달리, 메타데이터를 변경하는것 뿐 백업을 빠르게 진행
5-15 어느 파일 시스템에 용량이 부족해 이 중에 디렉토리 이하를 별도의 파일 시스템에 이동하게 되었다 -> 새롭게 이동한 디렉토리를 이동하기 전과 똑같은 패스명에서 엑세그가 가능 하도록 하는 방법 : シンボリックリンク를 사용
-> 다른 파일 시스템 사이에서는 ハードリンク 사용 X
이 때에는 シンボリックリンク
$ ls fileX $ In -s fileX fileY // シンボリックリンク 작성 $ cat fileX hello $ cat fileY hello $ ls -li file* // i노드를 표시 : ls에 i 옵션 추가 780336 -rw-rw-r-- 2 yuko yuko 6 5月 22 21:42 fileX 780332 lrwxrwxrwx 2 yuko yuko 6 5月 22 21:42 fileY -> fileX // 다른 i노드 번호, 파미션 선두에 [l]이 붙음, 링크명 -> 오리지널명 $ rm fileX $ cat fileY 에러 // fileX를 삭제하면 fileY도 삭제
5-16 아래의 파일에 i 노드 번호가 4990733의 fileC를 작성
: In fileA fileC
$ ls -li 4990733 -rw-rw-r--. 1 user01 user01 4月 21 11:20 fileA 5308177 lrwxrwxrwx. 1 user01 user01 4月 21 11:20 fileB -> fileA
5-17 최후의 갱신에서 5일 경과한 파일을 찾을 때 : find -mtime 5
-> find : 지정한 디렉토리 이하에서 지정한 검색 조건에 합치하는 파일을 검색
일시 검색 시 - 2일전 : 2
- 2일전 보다 미만 (1일전) : -2
- 2일 전 이상 : +2
-print0 : 파일의 区切り에 공백이나 개행이 아닌, null문자가 채워짐
xargs -0 : 표준입력에서의 문자열에 대해 공백이나 개행이 아닌, null문자가 채워짐
find [옵션] [path] [식]-name지정한 파일명 찾기-type파일 타입 찾기d : 디렉토리f : 통상 파일l : 심볼릭 링크 파일-size지정한 블럭 사이즈 검색-atime지정한 일시를 기초로 최종 엑세스가 있던 파일 검색-mtime지정한 일시를 기초로 최종 갱신된 파일 검색-uid파일의 소유자의 유저 ID를 검색-user파일의 소유자의 유저 혹은 유저 ID 검색-perm파일의 파미션을 지정-print검색 결과를 표준 출력-exec command \;검색 후 command를 실행# ls dirA file B fileA # find . -type f | xargs rm // 파일만 삭제 rm cannot remove rm cannot remove # ls dirA file B // file B가 삭제 되지 않음 # ls dirA file B fileA # find . -type f -print0 | xargs -0 rm // 파일만 삭제 rm cannot remove rm cannot remove # ls dirA
5-18 find으로 파일 검색 시, 검색하는 서브 디렉토리의 깊이가 3층까지 제한하는 조작
: find . -maxdepth 3 -name filename
-> -maxdepth : 계층 수 지정
5-19 /tmp 이하에 있는 root가 소유하고 있는 디렉토리와 파일을 전부 표시
: find /tmp -uid 0 -print
find /tmp -user root -print
5-20 이전에 작성한 파일을 검색하는 경우, 옵션 등을 사용 X 파일명만 검색
: locate
-> locate 파일명 : 파일 검색 가능 (find는 옵션 필요)
데이터 베이스 갱신 : updatedb [옵션]-e데이터 베이스 파일의 일람이 혼잡해지지 않도록 디렉토리 패스를 지정-o생긴 대상의 데이터 베이스명을 지정5-21locate가 참조하는 데이터 베이스 중에서 특정의 검색 디렉토리를 포함하지 않도록 하는 방법 : /etc/updatedb.conf 파일을 편집
-> updatedb -e 디렉토리명 혹은 /etc/updatedb.conf 파일 수정
# cat /etc/updatedb.conf // 데이터 베이스 구축 시, 대상외가 되는 파일 시스템 타입 기재 PRUNEFS = "auto afs gfs gfs2 iso9660 sfs udf" // 대상외가 되는 디렉토리 패스를 기재 PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/spool/cups"
5-22 PATH 변수에 지정된 디렉토리에 대하여 command를 검색 : which
-> which : 지정된 command가 어떤 디렉토리에 격납되어 있는지를 PATH 환경변수에서 지정된 디렉토리를 기준으로 검색
5-23 command의 패스와 메뉴얼의 패스를 표시 : whereis
-> whereis : 지정된 command의 바이너리, 소스, 메뉴얼 페이지의 장소를 표시
whereis [옵션] command명-b바이너리의 장소를 표시-m메뉴얼의 장소를 표시-s소스 파일의 장소를 표시5-24 ps command의 메뉴얼의 파일이 어디에 있는지를 조사 : whereis ps
5-25 PATH 변수에 지정된 디렉토리 이외에 위치하고 있는 command를 검색
: find
'[공부] 프로그래밍 > Linux' 카테고리의 다른 글
LPIC level 1 101 공부 - 7장 정리 (시스템 아키텍쳐 관리) (0) 2023.09.09 LPIC level 1 101 공부 - 6장 정리 (소프트웨어 관리) (1) 2023.09.09 LPIC level 1 101 공부 - 4장 정리 (파일 시스템 관리) (0) 2023.09.09 LPIC level 1 101 공부 - 3장 정리 (프로세스 관리) (0) 2023.09.09 LPIC level 1 101 공부 - 2장 정리 (정규표현과 vi에디터) (0) 2023.09.09