2015 년 8 월 27 일 [파일 권한 관리 및 grep 정규 및 확장 정규 표현 식] - JY1506402 - 19 + liuhui 880818

학습 내용: 파일 권한 관리 및 grep 정규 및 확장 정규 표현 식
시스템 환경: CentOS 6.7 / 7 x8664
 
1. 숙제 (연습) 내용:
1、                        ;
2、                 
3、  /etc/passwd    bash    
4、  /etc/passwd           
5、  `netstat -tan`      ‘LISTEN’  0 、1             
6、    bash、testbash、basher  nologin  (nologin   shell /sbin/nologin);    /etc/passwd        shell     
7、       root、centos  user1     shell UID (         ,    )
8、  /etc/rc.d/init.d/functions      (           )           
9、  echo      ,  egrep       ;      egrep      
10、  ifconfig       1-255     

2. 완성 시간:
2015 년 9 월 3 일 수업 전
 
3. 총화 와 연습
1. 본 과정 에서 관련 된 명령 의 사용 방법 과 관련 사례 를 요약 한다.
(1) Linux 파일 시스템 파일 권한 설명
 사용자 가 파일 에 접근 할 수 있 는 권한 은 세 가지 가 있 습 니 다: rwx
파일:
r: 텍스트 보기 도 구 를 사용 하여 내용 을 볼 수 있 습 니 다.
w: 파일 편집 도 구 를 사용 하여 내용 을 편집 할 수 있 습 니 다.
x: 이 파일 을 프로 세 스 로 실행 할 것 을 커 널 에 요청 할 수 있 습 니 다.
디 렉 터 리:
   r: ls 명령 을 사용 하여 디 렉 터 리 의 파일 이나 하위 디 렉 터 리 목록 을 표시 할 수 있 습 니 다.
  w: 이 디 렉 터 리 에서 파일 을 만 들 거나 삭제 할 수 있 습 니 다.
  x: 'ls - l' 을 사용 하여 디 렉 터 리 파일 과 하위 디 렉 터 리 의 상세 한 속성 정 보 를 표시 할 수 있 습 니 다.cd 명령 으로 작업 디 렉 터 리 를 지정 한 디 렉 터 리 로 전환 할 수 있 습 니 다.
 
파일 권한 은 주, 그룹 과 다른 사용자 로 나 뉘 는데 각각 u: owner, g: group, o: other 를 사용 합 니 다.a: all 소유
특정한 사용자 가 특정한 파일 에 접근 할 수 있 는 권한 은 다음 과 같 습 니 다.
--- 000,0
         --x001,1
         -w-010,2
         -wx011,3
         r--100,4
         r-x101,5
         rw-110,6
         rwx111,7
         664:rw-rw-r--
         rwxr-x---:750
 
(2) 권한 관리 관련 명령
chmod             권한 관리
일반 옵션:
- R 디 렉 터 리 의 모든 파일 을 재 귀적 으로 수정 할 수 있 는 권한
--reference=file  수정 권한 을 설정 한 파일 은 file 과 같 습 니 다.
 
두 가지 용법:
 =rwx             예: = rx,
[+ | -] rwx 예: u + w, a - x
예: -- reference = file 매개 변수 사용
[root@MyTest-67 ~]# ll
total 72
-rw-------. 1 root root  1399Aug 27 18:44 anaconda-ks.cfg
-rw-r--r--. 1 root root 50433 Aug 27 18:44 install.log
-rw-r--r--. 1 root root 10033 Aug 27 18:41 install.log.syslog
[root@MyTest-67 ~]# chmod --reference=./install.log anaconda-ks.cfg
[root@MyTest-67 ~]# ll
total 72
-rw-r--r--. 1 root root  1399Aug 27 18:44 anaconda-ks.cfg
-rw-r--r--. 1 root root 50433 Aug 27 18:44 install.log
-rw-r--r--. 1 root root 10033 Aug 27 18:41 install.log.syslog

chown,chgrp  소속 관계 관리
chown - 파일 이나 디 렉 터 리 의 소유자 나 그룹 을 변경 합 니 다.
- R 재 귀
사용법:
chown centos file           #소유자 변경
chown [.|:]mygrp file             #종속 그룹 변경
chown centos[.|:]mygrp file        #소유자 와 그룹 을 동시에 변경 합 니 다.
 
chgrp - 파일 이나 디 렉 터 리 를 변경 하 는 그룹
 
umask               파일 마스크 코드
목록: 777 - umask
파일: 666 - umask
설명: 특정한 사용자 의 권한 이 줄 어 든 결과 에 실행 권한 이 있 으 면 자동 으로 권한 위 치 를 1 로 추가 합 니 다.
umask UMASK \ # umask 설정: 현재 셸 프로 세 스에 만 유효 합 니 다.
 
