기타

linux 리눅스 권한, 명령어

whyHbr 2025. 2. 19. 22:32
728x90
반응형

파일 권한 기본

(mobaXterm 을 활용해 실습. cd /mnt/c/Users 같이 c 앞에 /mnt 써줘야 한다.)

 

파일 권한

  • 파일 권한은 rwx 로 구성된다.
  • r read 읽기
  • w write 쓰기
  • x execute 실행

파일 권한 범주

  • user 소유자
  • g group 파일 소유자가 속한 그룹에 포함된 사용자
  • others user, group 을 제외한기타 사용자

 

$ cd /mnt/c/Users
hanboreum@DESKTOP-VO9DV1I:/mnt/c/Users$ ls -al // 권한 확인
total 0 //해당 디렉토리 내 파일이나 서브 디렉토리가 없다는 뜻
lrwxrwxrwx 1 hanboreum hanboreum   18 Dec  7  2019 'All Users' -> /mnt/c/ProgramData
-r-xr-xr-x 1 hanboreum hanboreum  174 Dec  7  2019 desktop.ini
  • lrwxrwzrwz
    • l: 파일 링크. 심볼릭 링크를 의미한다.
    • rwx : 소유자에 대한 권한 read, write, execute
    • rwx: 소유자 그룹에 대한 권한 read, write. execute
    • rwx: 기타 사용자에 대한 권한 read, wirte,execute
  • 1: 하드 링크 수
  • hanboreum: 파일 소유자
  • hanboreum: 파일 그룹
  • 18: 심볼릭 링크의 바이트 수
  • Dec 7 2019: 마지막 수정 날짜
  • 'All Users': 심볼릭 링크의 이름
  • /mnt/c/ProgramData: 심볼릭 링크가 가리키는 실제 경로

 

Q. 소유자에게만 읽기, 쓰기, 실행 권한이 있다면?

A. lrwx------

 


파일 권한 변경

 chmod 파일 권한 변경

 

  • chmod [옵션][권한][파일명]
    • 옵션: 권한을 설정할 때 사용할 수 있는 추가 옵션. -R 옵션 사용 시 디렉토리 내 모든 파일에 대한 권한 변경 가능
    • 권한: 설정할 권한을 지정
      • chmod [u or g or o or a]
      • u user, g group, others, all
    • 파일명: 권한을변경할 파일이나 디렉토리이름

 

  • 심볼릭 (문자) 모드
    • 권한을 rwx 로 나타낸다. 권한 추가, 삭제 가능
    • 사용자
      • u
      • g
      • o
      • a : user, group, others 모든 사용자
    • 권한
      • r read
      • w write
      • x execute
    • 연산자
      • + 권한 추가
      • - 권한 제거
      • = 권한 설정
chmod u+x test.file // user 에게 실행 권한 부여
chmod g-x test.file // group 에게 실행 권한 삭제

ls -al
ls -l // 이 명령어로 권한을 확인 할 수 있다.

 

 

  • 숫자 모드
    • 권한을 숫자로 표현
      • r: 4
      • w: 2
      • e: 1
    • 각 사용자의 권한을 합산하여 숫자로 나타낸다.
      • rw- : 6
      • r-- : 4
      • rwx: 7
      • r-x: 5
chmod 777 test.file //test.file 의 사용자, 사용자 그룹, 기타 사용자에게 읽기, 쓰기, 실행 권한 부여
chmod 755 test.file // 소유자에게 rwx, 사용자 그룹에게 rx, 기타 사용자에게 rx
chmod 744 test.file// 소유자에게 rwx, 사용자 그룹에게 r, 기타 사용자에게 r

// 권한 확인
ls -al
ls -l

 

 


특수권한

읽기, 쓰기, 실행 외 특수한 기능을 가진 권한

Setuid, Setgid, sticky bit 으로 나뉜다.

 

  • Setuid: set user id 프로그램 실행 시 해당 프로그램이 실행되는 사용자의 권한이 아니라, 파일 소유자의 권한으로 실행되게 한다.
    • 보통 시스템 관리자가 특정 작업을 수행할 수 있게 하기 위해 사용
    • ex) 사용자의 권한은 비밀번호를 변경할 수 없지만, 파일 소유자 권한은 변경할 수 있다.
chmod u+s test.file //소유자에게 setuid

// x가 아니라 s 로 출력된다. 
-rwsrwxr--

 

  • Setgid: setuid 와 비슷하지만 그룹에 적용됨. 이 권한이 설정되는 사용자의 권한이 아니라, 파일 소유자의 그룹 권한으로 실행되게 한다.
    • 디렉터리에 setgid 설정 시 해당 디렉터리 안 새로 생성되는 파일들의 그룹이 자동으로 해당 디렉터리의 그룹으로 설정된다.
    • ex) 공동 작업 하는 팀의 특정 디렉터리에서 파일을 공유하고 수정할때 setgid를 설정하면 그 디렉터리 내의 파일들이 모두 동일한 그룹을 가지게 된다. 
