본문 바로가기
Coding

Linux chmod 및 chown – Linux에서 파일 권한 및 소유권을 변경하는 방법

by Emily Blunt 2022. 4. 28.
반응형

Linux chmod 및 chown – Linux에서 파일 권한 및 소유권을 변경하는 방법

 

Linux는 다중 사용자 OS이므로 한 번에 여러 사용자를 지원합니다.

많은 사람들이 동시에 시스템에 액세스할 수 있고 일부 리소스는 공유되므로 Linux는 소유권과 권한을 통해 액세스를 제어합니다.

리눅스 파일 소유권

Linux에는 세 가지 유형의 소유자가 있습니다. user, group그리고 others .

리눅스 사용자

사용자는 파일의 기본 소유자이자 작성자입니다. 따라서 이 사용자를 소유자라고도 합니다.

리눅스 그룹

사용자 그룹은 사용자 모음입니다. 그룹에 속한 사용자는 파일/폴더에 액세스할 수 있는 동일한 Linux 그룹 권한을 갖습니다.

그룹을 사용하여 권한을 개별적으로 할당하는 대신 일괄적으로 할당할 수 있습니다. 사용자는 둘 이상의 그룹에도 속할 수 있습니다.

다른

사용자 또는 그룹 클래스의 일부가 아닌 모든 사용자는 이 클래스에 속합니다.

Linux 파일 권한

파일 권한은 세 가지 범주로 나뉩니다. read, write그리고 execute.

읽기 권한

일반 파일의 경우 읽기 권한을 통해 사용자는 파일을 열고 읽을 수만 있습니다. 사용자는 파일을 수정할 수 없습니다.

디렉토리의 경우와 유사하게 읽기 권한을 사용하면 디렉토리를 수정하지 않고도 디렉토리 내용을 나열할 수 있습니다.

쓰기 권한

파일에 쓰기 권한이 있는 경우 사용자는 파일을 수정(편집, 삭제)하고 저장할 수 있습니다.

폴더의 경우 쓰기 권한을 통해 사용자는 내용을 수정하고(내부 파일 생성, 삭제 및 이름 변경) 쓰기 권한이 있는 파일의 내용을 수정할 수 있습니다.

실행 권한

파일의 경우 실행 권한을 통해 사용자는 실행 가능한 스크립트를 실행할 수 있습니다. 디렉터리의 경우 사용자는 디렉터리에 액세스할 수 있으며 디렉터리의 파일에 대한 세부 정보에 액세스할 수 있습니다.

다음은 사용자, 그룹 및 기타에 대한 권한의 상징적 표현입니다.

권한의 상징적 표현

긴 목록(ls -l) Linux 터미널에서.

긴 목록의 출력

위의 출력에서, d 디렉토리를 나타내고- 일반 파일을 나타냅니다.

Linux에서 권한을 변경하는 방법 chmod 명령

이제 소유권 및 권한의 기본 사항을 알았으므로 다음을 사용하여 권한을 수정하는 방법을 살펴보겠습니다. chmod 명령.

구문 chmod:

chmod permissions filename

어디에,

  • permissions 읽기, 쓰기, 실행 또는 이들의 조합이 가능합니다.
  • filename 권한을 변경해야 하는 파일의 이름입니다. 이 매개변수는 파일이 대량으로 권한을 변경할 경우 목록이 될 수도 있습니다.

두 가지 모드를 사용하여 권한을 변경할 수 있습니다.

  1. 심볼릭 모드: 이 방법은 다음과 같은 기호를 사용합니다. u, g, o 사용자, 그룹 및 기타를 나타냅니다. 권한은 다음과 같이 표시됩니다. r, w, x 읽기 쓰기 및 실행을 위해 각각. +, - 및 =를 사용하여 권한을 수정할 수 있습니다.
  2. 절대 모드: 이 메소드는 0-7 범위의 3자리 8진수로 권한을 나타냅니다.

이제 자세히 살펴보겠습니다.

