Linux 시스템은 전형적인 다중 사용자 시스템으로 사용자마다 위치가 다르고 권한이 다릅니다. 시스템의 보안을 보호하기 위해 Linux 시스템은 다른 사용자가 동일한 파일 (디렉토리 파일 포함)에 액세스 할 수있는 권한에 대해 다른 규정을 적용했습니다.
Linux에서는 ll 또는 ls –l 명령을 사용하여 파일의 속성과 파일이 속한 사용자 및 그룹을 표시 할 수 있습니다.
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
……
이 예에서 bin 파일의 첫 번째 속성은 “d”로 표시됩니다. Linux에서 “d”는 파일이 디렉토리 파일임을 의미합니다.
Linux의 첫 번째 문자는 파일이 디렉토리, 파일 또는 링크 된 파일 등임을 나타냅니다.
- [ d ]가 디렉토리 인 경우
- [ – ] 인 경우 파일입니다.
- [ l ]이면 링크 파일 (링크 파일)로 표시됩니다.
- [ b ]이면 장치 파일에 인터페이스 장치 (임의 액세스 장치)로 저장할 수 있음을 의미합니다.
- [ c ] 인 경우, 키보드 및 마우스 (일회용 읽기 장치)와 같은 장치 파일의 직렬 포트 장치를 의미합니다.
다음 문자는 세 그룹으로 구성되며 모두 “rwx”의 세 매개 변수의 조합입니다. 그중에서 [r]은 읽기, [w]는 쓰기, [x]는 실행을 나타냅니다. 이 세 가지 권한의 위치는 변경되지 않으며, 권한이 없으면 빼기 기호 (-) 만있을 것입니다.
각 파일의 속성은 왼쪽의 첫 부분에서 10 자 (아래 참조)로 결정됩니다.
0에서 9까지의 숫자는 왼쪽에서 오른쪽으로 사용됩니다.
0 번째 숫자는 파일 형식을 결정하고 1-3 번째 숫자는 소유자 (파일 소유자)가 파일의 권한을 가지고 있는지 확인합니다.숫자 4-6은 그룹 (소유자와 동일한 사용자 그룹)이 파일에 대한 권한을 가지고 있는지 확인하고 숫자 7-9는 다른 사용자가 파일에 대한 권한을 가지고 있다고 결정합니다.
그 중 1, 4, 7 번째 숫자는 읽기 권한을 나타내며 “r”문자가 읽기 권한이 있으면 “-“문자가 읽기 권한이 없음을 나타내는 경우;
두 번째, 다섯 번째 및 여덟 번째 비트는 쓰기 권한을 나타내고, “w”문자가 쓰기 권한이 있음을 나타내면 “-“문자가 쓰기 권한이 없음을 나타내면 세 번째, 여섯 번째 및 아홉 번째 비트는 실행 권한을 나타냅니다. “x”문자는 실행 권한이 있음을 나타내고 “-“문자는 실행 권한이 없음을 나타냅니다.
Linux 파일 소유자와 그룹
[root@www /]# ls -l
total 64
drwxr-xr-x 2 root root 4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21 2014 mysql
……
파일의 경우 특정 소유자, 즉 파일을 소유 한 사용자가 있습니다.
동시에 Linux 시스템에서 사용자는 그룹으로 분류되며 사용자는 하나 이상의 그룹에 속합니다.
파일 소유자 이외의 사용자는 파일 소유자 및 다른 사용자와 동일한 사용자 그룹으로 나눌 수 있습니다.
따라서 Linux 시스템은 파일 소유자, 동일한 사용자 그룹 및 다른 사용자에 따라 다른 파일 액세스 권한을 지정합니다.
위의 예에서 mysql 파일은 디렉토리 파일이고 소유자와 그룹은 모두 mysql입니다. 소유자는 읽기, 쓰기 및 실행 권한을 가지며 소유자와 동일한 그룹의 다른 사용자는 읽기 및 실행 가능합니다. 권한 : 다른 사용자에게는 읽기 및 실행 권한이 있습니다.
root 사용자의 경우 정상적인 상황에서는 파일 권한이 영향을 미치지 않습니다.
파일 속성 변경
1. chgrp : 파일 그룹 변경
문법 :
chgrp [-R] 그룹 이름 파일 이름
[ -R ] 그룹 이름에 속하는 파일 이름
매개 변수 옵션
- -R : 파일 그룹을 반복적으로 변경합니다. 즉, 디렉토리 파일의 그룹을 변경할 때 -R 매개 변수를 추가하면 디렉토리에있는 모든 파일의 파일 그룹이 변경됩니다.
2. chown : 파일 소유자 변경, 동시에 파일 소속 그룹 변경 가능
문법 :
chown [–R] 소유자 이름 파일 이름[– R ] 는 기본 파일 이름입니다
chown [-R] 소유자 이름 : 그룹 이름의 파일 이름[ -R ] 소유자 이름 : 그룹 이름의 파일 이름
/ root 디렉토리 (~)로 이동하여 install.log의 소유자를 bin 계정으로 변경하십시오.
[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
install.log의 소유자와 그룹을 root로 다시 변경하십시오.
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
3. chmod : 파일의 9 가지 속성 변경
Linux 파일 속성을 설정하는 방법에는 두 가지가 있습니다. 하나는 숫자이고 다른 하나는 기호입니다.
Linux 파일에는 소유자 / 그룹 / 기타의 9 가지 기본 권한이 있으며 각각 고유 한 읽기 / 쓰기 / 실행 권한이 있습니다.
먼저 위에서 언급 한 데이터를 검토하십시오. 파일의 권한 문자는 “-rwxrwxrwx”입니다.이 9 개의 권한은 3과 3의 그룹입니다! 그 중 숫자를 사용하여 각 권한을 나타낼 수 있으며 각 권한의 점수 비교표는 다음과 같습니다.
- r : 4
- w : 2
- x : 1
각 신원 (소유자 / 그룹 / 기타)에 대해 각각 3 개의 권한 (r / w / x) 점수를 누적해야합니다 (예 : 권한이 [-rwxrwx —] 인 경우 점수는 다음과 같습니다).
- owner = rwx = 4 + 2 + 1 = 7
- group = rwx = 4 + 2 + 1 = 7
- others = — = 0 + 0 + 0 = 0
따라서 권한을 변경하면 파일의 권한 번호는 770입니다! 권한 변경을위한 chmod 명령의 문법은 다음과 같습니다.
chmod [-R] xyz 파일 또는 디렉토리[ -R ] xyz 파일 또는 디렉토리
옵션 및 매개 변수 :
- xyz : 방금 언급 한 숫자 유형의 권한 속성으로 rwx 속성 값이 추가되었습니다.
- -R : 지속적인 재귀 변경을 수행합니다. 즉, 서브 디렉토리의 모든 파일이 변경됩니다.
예를 들어 .bashrc 파일의 모든 권한을 활성화하려는 경우 명령은 다음과 같습니다.
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
권한을 -rwxr-xr– 로 변경하려면 어떻게합니까? 그런 다음 권한 점수가 [4 + 2 + 1] [4 + 0 + 1] [4 + 0 + 0] = 754가됩니다.
심볼 유형으로 파일 권한 변경
권한을 변경하는 방법도 있습니다. 이전 소개에서 기본적으로 9 가지 권한이 있습니다.
- (1) user
- (2) group
- (3) others
그런 다음 u, g, o 를 사용하여 세 ID의 권한을 나타낼 수 있습니다 !
또한, a 는 모두 , 즉 모든 ID를 나타냅니다 . 읽기 및 쓰기 권한은 r, w, x 로 쓸 수 있습니다. 즉, 다음 표를 사용하여 볼 수 있습니다.
chmod | u g o a | + (추가) -(제거) = (설정) | r w x | 파일 또는 디렉토리 |
우리는 파일 권한이 필요한 경우로 설정 -XR을 -rwxr, 당신이 사용할 수있는 chmod를 U = rwx로, g = RX , O = R 파일 이름을 세트 :
# touch test1 // test1 파일 만들기
# ls -al test1 // test1의 기본 권한을 봅니다.
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u = rwx, g = rx, o = r test1 // test1 권한 수정
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
기존의 다른 권한을 변경하지 않고 권한을 제거하려면 어떻게해야합니까? 예를 들어, 모든 사람의 실행 권한을 제거하려면 다음을 수행하십시오.
# chmod a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1