[root@MyTest-67 ~]# touch b.txt
[root@MyTest-67 ~]# ll b.txt
-rw-r--r--. 1 root root 0 Aug 27 23:42 b.txt
[root@MyTest-67 ~]# su - centos
su: user centos does not exist
[root@MyTest-67 ~]# useradd centos
[root@MyTest-67 ~]# su - centos
[centos@MyTest-67 ~]$ touch centos
[centos@MyTest-67 ~]$ ll centos
-rw-rw-r--. 1 centos centos 0 Aug 27 23:42 centos
[centos@MyTest-67 ~]$ umask
0002
[centos@MyTest-67 ~]$ exit
logout
[root@MyTest-67 ~]# umask
0022

 
 
2. 기본 정규 표현 식 및 확장 정규 표현 식 정리
grep:
  리 눅 스 파일 처리 삼 총사:
         grep: 파일 필터 도구;
         sed: 텍스트 편집기 (줄);streameditor
         awk: 텍스트 보고서 생 성기: linux 에서 awk 의 실현 은 gawk
  grep:Global search REgular expression and Print out the line.
         역할: 텍스트 검색 도구, 사용자 가 지정 한 '패턴 (pattern)' 에 따라 대상 텍스트 를 한 줄 씩 검색 하고 일치 하 는 줄 을 인쇄 합 니 다.
         모드: 정규 표현 식 의 메타 문자 와 텍스트 문자 로 작 성 된 필터 조건;
         메타 문자: 문 자 는 글자 의 의 미 를 나타 내지 않 고 연결 또는 제어 기능 을 나타 내 는 데 사 용 됩 니 다.
         두 가지 유형 으로 나 뉜 다.
           기본 정규 표현 식: BRE
           정규 표현 식 확장: ERE
           정규 표현 식 엔진:
    grep [OPTIONS] PATTERN [FILE...]
         옵션:
             --color = auto: 일치 하 는 문자열 을 강조 합 니 다.
             -v: 디 스 플레이 모드 가 줄 과 일치 하지 않 음;
             -i: 문자 대소 문자 무시 하기;
             -o: 패턴 에 맞 는 줄 만 표시 합 니 다.
             -q: 침묵 모드;
             -E: 확 장 된 정규 표현 식 사용 하기;
 
         기본 정규 표현 식 의 메타 문자:
           문자 일치:
           .:임의의 단일 문자 일치 하기;
           []: 지정 한 범위 내의 임의의 단일 문자 와 일치 합 니 다.
           [^]: 지정 한 범위 이외 의 임의의 단일 문자 와 일치 합 니 다.
           [:lower:],[:upper:],...
         횟수 일치: 횟수 를 지정 할 문자 의 뒤에 사용:
                   *:임의로
                     abxy
                     xay
                     xxxxxxxxxy
                     grep "x*y"
                   \?:0 또는 1 회;
                     grep "x\?y"
                   \+:1 번 또는 여러 번;
                   \{m \}: m 회로 정확하게 제한 하기;
                   \{m, n \}: 최소 m 회, 최대 n 회, [m, n]
                            {0, n}: 최대 n 회;
                            {m,}: 최소 m 회
                   .*:임의의 길이 의 임의의 문자 일치 하기;
            위치 고정:
                   ^:닻 을 내리다.모드 의 맨 왼쪽 에 사용 하기;
                   $:닻 을 내리다.모드 의 맨 오른쪽 에 사용 하기;
                   \<,\b: 단어의 첫 닻;단 어 를 나타 내 는 모드 의 왼쪽;
                   \>,\b: 어미 닻;단 어 를 나타 내 는 패턴 의 오른쪽;
                   ^$:공백 줄;
             그룹: \ (\)
                   그룹 을 나 누 는 작은 괄호 의 패턴 이 일치 하 는 내용 은 실행 과정 에서 정규 표현 식 엔진 에 기록 되 고 내 장 된 변 수 를 저장 합 니 다. 이 변 수 는 각각 \ 1, \ 2,...
                   \1: 왼쪽 부터 첫 번 째 왼쪽 괄호, 그리고 그 와 어 울 리 는 왼쪽 괄호 가운데 패턴 에 일치 하 는 내용;
                   \2:
                   ...
              후방 참조: 변 수 를 사용 하여 앞의 그룹 괄호 의 패턴 에 일치 하 는 문 자 를 참조 합 니 다.