기호 모드를 사용하여 권한을 변경하는 방법

아래 표에는 사용자 표현이 요약되어 있습니다.

사용자 표현 설명
사용자/소유자
g 그룹
영형 다른
   

수학 연산자를 사용하여 권한을 추가, 제거 및 할당할 수 있습니다. 아래 표는 요약을 보여줍니다.

운영자 설명
+ 파일 또는 디렉토리에 대한 권한을 추가합니다.
권한을 제거합니다
= 이전에 존재하지 않는 경우 권한을 설정합니다. 또한 이전에 설정된 경우 권한을 재정의합니다.
   

예시:

스크립트가 있고 파일 소유자가 스크립트를 실행 가능하게 만들고 싶다고 가정해 보겠습니다. zaira.

현재 파일 권한은 다음과 같습니다.

다음과 같이 권한을 분할해 보겠습니다.

실행 권한을 추가하려면(x) 소유자(u) 기호 모드를 사용하여 아래 명령을 사용할 수 있습니다.

chmod u+x mymotd.sh

산출:

이제 소유자에 대한 실행 권한이 추가되었음을 알 수 있습니다. zaira.

기호 방법을 통해 권한을 변경하는 추가 예:

  • 풀이 read 그리고 write 허가 group 그리고 others: chmod go-rw.
  • 풀이 read 권한 others: chmod o-r.
  • 할당 write 허가 group 기존 권한 무시: chmod g=w.

절대 모드를 사용하여 권한을 변경하는 방법

절대 모드는 숫자를 사용하여 권한을 나타내고 수학 연산자를 사용하여 수정합니다.

아래 표는 관련 권한을 할당하는 방법을 보여줍니다.

허가 권한 제공
읽다 4를 더하다
쓰다 2를 더하다
실행하다 1을 더하다
   

빼기를 사용하여 권한을 취소할 수 있습니다. 아래 표는 관련 권한을 제거하는 방법을 보여줍니다.

허가 권한 취소
읽다 4 빼기
쓰다 빼다 2
실행하다 1 빼기
   

예시:

  • 세트 read (4를 더하다) user, read (4를 더하다) 그리고 execute (1 추가) 그룹에 대해서만 execute (1 추가) 다른 사람을 위해.

chmod 451 file-name

이것이 우리가 계산을 수행한 방법입니다:

와 동일하니 참고하세요 r--r-x--x.

  • 제거하다 execution 권리 other 그리고 group.

실행을 제거하려면 other 그리고 group마지막 2 옥텟의 실행 부분에서 1을 뺍니다.

  • 양수인 read, write 그리고 execute 에게 user, read 그리고 execute 에게 group 그리고 만 read 다른 사람에게.

이것은 다음과 같을 것입니다. rwxr-xr--.

사용하여 소유권을 변경하는 방법 chown 명령

다음으로 파일의 소유권을 변경하는 방법에 대해 알아보겠습니다. 다음을 사용하여 파일 또는 폴더의 소유권을 변경할 수 있습니다. chown 명령. 경우에 따라 소유권을 변경하려면 다음이 필요합니다. sudo 권한.

구문 chown:

chown user filename

사용자 소유권을 변경하는 방법 chown

사용자로부터 소유권을 이전하자 zaira 사용자에게 news.

chown news mymotd.sh

소유권 변경 명령: sudo chown news mymotd.sh

산출:

사용자와 그룹 소유권을 동시에 변경하는 방법

우리는 또한 사용할 수 있습니다 chown 사용자와 그룹을 동시에 변경하려면

chown user:group filename

디렉토리 소유권을 변경하는 방법

디렉토리의 내용에 대한 소유권을 재귀적으로 변경할 수 있습니다. 아래 예는 의 소유권을 변경합니다. /opt/script 사용자를 허용하는 폴더 admin.

chown -R admin /opt/script

그룹 소유권을 변경하는 방법

그룹 소유자만 변경해야 하는 경우에는 다음을 사용할 수 있습니다. chown 그룹 이름 앞에 콜론을 사용하여 :

