소유권(Ownership)
개체에 대한 소유자와 소유그룹
Linux 시스템의 모든 개체는 소유자와 소속그룹이 지정되어 있다.
소유권 관리 명령어
chown
개체(파일 및 디렉터리)의 소유자 및 소속 그룹 변경
계정이름/그룹이름 대신 UID/GID 로 사용 가능
# chown 계정이름:그룹이름 파일이름
==> chown test1:test1 /root/test1.txt
옵션 -R
하위 디렉터리 및 파일 전체의 소유권 변경
chgrp
개체(파일 및 디렉터리)의 소속그룹 변경
# chgrp gid/그룹이름 파일이름
!! root는 모든 퍼미션 소유권에서 자유로움 !!
허가권(Permission)
멀티 유저 환경에서 개체(파일, 디렉터리 등)에 접근할 수 있는 자격
사용자(user), 사용그룹(group), 나머지 사용자(other) 단위로 권한을 부여함
앞에서 3자리씩 소유자, 소속그룹, 나머지로 구분 r(=4), w(=2), x(=1)
마지막 .은 확장권한(권한 ACL)을 나타냄
퍼미션 사용 시 주의점
-파일과 디렉터리 퍼미션의 역할이 다르다
-root(수퍼유저)#로 설정하고 일반 사용자$로 확인 !!!!
root는 수퍼라 무조건 설정용
파일 퍼미션
[root@localhost /]# cat > /home/test01/file
file
ctrl + d
touch는 만들면 바로 생기지만 cat은 내용을 입력까지 해줘야함
[test01@localhost ~]$ ls -al file
-rw-r--r-- 1 root root 12 2021-06-15 10:06 file
test01은 u도 아니고 g도 아니고 other이므로 r퍼미션만 허가
=>test01은 해당 파일을 읽기 r 만 할 수 있음
chmod : 퍼미션을 변경
- 권한을 숫자 형태로 표현한다
1) chmod 777 권한을 전부 다 (rwx rwx rwx)
[root@localhost ~]# chmod 777 /home/test01/file
[root@localhost ~]# ls -al /home/test01/file
-rwxrwxrwx 1 root root 12 2021-06-15 10:06 /home/test01/file
test01로 다시 들어가서 수정이 되는 지 확인
[test01@localhost ~]$ vi /home/test01/file
=> w권한을 부여 받아서 수정이 가능
g부분의 퍼미션 회수(revoke)
chmod 707 이어도 수정가능 => test01은 other이므로 !
r퍼미션이 빠지면 문제가 생기기 때문에 w줄때 r을 같이 부여한다
부여순서
r-- r-x rw- rwx (4>5>6>7)
ExE 퍼미션 (x권한)
[root@localhost ~]# which ping ==>which명령어: ping의 경로 확인
/bin/ping
[root@localhost ~]# ls -al /bin/ping
-rwsr-xr-x. 1 root root 38200 2015-07-24 02:55 /bin/ping
[root@localhost ~]# cp /bin/ping /root/ping
[root@localhost ~]# ls -al /root/ping
-rwxr-xr-x 1 root root 38200 2021-06-15 11:29 /root/ping
x권한이 있는 경우
[root@localhost ~]# ./pi
Usage: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline]
[-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
[-M mtu discovery hint] [-S sndbuf]
[ -T timestamp option ] [ -Q tos ] [hop1 ...] destination
[root@localhost ~]# pi
-bash: pi: command not found
./ 필수임 => 실행하는 명령어
x가 없을 경우
[root@localhost ~]# chmod 644 /root/pi
[root@localhost ~]# ./pi
-bash: ./pi: 허가 거부
[root@localhost ~]# vi /root/1.sh
mkdir /root/dir1
touch /root/dir1/file
echo "파일 및 디렉터리 생성 성공"
[root@localhost ~]# sh /root/1.sh ==>sh 기본 쉘 호출 명령어 ( ./ 나 sh로 사용)
파일 및 디렉터리 생성 성공
[root@localhost ~]# ls -al /root/1.sh
-rw-r--r-- 1 root root 84 2021-06-15 11:40 /root/1.sh
[root@localhost ~]# ls -R /root/dir1/ ==> -R 경로까지 출력하는..?
/root/dir1/:
file
==> 우리가 쓸땐 sh 컴퓨터가 할땐 ./
[root@localhost ~]# rm -rf /root/dir1
[root@localhost ~]# chmod 755 /root/1.sh
[root@localhost ~]# ls -al /root/1.sh
-rwxr-xr-x 1 root root 84 2021-06-15 11:40 /root/1.sh
[root@localhost ~]# ./1.sh
파일 및 디렉터리 생성 성공
[root@localhost ~]# chmod 644 /root/1.sh
[root@localhost ~]# rm -rf /root/dir1
[root@localhost ~]# ./1.sh
-bash: ./1.sh: 허가 거부
디렉터리 퍼미션
# mkdir /permtest
[root@localhost ~]# ls -ld /permtest
drwxr-xr-x 2 root root 4096 2021-06-15 12:06 /permtest
소유자/소유그룹을 변경
[root@localhost ~]# chown test01:test01 /permtest
[root@localhost ~]# ls -ld /permtest
drwxr-xr-x 2 test01 test01 4096 2021-06-15 12:06 /permtest
chmod 700 /permtest/
test01에서는 ls /permtest O /
test02에서 ls /permtest 허가 거부
=>test02는 other 이므로 권한이 없음 r권한이 X
[test01@localhost ~]$ touch /permtest/t1.txt
[test01@localhost ~]$ ls /permtest
t1.txt
=> 해당 디렉터리 내의 파일을 만들 수 있는 퍼미션 w
test02는 w 권한이 없어서 허가 거부
chmod 706이면 test02가 ls도 되고 파일 생성도 가능해야하지만
파일 생성 X
cd /permtest도 안됨!!!!!!
x퍼미션까지 부여해야 가능
=>디렉터리에 진입해야 하기 때문에
=> x퍼미션은 경로변경. 안에 있는 항목 읽기 등 cd가 필요
=> touch는 그 다음 단계이기에 cd가 되야 touch가 가능 !
!!! 디렉터리 퍼미션과 파일 퍼미션 구분하기 !!!
파일은 사용자가 필요한 정보
디렉터리는 파일을 효율적으로 관리하기 위한 단위
- 디렉터리 하위구조의 파일 목록과 디렉터리 목록이 있음
permission의 종류
numeric(숫자) : 절대모드
퍼미션을 0으로 리셋하고 다시 부여한다는 느낌으로 설정
# chmod 777 = rwxrwxrwx
=>결과가 항상 같다 세팅하는 느낌
symbolic(문자) : 상대모드
기존 퍼미션에 추가 삭제가 기호로 확실하게 표현 가능
# chmod u-x, o+w
=>기존에 추가하는 개념 원본의 퍼미션에 따라 결과가 달라짐
기존 퍼미션에 특정 퍼미션을 추가하는 느낌
a는 all
chmod a+rwx = chmod 777
만약 원본 퍼미션이 다르면 결과도 다름 (상대모드)
=> 000인 것에 a+x 한 것과 666 a+x 한 것은 결과가 다름
사용자 test10을 생성할 때 1차그룹을 test01로 지정하여 퍼미션 부여를 확인
1차 그룹 변경 usermod –g ~~
소속 사용자가 현재 없는 그룹이 됐음
grep test10 ~~~
test01이 u,g,o 중 어떤 소유권에 따라 퍼미션이 적용되는가?
permission (허가권) 3 부분 다시 복습 .. --
umask
리눅스 시스템에서 자원을 생성할 때 설정되는 기본 권한을 통합 관리하기 위해 사용
디렉터리는 777 권한, 파일은 666권한에서 umask값을 뺀 값이 기본 권한
디렉터리 / 파일 생성시 기본 퍼미션이 있음
기본 퍼미션을 지정해주는 값을 umask
[root@localhost /]# umask
0022
디렉터리 기본 0777 - 0022 = 755
파일 기본(x퍼미션을 제외함) 0666 - 0022 = 644
임시 또는 영구적으로 변경가능
umask 변경 후 로그아웃 재접하면 다시 원래대로 !
'운영체제' 카테고리의 다른 글
[Linux] 계정과 그룹 관리 (0) | 2021.06.16 |
---|---|
[Linux] 리눅스 특수 권한(special permission) (0) | 2021.06.16 |
편집기 활용 실습 (0) | 2021.06.15 |
Linux의 vi 편집기 (0) | 2021.06.15 |
Linux 기본 명령어 (0) | 2021.06.15 |