chmod g+x test.file
ls -l
//그룹이 rws 로 변경
-rwxrwsr
//권한 회수
chmod g-x test.file

 

  • Sticky bit: 설정된 디렉터리 안에서는 파일의 소유자만 가능, 파일을 삭제, 변경할 수 없다. 주로 공용 디렉터리에서 사용된다.
chmod +t test.file
ls -l test.file

//권한 끝에 -T 가 표시된다.
-rwxrwsr-T

 


파일 및 디렉토리 생성, 글 작성

//파일 생성
touch test.file
// 글 작성
echo "hello linux" > test.file
// 글 확인
cat test.file

절대경로 상대경로 

  • 절대 경로
    • 파일 시스템의 루트 (최상위) 부터 시작하는 경로
    • / 부터 시작. 경로의 정확한 위치를 나타낸다.
    • 언제나 같은 경로를 나타내므로, 현재 디렉터리 위치의 상관 없이 정확하게 같은 위치를 참조할 수 있다.
cd /home/name/doc

 

  • 상대경로
    • 현재 작업중인 디렉터리를 기준으로 하는 경로
    • 현재 위치에 따라 달라지기에 작업 디렉터리 따라 경로가 달라진다.
cd doc

 


절대경로와 상대경로에서 rm, cp, mv

//절대경로
//디렉터리 생성
sudo mkdir -p /home/name/doc

//파일 생성
touch /home/name/doc/file.test

//생성된 파일 확인
ls /home/name/doc

//*권한 때문에  Permission denied가 나올 수도 있다.
//chown: 디렉터리 소유자와 그룹을 변경하느 명령어
//suco chown <owner>:<group><file:dic path>
sudo chown hanboreum:hanboreum /home/name/doc
touch /home/name/doc/file.txt

 

// 절대경로로 파일 생성
touch file.txt

 

 

cp: 복사

//상대경로

//file.txt를 file2.txt 생성 복사
cp file.txt file2.txt

//절대 경로
cp /home/name/doc/file.txt /home/name/doc/file.txt

 

 

mv 파일 이동

// 절대경로
mv /home/name/doc/file.txt /home/name/doc2/

//절대경로
mv doc2/file2.txt doc/

 

mv 이름 변경

// 상대경로
mv file.txt newname.txt

//절대경로
mv /home/name/doc/file.txt /home/name/doc/newname.txt

//상대 경로로 바꾸며 경로 변경
mv file txt. /home/name/doc2/newfile.txt

//절대 경로로 바꾸며 경로 변경
mv /home/name/doc2/file.txt /home/name/doc/newname.txt

 

 

rm 파일 삭제

//상대 경로
rm file.txt

//절대경로
rm /home/name/doc/file.txt

 

find

  • 파일 시스템 내에서 파일과 디렉토리를 검색하는데 사용된다.
  • find [path][option][search condition]
    • 경로 생략 시, 현재 디렉토리에서 시작.
//파일 이름 검색
find -name "file3.txt"

//확장자 txt 검색
find -name "*.txt"

//file로 시작하는 모든 파일
find -name "file*"

//대소문자 구분 없이 검색
find -iname "file*"

 

 


type

주어진 명령어가 쉘 내에서 어떤 유형의 명령어인지 확인

//디렉터리 찾기
find /home/name type d

//일반 파일 찾기
find /home/name -type f

//심볼릭 링크 찾기
find -type l

 


size

  • 파일 크기
//1GB보다 작은 파일 찾기
find -size -1G

// 정확히 1GB 파일 찾기
find -size 1G

time

수정 시간

// 7일 이상 수정되지 않은 파일
find -mtime +7

//7일 이내 수정된 파일
find -mtime -7

//7일 이내에 접근된 파일 찾기
find -atime -7

//오늘변경된 파일 찾기
find -ctime 0

Perm

파일 권한으로 찾기

// 권한 777 인 파일 (= rwe rwe rwe)
find -perm 777

//권한 755 이하인 파일 
find -perm -755

-use, -group

소유자, 그룹 권한 파일 찾기

//소유자 user파일
find -user name
//그룹 group 파일
find -group group
728x90

'기타' 카테고리의 다른 글

linux - 명령어  (0) 2025.02.23
linux - 명령어 실행 시 조회 순서, 명령어에 경로가 포함된 경우 실행 차  (0) 2025.02.23
Elastic search?  (0) 2025.02.17
Redis 를 어디에 쓸까  (0) 2025.01.10
Redis란  (0) 2025.01.08