chown :admins /opt/script

Linux 권한 안내 연습

지금까지 권한, 소유권 및 변경 방법을 살펴보았습니다. 이제 우리는 가이드 연습을 통해 학습을 강화할 것입니다.

목표: 그룹을 만들고 해당 구성원에게 관련 권한을 할당합니다. 승인되지 않은 사용자로부터 액세스하여 액세스를 확인합니다.

: 라는 그룹을 만듭니다. dev-team 여기에 두 명의 구성원(John과 Bob)을 추가합니다. 폴더 만들기 /home/dev-team 소유권을 그룹으로 변경 dev-team. 두 사용자가 dev-team 그룹 가지고 읽다 그리고 쓰다 폴더에 대한 액세스.

다른 그룹 만들기 project-manager 사용자 추가 Fatima 그것에. 폴더인지 확인 /home/dev-team 에 의해 액세스할 수 있습니다. Fatima.

문제의 시각화

다음과 같이 문제를 시각화할 수 있습니다.

1단계: 루트 사용자로 전환합니다.
새 사용자 및 그룹을 생성할 수 있는 권한을 갖도록 루트 사용자로 전환합니다.

힌트 표시

사용 sudo 플래그가 있는 명령 i.

루트 비밀번호가 있으면 그 비밀번호로도 로그인할 수 있습니다.

솔루션 표시

입력하다 sudo -i 루트 사용자로 전환합니다.

입력하다 whoami 루트 사용자인지 확인하려면 다음을 수행하십시오.

당신이 가지고 있지 않은 경우 root 액세스, 추가와 함께 명령 사용 sudo.


2단계: 그룹 만들기 dev-team

힌트 표시

사용 groupadd 명령.

통사론: groupadd group-name

솔루션 표시

입력하다 groupadd dev-team 만들기 dev-team 그룹

확인: cat /etc/group | grep dev-team


3단계: 두 명의 새 사용자 John과 Bob을 생성하고 이들을 dev-team 그룹

힌트 표시

명령 사용 useradd.

useradd 새 사용자를 만들고 지정된 그룹에 추가합니다.

통사론: useradd -G groupname username

어디에 -G 그룹을 지정합니다.

솔루션 표시

useradd -G dev-team John

useradd -G dev-team Bob

확인: cat /etc/group | grep dev-team


4단계: John 및 Bob 사용자의 비밀번호 제공

힌트 표시

명령 사용 passwd

passwd 사용자에 대한 암호를 생성합니다.

통사론: passwd username

솔루션 표시

passwd John

passwd Bob


5단계: /home에 디렉토리를 만들고 이름을 지정합니다. dev-team

힌트 표시

명령 사용 mkdir

mkdir 디렉토리를 생성합니다.

통사론: mkdir directory-name

솔루션 표시

mkdir /home/dev-team

확인:


6단계: 폴더의 그룹 소유권 변경 dev-team 그룹에 dev-team

힌트 표시

명령 사용 chown

통사론: chown :group-name folder

솔루션 표시

chown :dev-team /home/dev-team/


7단계: 폴더 권한 확인 dev-team 그룹 구성원이 파일을 만들고 삭제할 수 있습니다.

힌트 표시

명령 사용 chmod

쓰기 권한은 사용자와 그룹이 파일을 만들고 삭제할 수 있도록 합니다.

통사론: chmod permissions folder

솔루션 표시

chmod g+w /home/dev-team/


8단계: '기타'가 다음 파일에 액세스할 수 없는지 확인합니다. dev-team 폴더.

힌트 표시

명령 사용 chmod

'기타'가 있는 경우 읽기, 쓰기, 실행 권한을 제거합니다.

통사론: chmod permissions folder

솔루션 표시

chmod o-rx dev-team


9단계: 종료 root 세션 및 전환 John

힌트 표시

명령 사용 exit 루트 사용자를 로그아웃합니다.

사용 su 사용자를 전환합니다.

