[이것이 리눅스다 4-2] 리눅스 기본 명령어, 소유권 허가권

2024. 11. 13. 17:12Linux

이것이 리눅스다 강의 목차

4.3 리눅스 기본 명령어

4.4 사용자 및 그룹 관리

4.5 파일의 소유권/허가권, 링크

의 내용을 축약해서 담고 있습니다.


리눅스 기본 명령어 [1]

ls       # 해당(현재 위치) 디렉터리에 있는 파일의목록을 나열
cd ../etc/sysconfig      # 디렉터리를 이동 상대경로/절대경로로 이동
pwd      # 현재 디렉터리의 전체 (절대)경로 츨략
rm -rf abc     # 파일, 디렉터리 삭제

 * rm -rf의 경우 재귀적으로 해당 디렉토리 및 그 아래의 파일을 밀어버리는 무시무시한.. 명령어라

실무에서 쓸일은 없다.

  

man rm 실행 후 터미널 창

 

리눅스 기본 명령어 [2]

cp abc.txt abcd.txt # 파일이나 디렉토리 복사, abc.txt라는 기존 파일을 abcd.txt라는 새로운 이름의 파일로 복사
touch abc.txt # 크기가 0인 새파일 생성, 존재시 수정 시간 변경
mv abc.txt cba.txt # 파일명 변경 및 파일 위치 변경
mkdir newdirectory # newdirectory 폴더 생성

touch 사용의 장점

  1. 파일 변경 이력 추적 용이
  2. 배포 버전 관리 효율화
  3. 팀 협업 시 파일 수정 여부 명확히 표시

주의사항

  • 실제 파일 내용은 변경되지 않음
  • 타임스탬프만 수정됨
  • 버전 관리 시스템(예: Git)과 함께 사용 시 주의 필요

 

리눅스 기본 명령어 [3]

rmdir abc #디렉터리 삭제, 디렉터리가 비어있어야만 수행
cat a.txt # vi에 들어가지 않아도 해당 파일의 내용을 확인할 수 있다
head a.txt # 앞의 10행
tail a.txt # 뒤에서 10개 행


cat a.txt | more # 파일 내용이 많을 경우 페이지 딘위로 출력
less a.txt # more과 같은 기능이지만 위아래 페이지로 이동 가능
file a.txt # 어떤 종류의 파일인지 표시
clear # 명령창 지우기 (Ctrl + L)

 

 


 

사용자와 그룹

리눅스는 다중 사용자 시스템으로 root(수퍼 유저)와 일반 유저가 존재한다. 

사용자는 /etc/passwd 파일에 정의되어있다

 

사용자와 그룹 관련 명령어 [1]

useradd user1 # 새로운 사용자 추가
passwd user1 # 사용자 비밀번호 지정 및 변경, 다음 라인에서 입력받는다
usermod -g root newuser #사용자 속성 변경 -g는 그룹 변경 명령어이다
userdel user1 # 사용자 삭제

 

사용자와 그룹 관련 명령어 [2]

change -m 2 user1 # 사용자의 암호를주기적으로 변경하도록 설정 (-m : month)
groups # 현재 사용자가 속한 그룹 보여줌
groupadd newgroup # 그룹 추가
groupmod -n newgroup mygroup # mygroup -> newgroup으로 이름 변경

groupdel newgroup # newgroup 삭제
gpasswd newgroup #사용자와 마찬가지로 그룹의 비밀번호 변경

 


 

파일의디렉터리의 소유와 허가권 [1]

실습 환경

첫번째 줄은.. 이상하게 출력된것같아, 2번째 줄을 가져오자면

-rw-r--r--. 1 root root 0 Nob 13 16:08 abc.txt 

해당 내용을 표로 정리해보겠다

- rw-r--r-- 1 root root 0 Nob 13 16:08 abc.txt
파일 유형 파일 허가권 링크 수 소유자명 그룹명 파일크기(Byte) 수정 날짜 파일명

파일 유형 : -(파일), d(디렉터리), l(링크)

허가권은 3글자씩 끊어서

rw- r-- r--
소유자 그룹 그외
6 4 4

각각 r:4 w:2 x:1로 합하여 8진수를 구할 수 있다.

 

파일의디렉터리의 소유와 허가권 [2]

chmod 777 sample.txt #파일 허가권을 rwxrwxrwx로 변경 (x는 실행!)
chown centos.centos sample.txt #sample.txt의 소유권을 centos라는 사람과 centos그룹으로 변경
chown centos:centos sample.txt # :(콜론)도 사용 가능!
chown centos sample.txt # 2번째 줄을 나누어 표현
chgrp centos sample.txt

 

 


링크

파일의 링크에는 하드 링크, 심볼릭 링크가 존재한다. 

하드링크 : 하드링크파일 하나만 생성되며 같은 inode를 사용합니다.

심볼릭링크 : 새로운 inode를만들고, 데이터는 원본 파일을 연결합니다.

 

공부하다보니, 어 이거 깊은 복사와 좀 유사한데..? 싶어서 클로드의 도움을 받아 정리해봤습니다.

 

특성 깊은 복사 하드 링크 심볼릭 링크
독립성 완전 독립 데이터 공유 경로 참조
공간사용 전체 크기 미미함 매우 적음
원본삭제 영향없음 유지 깨짐
inode 새로생성 공유 새로생성

깊은 복사는 기존 원본데이터와는 별도의 값을 가진 데이터이고,

하드링크는 노드를 공유하기 때문에 reference count 가 0이 될 때 비로소 삭제되는 데이터입니다.