리눅스1> 2018.01.04_16일차 - umask, 압축(gzip, bzip2)
* umask
[사용형식]
# umask
→ umask 기본 값 출력
umask [값]
umask [option]
option
-S : umask값을 문자로 출력
[특징]
- 파일이나 디렉터리 생성시 기본 퍼미션(허가권)을 지정해주는 지시자 역할
- umask 설정하면 별도로 허가권 설정 필요 없음!
- file은 'x'가 없으므로 홀수가 안나옴
1> directory (rwxrwxrwx)
rwxrwxrwx |
허가권 |
umask |
관리자 (root) |
rwxr-xr-x (755) |
rwxrwxrwx ----w--w- (022) - rwxr-xr-x |
일반사용자 (itbank) |
rwxrwxr-x (775) |
rwxrwxrwx -------w- (002) - rwxrwxr-x |
// root dir.
[root@localhost ~]# cd /home/itbank/
[root@localhost itbank]#
[root@localhost itbank]# mkdir ad_dir
[root@localhost itbank]#
[root@localhost itbank]# ls -ld ad_dir/
drwxr-xr-x. 2 root root 6 1월 4 21:18 ad_dir/ // 755
[root@localhost itbank]#
[root@localhost itbank]# umask // root umask
0022
// user dir.
[itbank@localhost ~]$ cd /home/itbank/
[itbank@localhost ~]$
[itbank@localhost ~]$ mkdir usr_dir
[itbank@localhost ~]$
[itbank@localhost ~]$ ls -ld usr_dir/
drwxrwxr-x. 2 itbank itbank 6 1월 4 21:29 usr_dir/ // 775
[itbank@localhost ~]$ umask // user umask
0002
2> file
rw-rw-rw- 허가권 umask 관리자 (root) rw-r--r-- (644) rw-rw-rw- ----w--w- (022) - rw-r--r-- 일반사용자 (itbank) rw-rw-r-- (664) rw-rw-rw- -------w- (002) - rw-rw-r--
// root file
[root@localhost itbank]# touch adm_file
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 0
drwxr-xr-x. 2 root root 6 1월 4 21:18 ad_dir
-rw-r--r--. 1 root root 0 1월 4 21:36 adm_file
drwxrwxr-x. 2 itbank itbank 6 1월 4 21:29 usr_dir
[root@localhost itbank]#
[root@localhost itbank]# ls -l adm_file
-rw-r--r--. 1 root root 0 1월 4 21:36 adm_file
[root@localhost itbank]#
// user file
[itbank@localhost ~]$ touch usr_file
[itbank@localhost ~]$
[itbank@localhost ~]$ ls -l usr_file
-rw-rw-r--. 1 itbank itbank 0 1월 4 21:38 usr_file
ex>
1> dir.
최대값 : 777 rwxrwxrwx
dir. a 허가권 : 321 -wx-w---x
456 r--r-xrw-
2> file
최대값 : rw-rw-rw- 666
file b 허가권 : r--r-xrw- 456
: -w--w---- 210??? => 220
// root 1
[root@localhost itbank]# cd ~itbank/
[root@localhost itbank]#
[root@localhost itbank]# pwd
/home/itbank
[root@localhost itbank]# ls
ad_dir adm_file usr_dir usr_file
[root@localhost itbank]# ls -l
합계 0
drwxr-xr-x. 2 root root 6 1월 4 21:18 ad_dir
-rw-r--r--. 1 root root 0 1월 4 21:36 adm_file
drwxrwxr-x. 2 itbank itbank 6 1월 4 21:29 usr_dir
-rw-rw-r--. 1 itbank itbank 0 1월 4 21:38 usr_file
[root@localhost itbank]#
[root@localhost itbank]# rm -rf *
[root@localhost itbank]#
[root@localhost itbank]# ls
[root@localhost itbank]#
[root@localhost itbank]# mkdir testdir1
[root@localhost itbank]#
[root@localhost itbank]# touch testfile1
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 0
drwxr-xr-x. 2 root root 6 1월 4 22:15 testdir1 // 755
-rw-r--r--. 1 root root 0 1월 4 22:15 testfile1 // 644
[root@localhost itbank]#
[root@localhost itbank]# umask 123
[root@localhost itbank]#
[root@localhost itbank]# umask
0123
[root@localhost itbank]#
[root@localhost itbank]# mkdir testdir2
[root@localhost itbank]#
[root@localhost itbank]# touch testfile2
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 0
drwxr-xr-x. 2 root root 6 1월 4 22:15 testdir1
drw-r-xr--. 2 root root 6 1월 4 22:19 testdir2 // 654 = 777-123
-rw-r--r--. 1 root root 0 1월 4 22:15 testfile1
-rw-r--r--. 1 root root 0 1월 4 22:19 testfile2 // 543 = 666-122(123) 'x' 없음!
[root@localhost itbank]#
[root@localhost itbank]# umask -S
u=rw,g=rx,o=r // umask값은 123임. umask 계산 해줘야.., => --x-w--wx (123)
[root@localhost itbank]#
// 새 연결 접속
login as: root
root@192.168.8.174's password:
Last login: Thu Jan 4 12:35:42 2018 from 192.168.8.1
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# umask
0022 // 다시 기본값 설정으로 바뀜
[root@localhost ~]#
[root@localhost ~]# vi /etc/profile
/umask
검색
[root@localhost ~]#
[root@localhost ~]# ls -ld /home/itbank
drwx------. 8 itbank itbank 207 1월 4 13:37 /home/itbank // 700
[root@localhost ~]#
[root@localhost ~]# vi /etc/login.defs
/UMASK
검색
// 기존 접속
[준비물]
[root@localhost itbank]# pwd
/home/itbank
[root@localhost itbank]#
[root@localhost itbank]# rm -rf *
[root@localhost itbank]#
[root@localhost itbank]# umask 022
[root@localhost itbank]#
[root@localhost itbank]# passwd itbank
itbank 사용자의 비밀 번호 변경 중
새 암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새 암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@localhost itbank]#
[root@localhost itbank]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6월 10 2014 /usr/bin/passwd
[root@localhost itbank]#
[root@localhost itbank]# chmod 4755 /usr/bin/passwd
[root@localhost itbank]#
[root@localhost itbank]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6월 10 2014 /usr/bin/passwd
* 압축 (Compress)
- 용량을 줄이기 위해서
- 여러 개의 파일을 하나의 파일로 작업할 때
1> 종류
Windows 운영체제에서 사용되는 압축 프로그램
ex) 알집, 반디집, 7-zip, 빵집, WinRAR 등등
Linux 운영체제에서 사용되는 압축 프로그램
1) compress
- 초창기때 사용되었던 압축 프로그램
2) gzip
- 유닉스에서 사용되었던 compress보다 더 양호한 압축 기능을 가진 프로그램
장점으로는 압축속도가 빠르며 단점으로는 압축률이 좋지 않음
용량이 적은 파일에서 사용
압축레벨이 존재함(가장 안전하게, 가장 빠르게)
3) bzip2
- 버로우즈-휠러 변환 기법의 압축 알고리즘 및 압축 소프트웨어
bzip은 블럭 정렬을 이용해서 산술 부호화를 사용했지만 특허 문제로 인해서 bzip2에서는
사용하지 않음
장점으로는 압축률이 좋으며 단점으로는 압축속도가 느림
용량이 많은 파일에서 사용
압축레벨이 존재함(가장 안전하게, 가장 빠르게)
4) xz
- bzip2보다 압축률이 좋고 속도도 빠름
5) zip
-호환성이 좋음
(Windows에서 Linux로 압축된 파일을 해제하거나 압축해서 사용가능)
2> 사용법
1) 압축
[준비물]
# cp /backup/* /home/itbank
# touch testfile1
testfile1에다가 적당히 내용 입력
cp testfile1 testfile2
[사용형식]
gzip 파일명 // 용량 작으면 더 우세
bzip2 파일명 // 용량 크면 bzip2 더 우세
[특징]
- 확장자 생김(gzip은 *.gz, bzip2 *.bz2)
- 용량이 줄었음
- 생성날짜와 시간이 변경되지 않음
- 원본이 사라짐
- 압축한 파일을 다시 압축 하는 행위는 좋지 않음
2) 압축 해제
[사용형식]
gunzip 파일명
bunzip2 파일명
[특징]
- 압축을 해제할 경우 반드시 압축한 프로그램으로 사용
- bunzip2 관련 파일은 확장자 생략 불가
[option]
-d : decompress(압축해제)
// 1) 압축
[root@localhost tmp]# cp /backup/* /home/itbank
[root@localhost tmp]#
[root@localhost tmp]# cd /home/itbank
[root@localhost itbank]#
[root@localhost itbank]# ls
grub.cfg inittab login.defs passwd testfile2
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 24
-rw-r--r--. 1 root root 5078 1월 4 14:44 grub.cfg
-rw-r--r--. 1 root root 511 1월 4 14:44 inittab
-rw-r--r--. 1 root root 2028 1월 4 14:44 login.defs
-rw-r--r--. 1 root root 2116 1월 4 14:44 passwd
-rw-r--r--. 1 root root 21 1월 4 14:44 testfile2
[root@localhost itbank]#
[root@localhost itbank]# touch testfile1
[root@localhost itbank]#
[root@localhost itbank]# vi testfile1
[root@localhost itbank]#
[root@localhost itbank]# cp testfile1 testfile2
cp: overwrite `testfile2'? y
[root@localhost itbank]#
[root@localhost itbank]# gzip testfile1
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 28
-rw-r--r--. 1 root root 5078 1월 4 14:44 grub.cfg
-rw-r--r--. 1 root root 511 1월 4 14:44 inittab
-rw-r--r--. 1 root root 2028 1월 4 14:44 login.defs
-rw-r--r--. 1 root root 2116 1월 4 14:44 passwd
-rw-r--r--. 1 root root 37 1월 4 14:47 testfile1.gz
-rw-r--r--. 1 root root 66 1월 4 14:47 testfile2
[root@localhost itbank]#
[root@localhost itbank]# bzip2 testfile2
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 28
-rw-r--r--. 1 root root 5078 1월 4 14:44 grub.cfg
-rw-r--r--. 1 root root 511 1월 4 14:44 inittab
-rw-r--r--. 1 root root 2028 1월 4 14:44 login.defs
-rw-r--r--. 1 root root 2116 1월 4 14:44 passwd
-rw-r--r--. 1 root root 37 1월 4 14:47 testfile1.gz
-rw-r--r--. 1 root root 47 1월 4 14:47 testfile2.bz2
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 28
-rw-r--r--. 1 root root 5078 1월 4 14:44 grub.cfg
-rw-r--r--. 1 root root 511 1월 4 14:44 inittab
-rw-r--r--. 1 root root 2028 1월 4 14:44 login.defs
-rw-r--r--. 1 root root 2116 1월 4 14:44 passwd
-rw-r--r--. 1 root root 37 1월 4 14:47 testfile1.gz
-rw-r--r--. 1 root root 47 1월 4 14:47 testfile2.bz2
// 2) 압축 해제
[root@localhost itbank]# bzip2 testfile2.bz2
bzip2: Input file testfile2.bz2 already has .bz2 suffix.
[root@localhost itbank]# gzip testfile2.bz2
[root@localhost itbank]#
[root@localhost itbank]# bzip2 testfile1.gz
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 28
-rw-r--r--. 1 root root 5078 1월 4 14:44 grub.cfg
-rw-r--r--. 1 root root 511 1월 4 14:44 inittab
-rw-r--r--. 1 root root 2028 1월 4 14:44 login.defs
-rw-r--r--. 1 root root 2116 1월 4 14:44 passwd
-rw-r--r--. 1 root root 92 1월 4 14:47 testfile1.gz.bz2
-rw-r--r--. 1 root root 82 1월 4 14:47 testfile2.bz2.gz
[root@localhost itbank]#
[root@localhost itbank]# gunzip testfile1.gz.bz2
gzip: testfile1.gz.bz2: unknown suffix -- ignored
[root@localhost itbank]#
[root@localhost itbank]# bunzip2 testfile2.bz2.gz
bunzip2: Can't guess original name for testfile2.bz2.gz -- using testfile2.bz2.gz.out
bunzip2: testfile2.bz2.gz is not a bzip2 file.
[root@localhost itbank]#
[root@localhost itbank]# gunzip testfile2.bz2.gz
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 28
-rw-r--r--. 1 root root 5078 1월 4 14:44 grub.cfg
-rw-r--r--. 1 root root 511 1월 4 14:44 inittab
-rw-r--r--. 1 root root 2028 1월 4 14:44 login.defs
-rw-r--r--. 1 root root 2116 1월 4 14:44 passwd
-rw-r--r--. 1 root root 92 1월 4 14:47 testfile1.gz.bz2
-rw-r--r--. 1 root root 47 1월 4 14:47 testfile2.bz2
[root@localhost itbank]#
[root@localhost itbank]# gunzip testfile2.bz2
gzip: testfile2.bz2: unknown suffix -- ignored
[root@localhost itbank]# gunzip testfile2.bz2
gzip: testfile2.bz2: unknown suffix -- ignored
[root@localhost itbank]#
[root@localhost itbank]# bunzip2 testfile1.gz.bz2
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 28
-rw-r--r--. 1 root root 5078 1월 4 14:44 grub.cfg
-rw-r--r--. 1 root root 511 1월 4 14:44 inittab
-rw-r--r--. 1 root root 2028 1월 4 14:44 login.defs
-rw-r--r--. 1 root root 2116 1월 4 14:44 passwd
-rw-r--r--. 1 root root 37 1월 4 14:47 testfile1.gz
-rw-r--r--. 1 root root 47 1월 4 14:47 testfile2.bz2
[root@localhost itbank]#
[root@localhost itbank]# gzip -d testfile2.bz2
gzip: testfile2.bz2: unknown suffix -- ignored
[root@localhost itbank]#
[root@localhost itbank]# bzip2 -d testfile1.gz
bzip2: Can't guess original name for testfile1.gz -- using testfile1.gz.out
bzip2: testfile1.gz is not a bzip2 file.
[root@localhost itbank]#
[root@localhost itbank]# gzip -d testfile1
[root@localhost itbank]#
[root@localhost itbank]# bzip2 -d testfile2
bzip2: Can't open input file testfile2: No such file or directory.
[root@localhost itbank]#
[root@localhost itbank]# bzip2 -d testfile2.bz2
[root@localhost itbank]#
[root@localhost itbank]# ls -l
합계 28
-rw-r--r--. 1 root root 5078 1월 4 14:44 grub.cfg
-rw-r--r--. 1 root root 511 1월 4 14:44 inittab
-rw-r--r--. 1 root root 2028 1월 4 14:44 login.defs
-rw-r--r--. 1 root root 2116 1월 4 14:44 passwd
-rw-r--r--. 1 root root 66 1월 4 14:47 testfile1
-rw-r--r--. 1 root root 66 1월 4 14:47 testfile2
* 다중압축?
=> 불가!!!
<실습1 -umask>
각 번호마다 작업 시 명령어 한 줄
1) /tmp/test 디렉터리는 stickybit를 가지고 있으며 모든 권한을 가지고 있음
1000 777 => 1777
# mkdir -m 1777 /tmp/test
# ls -ld /tmp/test
# mkdir -m go+w,o+t /tmp/test // 755 → 1777
2) /tmp/test/test2 디렉터리는 소유자가 모든 권한을 가지고 있으며, 그룹은 읽기 및 접근
권한을 가지고 있으며, 다른 유저는 쓰기와 접근을 가지고 있음
u=rwx,g=rx,o=wx
753
# mkdir -m 753 /tmp/test/test2
# ls -ld /tmp/test/test2
# mkdir -m g-w,o-r+w /tmp/test/test2 // 755(???) → 753
3) /tmp/test/test2/test3 디렉터리는 소유자가 모든 권한을 가지고 있으며, 그룹은 읽기
권한만 가지고 있으며, 다른 유저는 접근 권한만 가지고 있음
u=rwx,g=r,o=x
741
=> umask 755에서 계산해줘야..,
rwxr-xr-x
# mkdir -m 741 /tmp/test2/test3
# mkdir -m g-x,o-r /tmp/test/test2/test3 // 755 → 741
// 마무리
[root@localhost tmp]# rm -rf /tmp/test
답: 관리자(root) umask : rwxr-xr-x (755)
mkdir -m 1777 /tmp/test
mkdir -m 753 /tmp/test/test2
mkdir -m 741 /tmp/test/test2/test3
--------------------------------
mkdir -m go+w,o+t /tmp/test
mkdir -m g-w,o-r+w /tmp/test/test2
mkdir -m g-x,o-r /tmp/test/test2/test3
'BigData_Off1 > 리눅스1' 카테고리의 다른 글
리눅스1> 2018.01.06(08)_18~19일차 - 패키지 설치 1) RPM 2) YUM (0) | 2018.01.05 |
---|---|
리눅스1> 2018.01.05_17일차 - 3) 보관(tar), 4) 다중압축(tar+gzip, tar+bzip2) (0) | 2018.01.05 |
리눅스1> 2018.01.03_15일차 - 권한> 3. 소유권, <실습>사용자 복구 관련 (0) | 2018.01.03 |
리눅스1> 2018.01.02_14일차 - 권한> 2.소유권 (0) | 2018.01.02 |
리눅스1> 2017.12.29_13일차 - 권한> 1.허가권(Permission) (0) | 2017.12.29 |