Operation/Linux

Linux(ubuntu), 파일의 권한.

단님 2025. 2. 21. 23:42
728x90
파일의 권한

리눅스에서 파일의 권한은 다음 세 가지 범주로 나뉜다.

사용자의 접근 권한의 구분 : 소유자(user) / 그룹(group) / 그 외(other)

ls - l 을 통해 다음과 같은 목록이 표시가 되는데 ,

유형 , 권한 , 링크수, 소유자 , 그룹 , 파일크기 , 변경일자 , 이름 의 목록이 출력된다.

 

읽기 쓰기 실행 읽기 쓰기 실행 읽기 쓰기 실행
r w x r w x r w x
4 2 1 4 2 1 4 2 1
7 7 7
  • 읽기(read, r): 파일 내용을 읽을 수 있음 (값: 4)
  • 쓰기(write, w): 파일을 수정할 수 있음 (값: 2)
  • 실행(execute, x): 파일을 실행할 수 있음 (값: 1)

실행 권한은 속성의 파일이 아니고 디렉토리의 경우 접근 권한을 나타내기도 한다.

이 값들을 숫자값으로 표시하게 되면 다음과 같이 합산식으로 표시할 수 있다.

유저 권한은 100 대 그룹 권한은 10대 other 권한은 1대의 숫자값을 가지고 있기 떄문에 이 모든 권한들을 합쳐서 rwxrwxrwx 를 다가진 경우 777이라는 값으로 표시할 수 있다.

리눅스에서는 사용자의 파일을 만들거나 어떤 프로세스가 파일을 만들 수 있는데 ,  그때 생성되는 파일 또는 디렉토리 기본 권한을 표시하는 값이 된다.

해당 값은  말 그대로 사용자에게 귀속이 되면 사용자마다 다른 권한 값들을 가질 수가 있다.

리눅스의 기본 파일 권한 : 666(rw-rw-rw-)을 갖게 되고 , 디렉토리 권한은 777(rwxrwxrwx)을 갖게 된다.

 

chmod 명령어: 파일 권한 변경
chmod [option]... [mode]... <file>

파일 디렉토리 권한의 변경

chmod => change mode

 

숫자값을 통한 권한 부여
chmof 777 hello.txt 
#숫자값을 통한 user/group/other에 rwx 권한 부여

chmod 700 hello.txt
#숫자 값을 통한 user 에 rwx 권한 부여

 

 

문자값을 통한 권한부여
chmof u+x hello.txt 
#user에 x 권한 추가

chmod u-x hello.txt
#user에 x 권한 삭제

chmod g+rw hello.txt
#group에 r,w권한 추가

chmod g-rw hello.txt
#group에 r,w권한 삭제

chmod o+rwx hello.txt
#other에 r,w,x권한 추가

chmod +rwx hello.txt
#user/group/other에 r,w,x권한 추가

이렇게 파일별 , 디렉토리별로 권한을 설정할 수있다.

 

chown,chgrp 명령어: 소유자 변경
chown [option]... <user_name>[:group_name] <file>...
# 파일 / 디렉토리의 소유자/그룹 변경

chgrp [option]... <group_name> <file>...
#파일 / 디렉토리의 그룹 변경

chown => change owner

chgrp => change group

 

chown 사용 예시
chown user2 hello.txt
# 해당 파일(hello.txt)의 소유자를 user2로 변경

chown user2:user2 hello.txt
# 해당 파일(hello.txt)의 소유자와 그룹을 모두 user2로 변경

chown :user2 hello.txt
# 해당 파일(hello.txt)의 그룹을 user2로 변경

 

 

파일 특수 실행 권한

파일의 권한을 일시적으로 소유주(setuid) 혹은 소유그룹 (setgid)의 권한으로 빌려서 실행함.

특정 파일을 검색할 때 해당 파일의 소유주(setuid)나 소유 그룹(setgid)의 권한으로 실행 설정 설정 기능이 없다.

 

-rwsr-xr-x 1 root root 54232 Jan 1 12:34 /usr/bin/passwd
setuid (사용자 ID 설정)

파일의 실행 권한을 해당 파일의 소유주 의 권한으로 실행하도록 하는 권한.

일반적으로 passwd같은 폼에서 사용

chmod u+s <file_name>
#설정

chmod u-s <file_name>
#분할

 

setgid (그룹 ID 설정)

일을 실행하는 동안 파일의 그룹 권한으로 실행 설정 권한을 부여

chmod g+s <file_name>
#설정

chmod g-s <file_name>
#분할

 

 

sudo

해당 명령어는 우리가 실행하는 동안 해당 파일의 소유자인 루트 권한을 빌려오는것.

 

/tmp

이 디렉토리는 누구나 마음대로 파일 생성 가능.

임시적 파일 생성임으로 내용이 지워져도 무방

해당 사용자가 쓰고 있는 파일이 갑작스러워 지면 안된다.

파일은 디렉토리의 오너인 슈퍼 유저와 해당 디렉토리에 파일을 생성한 그 사용자만 해당 파일을 삭제할 수 있다.