ex03 에서 exo.tar 만 남기고 파일 지우기
cat z : z 라는 파일을 보여주라는 의미
cat : 파일의 내용을 출력하라.
chmod 로 권한 변경
각각 링크 수, 용량, 시간을 의미함
링크 수는 1이므로, 따로 지정해줄 필요가 없음.
용량은 40.
시간을 지정해주는 명령어 :
touch 명령어를 이용해 touch -t "202106012342" testShell00 과 같이 지정해줌.
tar -cf 명령어는 파일을 압축할때 쓰이는 명령어.
f는 기본옵션이고(대상 아카이브를 지정), c는 파일을 압축할 때 쓰임.
용량을 지정해 주는 명령어 :
$ head -c 5M /dev/urandom > 5mb_test.txt
https://info-lab.tistory.com/302
ls -l 명령어는 일단 파일을 나열하라는 의미,-l 옵션을 사용하면 각 줄별로 파일에 대한 정보를 확인할 수 있습니다. 이때 표시되는 내용은, 다음과 같은 정보를 순서대로 나타낸다.
[권한][링크 수] [소유자][그룹] [파일 크기][시간] [파일명]
ln -s [원본 파일명][링크 이름]
ln 명령어에 -s 옵션으로 심볼릭 링크(소프트 링크)를 생성할 수 있습니다. 심볼릭 링크는 원본 파일의 위치를 가리키는 포인터가 포함되며 원본이 삭제되면 사용할 수 없습니다.
test0 : 디렉토리 , chmod 715 test0, touch -t "" test0
test1 : 파일, chmod 714 test1 , touch -t "" test1 , head -c 4 /dev/urandom > test1,
test2 : 디렉토리 , chmod 504 test2, touch -t "" test2,
test3 : 파일 , chmod 404 test3, touch -t "" test3, head -c 1 /dev/urandom > test3, but 링크가 두개다. 하지만 자세히 보면 test3, test5 가 같은 것을 확인할 수 있다. 따라서 두개를 하드 링크로 바꾸어주면 각각 링크를 두개씩 갖게 하며 동일한 내용을 갖게 할 수 있다,
test4: 파일
test5 : 심볼릭 링크, ln -s test0 test6 명령어를 통해 바꿀 수 있다.
커버로스 프로토콜이란?
커버로스는 티켓(ticket) 기반의 컴퓨터 네트워크 인증 프로토콜이다.
보안이 보장되지 않은 네트워크 환경에서 요청을 보내는 유저와 요청을 받는 서버가 서로의 신뢰성을 확보하기위해 사용된다.
티켓이 뭔가요? 왜 쓰는거죠?
커버로스에서 사용하는 티켓은 유저 아이디를 안전하게 전달하는 데 사용되는 정보 패킷이다.
티켓에 포함하는 대표적인 정보들은 다음과 같다.
유저 아이디
유저 호스트의 IP 주소
타임 스탬프(time stamp, 시간 기록)
티켓 수명을 정의하는 값
세션 키
이러한 정보들을 담고 있는 티켓은 티켓을 발급하는 서버의 비밀 키(secret key)로 암호화(encrypt)된다.
kinit :
kerberos ticket 생성
kinit -p your_principal 형태로 default realm 외 티켓 생성이 가능 (principal 예시 : your_id@your_realm)
kinit -t your_keytab 형태로 keytab을 이용한 티켓 생성이 가능
klist :
만들어진 티켓 목록을 확인
klist -l 로 모든 티켓 목록을 확인 가능
klist -vA 로 모든 티켓 상세내용을 확인 가능 (macOS : klist -vA, linux : klist -aA)
ktutil :
keytab 생성/관리 기능
-k 로 keytab 위치 지정
add 로 keytab 생성
-p 로 principal 기술
-e 로 encript type 지정
-V 로 version 기술
list 로 keytab 내용 확인
사용할 수 있는 ip 가 지정된 티켓과 달리 keytab의 경우 접근만 가능하면 쓸 수 있어 다른 서버로 옮겨 사용이 가능
ktutil 참고 링크 : https://kb.iu.edu/d/aumh
[출처] kerberos 명령어|작성자 Curycu
https://unix.stackexchange.com/questions/20460/how-do-i-do-a-ls-and-then-sort-the-results-by-date-created
https://www.computerhope.com/unix/uls.htm
https://www.freebsd.org/cgi/man.cgi?query=ls&sektion=1&manpath=FreeBSD+11.0-RELEASE
ctime 은 change time 으로 createime 이 아님.
따라서 ls -mpUt 가 답임!!!
https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
https://stackoverflow.com/questions/1967967/git-command-to-display-head-commit-id
-문제의 조건 : 1. 커밋의 ID 표시 2. 다섯개를 표시해야함.
마지막 5개 : -5 하는 것
git log --format="%H" -5
또는 --pretty 도 가능
commit 의 hash 값 출력
https://ithub.tistory.com/205
https://stackoverflow.com/questions/15925079/why-does-git-ls-files-ignore-require-exclude-patterns
1.ls-files 명령어를 사용함 이 명령어는 git 저장소에 관련된 index 라던가, working tree 라던가에 관련된 파일의 정보를 보여줄때 쓴느 것. 작업 트리란 우리가 로컬에서 작업하는 것을 말하고 add 를 하게 되면 staging 되어서 index 에 있는 것. 변경사항을 기록하기 위해서는 인덱스에 저장되어야 함. index 란 공간을 가상 공간.
2. -ignored 란 뜻은 --exclude 하고 같이 쓰임. 왜냐하면 --exclude에서 매칭된 것들만 보여주기 때문이다.
3. 그럼 여기서 -o의 존재가 궁금ㅁ할 수 있다. -o는 -others 라는 의미로,
--exclude-standard : gitignore 파일의 규칙에 따른다. 즉, git ignore 에 명시된 파일은 표시하지 않는다.
https://nochoco-lee.tistory.com/47
git check-ignore 명령어는 어떤 파일들이 Git 에서 ignore 처리되어 있는지 알려준다.
커맨드라인에서 파일 이름들을 인자로 넘기면, git check-ignore 는 그 중에서 ignore 처리된 파일 이름들을 나열해줄 것이다.
By default, tracked files are not shown at all since they are not subject to exclude rules; but see ‘--no-index’.
find . (현재 디렉토리 및 하위 디렉토리 모두 포함)
cf ) 참고 find https://recipes4dev.tistory.com/m/156#313-%EA%B2%80%EC%83%89%EB%90%9C-%ED%8C%8C%EC%9D%BC%EC%97%90-%EB%8C%80%ED%95%9C-%EC%83%81%EC%84%B8-%EC%A0%95%EB%B3%B4-%EC%B6%9C%EB%A0%A5-find--ls
https://jm4488.tistory.com/60
https://lascrea.tistory.com/62
exec
: 앞선 명령어의 결과를 입력으로 받아 “\;” 라는 표기자를 만날때까지 읽고 실행
: 즉 exec 커맨드의 끝을 ';'(세미콜론)으로 표기해줘야함
: '+' 옵션은 인자를 연속으로 입력해서 커맨드 한번으로 실행하게끔 해줌
git ls-files -o -i --exclude-standard
find . -type f -exec git check-ignore {} + | cut -c 3-
find . -exec git check-ignore {} + | xargs -I{} basename {}
diff a b > sw.diff
patch -p0 -R b <sw.diff
https://twpower.github.io/195-how-to-apply-patch-file
https://hiseon.me/c/diff-patch/
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=pichxp&logNo=10154086870
http://www.w3big.com/ko/linux/linux-comm-patch.html
https://linuxize.com/post/diff-command-in-linux/
patch -p0 a -o b < sw.diff
https://recipes4dev.tistory.com/156
https://unix.stackexchange.com/questions/50612/how-to-combine-2-name-conditions-in-find
https://unix.stackexchange.com/questions/503528/get-list-of-files-deleted-by-find-delete
https://stackoverflow.com/questions/7236191/how-to-create-a-custom-magic-file-database
https://devanix.tistory.com/180
man magic 참조
file -C -m
file -m ./magicfile.mgc
① 0 string \177ELF ELF
파일의 처음부터 0바이트 떨어진 위치의 문자열이 "\177ELF"와 일치하는지 확인.
→ 일치하므로 "ELF"라고 표시
② >4 byte 0 invalid calss
처음부터 4바이트 떨어진 위치의 1바이트가 1임을 확인.
→ 일치하지 않으므로 다음 행으로 이동.
③ >4 byte 1 32-bit
처음부터 4바이트 떨어진 위치의 1바이트가 1임을 확인.
→ 일치하므로 "32-bit"라고 표시
④ 이후 당분간 일치하지 않으므로 계속 진행.
⑤ >5 byte 1 LSB
처음에서부터 5바이트 떨어진 위치의 1바이트가 1임을 확인.
https://cweiske.de/tagebuch/custom-magic-db.htm
https://stackoverflow.com/questions/64888377/my-file-doesnt-return-the-magic-file-message