[root@MyTest-C67 ~]# grep 'r..t.*r..t'grep.txt
root:x:34:43:/root:/bin/root
root:x:56:67:/rrrt:/bin/raat
[root@MyTest-C67 ~]# cat grep.txt                       
abxyxyxyab
xayabxyabxy
xyvbxy
root:x:34:43:/root:/bin/root
bash:x:45:56:/home/bash:bin/tcsh
root:x:56:67:/rrrt:/bin/raat
[root@MyTest-C67 ~]# grep 'r..t.*r..t'grep.txt
root:x:34:43:/root:/bin/root
root:x:56:67:/rrrt:/bin/raat
[root@MyTest-C67 ~]# grep '\(r..t\).*\1'grep.txt    
root:x:34:43:/root:/bin/root

 
3. / etc / passwd 파일 에서 bash 로 끝 나 는 줄 보이 기
[root@MyTest-67 ~]# grep "bash$" /etc/passwd
root:x:0:0:root:/root:/bin/bash

 
4. / etc / passwd 파일 의 두 자릿수 또는 세 자릿수 를 표시 합 니 다.
[root@localhost ~]# grep"[0-9]\{2,3\}" /etc/passwd 
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

 
5. 'netstat - tan' 명령 결과 'LISTEN' 뒤꿈치 0 개, 1 개 또는 여러 개의 공백 문자 로 끝 나 는 줄 보이 기
[root@MyTest-C67 ~]# netstat -tan| grep"LISTEN[[:space:]]*$"
tcp       0      0 0.0.0.0:44907               0.0.0.0:*                   LISTEN     
tcp       0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN     
tcp       0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN     
tcp       0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN     
tcp       0      0 127.0.0.1:25                0.0.0.0:*

6. 사용자 bash, testbash, basher 및 nologin 사용자 (nologin 사용자 의 셸 은 / sbin / nologin) 를 추가 합 니 다.그리고 / etc / passwd 파일 의 사용자 이름과 셸 이름 이 같은 줄 을 찾 습 니 다.
[root@MyTest-C67 ~]# tail -4 /etc/passwd
bash:x:3004:3004::/home/bash:/bin/bash
testbash:x:3005:3005::/home/testbash:/bin/bash
basher:x:3006:3006::/home/basher:/bin/bash
nologin:x:3007:3007::/home/nologin:/sbin/nologin
[root@MyTest-C67 ~]# grep"\(bash\).*\1" /etc/passwd
bash:x:3004:3004::/home/bash:/bin/bash
testbash:x:3005:3005::/home/testbash:/bin/bash
basher:x:3006:3006::/home/basher:/bin/bash

정확 한 방법:
[root@MyTest-C67 ~]# grep "^\([[:alnum:]]\{1,\}\)\>.*\1$"/etc/passwd     
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:3004:3004::/home/bash:/bin/bash
nologin:x:3007:3007::/home/nologin:/sbin/nologin

7. 현재 시스템 의 루트, centos 또는 user 1 사용자 의 기본 셸 과 UID 를 표시 합 니 다.
[root@MyTest-C67 ~]# grep -E"^\<(root|centos|user1)\>" /etc/passwd|cut -d: -f1,3,7
root:0:/bin/bash
centos:3009:/bin/bash
user1:3010:/bin/bash

8. / etc / rc. d / init. d / functions 파일 에 있 는 단어 (단어 중간 에 밑줄 이 있 을 수 있 음) 를 찾 아 작은 괄호 줄 을 따라 갑 니 다.
[root@MyTest-C67 ~]# grep -E"(\<[[:alpha:]]\>|[[:alpha:]]_[[:alpha:]]).*\(\)"/etc/rc.d/init.d/functions         
fstab_decode_str() {
__umount_loop() {
__umount_loopback_loop() {
__pids_var_run() {

 
9. echo 로 경 로 를 출력 한 다음 에 egrep 에서 경로 의 기본 이름 을 찾 습 니 다.egrep 를 사용 하여 디 렉 터 리 이름 을 추출 합 니 다.
[root@MyTest-C67 ~]# echo"/etc/init.d/iptables" |egrep --color=auto -o "[^/]+/?$"
iptables
[root@MyTest-C67 ~]# echo"/etc/init.d/iptables" |egrep --color=auto -o ".*/"
/etc/init.d/

 
10. ifconfig 명령 실행 결과 1 - 255 사이 의 숫자 찾기
[root@MyTest-C67 ~]# ifconfig |grep -E--color=auto "\<[1-9]|[1-9][1-9]|1[1-9][1-9]|2[0-4][0-9]|25[0-5]\>"
eth0     Link encap:Ethernet  HWaddr00:0C:29:08:4F:6A 
         inet addr:192.168.31.200 Bcast:192.168.31.255 Mask:255.255.255.0

좋은 웹페이지 즐겨찾기