[linux] linux 권한변경

Leejaegun·2025년 2월 21일

linux

목록 보기
12/21

linux를 하다보면 권한을 변경해야 할때가 있다.
아무래도 서버에서 빌리면서 하는 거다 보니까, su로 관리자권한으로 들어가서 바꿔져야하는데

(yue) jaegun@knu-741ge:~/paper/YuE/inference$ ls -l /home/jaegun/paper/YuE/YuE/inference/infer.py
-rw-r--r-- 1 root root 24320  2월 21 18:15 /home/jaegun/paper/YuE/YuE/inference/infer.py

1. ls -l 출력 해석

-rw-r--r-- 1 root root 24320  2월 21 18:15 /home/jaegun/paper/YuE/YuE/inference/infer.py

이 줄을 쪼개서 보겠습니다:

(1) 첫 번째 문자 (- 또는 d)

출력에서 -가 보입니다. 이건 파일의 타입을 나타냅니다.
-: 일반 파일(regular file), 즉 텍스트 파일, 바이너리 파일, 스크립트 등.
d: 디렉토리(directory)를 나타냅니다. 예를 들어, drwxr-xr-x처럼 시작하면 디렉토리라는 뜻입니다.
다른 타입도 있음:
l: 심볼릭 링크(symbolic link)
p: 파이프(pipe)
c: 문자 특수 파일(character special file)
b: 블록 특수 파일(block special file)
infer.py는 일반 파일이라 -로 시작합니다. 질문하신 d는 디렉토리를 나타낼 때만 나옵니다. 예를 들어, /home/jaegun/paper/YuE/ 디렉토리를 확인하면:

ls -ld /home/jaegun/paper/YuE/

출력은 drwxr-xr-x처럼 시작할 수 있습니다. 여기서 d는 디렉토리임을 나타냅니다.

(2) 권한 부분 (rw-r--r--)

권한은 총 9자리로 나뉘며, 사용자(Owner), 그룹(Group), 기타(Other)로 나눠집니다. 각 3자리씩 읽으면 됩니다:

1~3자리 (rw-): 파일 소유자(Owner, 여기서는 root)의 권한.

r: 읽기(Read) 권한 (파일 읽기 가능).
w: 쓰기(Write) 권한 (파일 수정/삭제 가능).
-: 실행(Execute) 권한 없음 (파일 실행 불가능).
여기서는 rw-이므로 root 사용자는 이 파일을 읽고 수정할 수 있지만, 실행할 수는 없습니다.

4~6자리 (r--): 파일 그룹(Group, 여기서는 root 그룹)의 권한.

r: 읽기(Read) 권한 있음.
--: 쓰기와 실행 권한 없음.
즉, root 그룹에 속한 사용자는 이 파일을 읽기만 할 수 있습니다.

7~9자리 (r--): 기타 사용자(Other, root도 아니고 root 그룹도 아닌 모든 사용자)의 권한.

r: 읽기(Read) 권한 있음.
--: 쓰기와 실행 권한 없음.
즉, jaegun 같은 일반 사용자는 읽기만 가능합니다.

(3) 나머지 부분

1: 파일의 하드 링크 수(일반적으로 무시해도 됨).
root root: 소유자(Owner)와 그룹(Group). 여기서는 root 사용자가 소유하고, root 그룹에 속해 있습니다.
24320: 파일 크기(바이트 단위).
2월 21 18:15: 마지막 수정 날짜와 시간.
/home/jaegun/paper/YuE/YuE/inference/infer.py: 파일 경로.

2. 권한 변경

sudo chown -R jaegun:jaegun /home/jaegun

chown -R root:vilab /home/vilab
이 명령어는 잘못된 설정

❌ 현재 명령어의 문제점

root:vilab으로 설정하면 소유자는 root, 그룹은 vilab이 됨.
즉, /home/vilab 안의 파일을 수정하거나 실행할 수 있는 권한은 root에게 있음.
vilab 사용자는 읽기 권한만 가질 가능성이 큼 (쓰기 제한 가능성 있음).
이렇게 하면 vilab 사용자가 파일을 수정하거나 실행하려고 할 때 PermissionError가 발생할 수도 있습니다.
💥 의도한 대로 vilab이 모든 파일을 자유롭게 다루려면 아래 방법이 더 적절함.

✅ 올바른 설정 방법

1️⃣ 소유자를 vilab으로 변경

vilab이 /home/vilab의 모든 파일을 자유롭게 다루려면 소유자를 vilab으로 변경해야 해.

sudo chown -R vilab:vilab /home/vilab

이렇게 하면:

/home/vilab 및 하위 모든 파일과 폴더의 소유자가 vilab이 됨.
vilab 사용자는 읽기, 쓰기, 실행 권한을 가짐.

profile
Lee_AA

0개의 댓글