통사론: su - user

현재 사용자를 확인하려면 다음 명령을 사용하십시오. whoami.

솔루션 표시

exit

su - John

명령으로 확인 whoami.


10단계: 폴더로 이동: /home/dev-team

힌트 표시

명령 사용 cd 폴더를 전환합니다.

통사론: cd /path/to/folder

현재 경로 확인 pwd.

솔루션 표시

cd /home/dev-team


11단계: 폴더에 빈 파일을 만듭니다. /home/dev-team

힌트 표시

명령 사용 touch 빈 파일을 생성합니다.

통사론: touch filename

솔루션 표시

touch john-file.txt

확인: ls -lrt


12단계: 생성된 파일의 그룹 소유권을 다음으로 변경 dev-team 확인합니다.

힌트 표시

명령 사용 chown 소유권을 변경합니다.

통사론: chown :group file-name

솔루션 표시

chown :dev-team john-file.txt

그룹 소유권이 수정되면 그룹의 모든 구성원이 이 파일에 액세스할 수 있습니다.

확인 ls -lrt


13단계: 쉘을 종료하고 사용자로 전환 Bob

힌트 표시

명령 사용 exit 터미널을 종료합니다.

사용 su 사용자를 전환합니다.

통사론: su - user

현재 사용자를 확인하려면 다음 명령을 사용하십시오. whoami.

솔루션 표시

exit

su - Bob

명령으로 현재 사용자 확인 whoami.


14단계: 경로 탐색 /home/dev-team

힌트 표시

명령 사용 cd 폴더를 전환합니다.

통사론: cd /path/to/folder

현재 경로 확인 pwd.

솔루션 표시

cd /home/dev-team


15단계: 알아보기 Bob's 액세스 권한 john-file.txt

힌트 표시

명령 사용 ls -l 긴 목록을 위해.

통사론: ls -l | grep file-name

그룹이 있습니까? rw- 권한?

솔루션 표시

ls -l | grep john-file.txt


16단계: 파일 수정 john-file.txt 로 로그인한 동안 Bob

힌트 표시

명령 사용 echo 파일에 일부 텍스트를 추가합니다.

통사론: echo "Some text" >>file-name

이렇게 하면 인용된 텍스트를 파일의 끝으로 리디렉션합니다.

솔루션 표시

echo "This is Bob's comment" > john-file.txt

모든 권한이 올바르게 설정되어 있으면 Bob 이 파일을 편집하고 저장할 수 있습니다. 그렇지 않으면 다음과 같은 오류가 발생합니다. Permission denied.

확인 cat john-file.txt


17단계: 다른 그룹 만들기 project-manager 그리고 구성원을 지정 Fatima 그것에

힌트 표시

명령 사용 groupadd 새 그룹을 추가합니다.

통사론: groupadd group-name

명령으로 새 사용자 만들기 useradd.

플래그 사용 -G 사용자를 할당합니다.

솔루션 표시
groupadd project-manager
useradd -G project-manager Fatima
passwd Fatima

18단계: 폴더로 이동 /home/dev-team 확인하고 Fatima 액세스할 수 있습니다

힌트 표시

사용 cd 로 이동하다 /home/dev-team.

솔루션 표시

cd /home/dev-team.

다음 오류가 발생합니다.

이 때문입니다, others 폴더에 대한 액세스 권한이 없습니다. dev-team.

우리가 기억한다면, 아래의 권리는 dev-team 폴더.

마무리

권한 및 소유권은 다중 사용자 운영 체제에서 보안을 적용하는 데 유용한 개념입니다. 권한 및 소유권 변경에 대해 자세히 알아볼 수 있기를 바랍니다.

이 튜토리얼에서 배운 것 중 가장 좋아하는 것은 무엇입니까? 에 알려주세요 트위터!

여기에서 내 다른 게시물을 읽을 수도 있습니다.

덕분에 톰 몬들록 가이드 운동에 대한 그의 도움을 위해.

반응형

댓글