권한관리



권한의 개념과 조회

 ex)      -rwx---r--    :   파일이며, user는 r,w,x의 권한이 모두허용/ group은 모두 비허용/ other는 r만허용

 ( file type user group other )


              

            권한                      file type )                    directory type d )      <- 권한 적용 대상

read         (r)          파일을 읽고, 복사가능                    ls 명령어로 list확인가능

write        (w)         파일의 내용 수정가능                     디렉토리에 파일추가삭제가능

execute      (x)         실행가능한 파일실행가능                  cd 명령어로 디렉토리에 접근가능




권한변경 ( ※  변경되서 접근이 허용되더라도 그 상위디렉토리의 권한이 없으면 접근불가능 )


명령어 : chmod   mode   filename :  소유자나 그룹은 변경하지 않고 사용권한만 변경( chown : 소유자변경) 

ex) chown user3000.sales /home/user1000/a.txt   (소유자를 sales그룹의 user3000로 변경)   


 - 방법

영어문자  ex) ​chmod  g+w  /home/user1000

( who       +/-      permission)

u (user)                  

g (group)                w

o (other)                 

a (all)

 

숫자 해당하는권한의 값을 모두더해서 할당  ex) chmod 77/home (모든사용자가 ​ r,w,x,의 권한허용) / r : 4  w 2  x : 1

-R : 하위 디렉토리까지 한꺼번에 변경

  


SetUID (4), SetGID (2), Sticky bit (1설정 :  맨앞에  (해당숫자 ) 적어서 적용

- setUID  : 로그램을 누가 실행 시키든 그 프로그램의 주인의 이름으로 실행 (x권한 있어야 실행됨,기본적으로 모든 컴퓨터는 실행하는계정으로 실행됨)

  ex) chmod 4755  /home/user1000/a.txt   (-rws r-xr-x )대문자S이면 권한이 없는 상태에서 지정한경우

- setGID  : 실행시킨 그 그룹의 이름으로 실행

- Sticky bit  : 자신이 만든것만 지울수 있게 설정( 권한 777의 경우 다른 사용자가 만든것까지 삭제가능하므로)

            


디스크관리


명령어

- df (disk free) : 현재 연결되어 있는 디스크와 해당 디렉토리 이름을 보여줌 (하위 디렉토리의 용량은 알수없음)

- du (disk usage) :  특정 디렉토리의 하위 디렉토리 별로 용량을 전부 보여줌

--max--depth=단계 : 용량을 디렉토리의 단계(0,1,2..) 별로 설정해서 보여줌 (du -h / 할 경우 전체디렉토리의 하위 디렉토리까지 다 나오기때문에 용량을 보는것이 힘들기때문)

  



cf) 비교


 PC

 

서버 

 IDE (EIDE)

SATA 

SCSI  

 용량

 대용량

대용량 

소용량 

 가격

 저가

저가 

고가 

 속도

저속 

고속 

고속 

 Linux에서 하드디스크 이름

/dev/hda, /hdb, /hdc, ... 

 

/dev/sda, /sdb, /sdc, ... 

partition->   /dev/sda1, /sda2, ..




디스크추가하기 ( root 계정만 권한 )

step1 : ​vmware상의 리눅스 서버를 종료하고, edit vm settings 에서 add- hard disk를 추가하여 linux를 재시작.


새로운 디스크가 추가 되면 하드 디스크를 OS에서 사용 가능하도록 후속작업을 해야함

1파티션나누기 - fdisk(리눅스, 윈도) , format (솔라리스) : 용도에 맞게 분할하는과정 (부서별로 구역나눔)

2포맷 - mkfs(리눅스), format(윈도) , newfs(솔라리스)   :  파티션 나눈 공간을 사용가능하도록 파일시스템 생성단계

3마운트 - mount(유닉스계열), (윈도)는 포맷이 끝나면 자동으로 연결해줌  : 사용준비가된 디스크를 디렉토리와 연결

  -> 파일저장시 디스크에 저장되어서 다른 디렉토리와 연결되더라도 그파일은 존재함


step2 :  ​fdisk -l 로 현재 연결되어있는  하드디스크 확인 후 , 분할할 디스크를  파티션 후 저장.(저장안하면초기화)

 ex) fdisk /dev/sdc -> n(new) -> p(주파티션) -> 1(주파티션번호) -> 1(시작실린더번호) -> +10G(용량지정) -> w(저장)


step3 : ​2번째로 분할할 디스크도 step1과 같은단계로 분할후 저장 (시작실린더번호 2, 용량지정시 엔터(남은용량할당) )


step4 : 파티션이 완료된 디스크를 포맷(디스크이름에 숫자부분을 주의해야함)

 ex)  mkfs.ext3  /dev/sdc1  (ext3은 파일시스템의 종류, 윈도는 NTFS, 솔라리스는UFS 사용)

        mkfs.ext3  /dev/sdc2


step5 : 디렉토리(연결문)를 생성하여 마운트.    

ex) ​mkdir /dir1       ex)  mount  /dev/sdc1  /dir1

     mkdir /dir2              mount  /dev/sdc2  /dir2


step6 ​재부팅 후에도 유지되도록 /etc/fstab 파일에 등록(등록하면 재부팅을 해도 리눅스가 자동으로 마운트작업을함)


 


LVM (logical volume manager)

물리적으로 여러개인 디스크를 논리적으로 하나의 디스크로 합쳐주고 다시 논리적으로 나눠서 관리하는방법


step1 : 위의 디스크추가하기 step1방법과 동일하게 hard disk추가하여 linux 재시작

step2 : 추가한 각각의 디스크들을 fdisk 하되, 리눅스 LVM용으로 파티션을 생성

 ex)    fdisk   ​/dev/sdd -> n  -> p  -> 1  -> enter  -> enter  -> t  (하드디스크 변환) -> 8e  (LVM용 파티션) -> w 


step3 : LVM용 디스크들을 각각 물리적볼륨(physical volume)으로 변환

 ex) pvcreate /dev/sdd1

       pvcreate /dev/sde1

       pvcreate /dev/sdf1


step4  : 물리적볼륨들을 1개의 볼륨그룹(volume group;논리적인1개의디스크)으로 합친후, 확인(vgdisplay)

 ex)   vgcreate vol1 /dev/sdd1  /dev/sde1  /dev/sdf1


step5 : 합쳐진 하나의 볼륨그룹(논리적디스크)을 논리적볼륨(logical volume)으로 파티션  lvscan으로 조회

 ex) lvcreate  -L  1.50GB  -n  lv1  vol1     (물리적디스크 파티션 : fdisk)

      lvcreate -L  1.45GB  -n  lv2  vol1     (vgdisplay로 남은용량확인 


- step6 :   논리적 볼륨으로 포맷   

 ex)  mkfs.ext3  ​/dev/vol1/lv1

        mkfs.ext3  /dev/vol1/lv2

- step7 :  디렉토리 생성해서  마운트 

 ex) ​ mkdir /dir3              ex)  mount  /dev/vol1/lv1  /dir3   

        mkdir /dir4                    mount  /dev/vol1/lv2  /dir4



 cf. LVM관련 명령어들

vgscan           lvdisplay

vgextend        lvextend        lvremove

vgreduce        lvreduce        vgremove




RAID : 여러개의 디스크중 몇개가 장애가 발생해도 데이터가 손실되지 않게 구성하는기술 (​LVM 은 여러개의 디스크중 1개가 장애가 날경우 모든데이터가 손실)


RAID 0 (striping) - RAID기능을 사용하지않는것.1개의 디스크고장시 전체고장.데이터를 분산시켜 동시에읽고씀(LVM은차례로저장). 속도빠름. 

RAID 1 (mirroring)  -  같은데이터 중복 저장. 안정적. 하지만 비용과 용량은 두배

RAID 5 (stripe with parity)  1개의 디스크를 spare(후보디스크)로 두어 장애 난 디스크와 교체. spare개수 부족시 모든데이터손실