文本處理工具命令使用以及文件權限管理

一 sort uniq wc cut tr 等文本處理工具的基本用法

1.  通過who命令查看當前登錄了哪些用戶,并通過uniq或sort -u命令將重復的行只顯示一次
[root@Linuxprobe ~]# who | cut -d' ' -f1 | sort -u  目前查看系統有兩個用戶登錄
harrycai
root
[root@Linuxprobe ~]# who | cut -d' ' -f1 |  uniq使用uniq命令
harrycai 
root
2 使用last命令可以查到登錄系統用戶順序,取出第一個為最后一個登錄到系統的用戶
[root@Linuxprobe ~]# last | head -n1   取出最后一個登錄系統的用戶為root
root pts/210.127.69.23 Sun Aug 13 10:22   still logged in  
3 統計出現相同的行可以使用uniq -c 選項
[root@Linuxprobe ~]# cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n  查看統計結果為noloin最多
  1 /bin/nologin
  1 /bin/sync
  1 /sbin/halt
  1 /sbin/shutdown
  9 /bin/bash
 37 /sbin/nologin

4 先使用sort命令-t指定分隔符-k指定為第三段的UID進行排序,再用tail命令取出UID最大的后10行并使用tr命令轉換成大寫輸出重定向至/tmp/maxusers.txt文件

[root@Linuxprobe ~]# sort -t: -k3 -n  /etc/passwd | tail -n10 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt 
[root@Linuxprobe ~]# cat /tmp/maxusers.txt 
HARRYCAI:X:1000:1000:HARRY.CAI:/HOME/HARRYCAI:/BIN/BASH
STUDENT:X:1001:1001::/HOME/STUDENT:/BIN/BASH
BASH:X:1002:1002::/HOME/BASH:/BIN/BASH
NOLOGIN:X:1003:1003::/HOME/NOLOGIN:/BIN/NOLOGIN
USER1:X:1004:1004::/HOME/USER1:/BIN/BASH
USER2:X:1005:1005::/HOME/USER2:/BIN/BASH
USER3:X:1006:1006::/HOME/USER3:/BIN/BASH
JERRY:X:1007:1007::/HOME/JERRY:/BIN/BASH
SAM:X:1008:1008::/HOME/SAM:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN

5 使用cut命令取出當前主機ip地址

[root@Linuxprobe ~]# ifconfig | head -n2 | tail -1 | cut -d" " -f10
10.127.69.19

6 取出/etc下所有已.conf結尾的文件轉換成大寫后保存至/tmp/.comf
[root@Linuxprobe ~]# ls /etc/*.conf | tr 'a-z' "A-Z" > /tmp/.conf
[root@Linuxprobe ~]# cat /tmp/.conf 
/ETC/ASOUND.CONF
/ETC/BRLTTY.CONF
/ETC/CGCONFIG.CONF
................. 略

7 統計/var目錄下所有目錄以及文件數量
[root@Linuxprobe ~]# ls /var/ | wc -l
22

8 對/etc/group 文件第三個字段進行排序并顯示最小的10個
[root@Linuxprobe ~]# sort -t: -k3 -n /etc/group | head -n10

9 將/etc/fastb和/etc/issue文件合并為/tmp/etc.test
[root@Linuxprobe ~]# cat /etc/fstab >> /tmp/etc.test 可使用追加輸出重定向至 /tmp/etc.test
[root@Linuxprobe ~]# cat /etc/issue >> /tmp/etc.test

二 文件權限管理


(一) 用戶和組

Linux系統中用戶的類別可分為管理用戶,系統用戶和普通用戶三類

  • 管理用戶:擁有最高權限的root賬號,為避免誤操作建議盡量使用普通用戶登錄系統 UID 0
  • 系統用戶: 系統運行某些服務類進程為了避免進程被劫持致使root賬號被泄露,一般在運行服務類進程時建議使用非管理員賬號運行,因此通常會創建多個普通用戶,這類用戶只以該身份運行某些服務類進程一般不會登陸系統 1-499(CentOS6) 1-999(CentOS7)
  • 普通用戶: 一般普通用戶 500-60000 (CentOS6) 1000-60000 (CentOS7) 同樣的Linux也會分為管理組,系統組和登陸組

(二)權限管理

  • 一般基本權限可分為讀,寫和執行 rwx
  • 對于目錄而言讀權限表示可以ls查看目錄的內容;寫權限可以在目錄中刪除或創建目錄或文件;執行權限表示可以cd至該目錄
  • 對于文件而言讀權限表示可以使用cat等命令查看文件內容;寫權限表示可對內容進行修改;執行權限表示可以將文件啟動一個進程
  • 文件安全上下文:
  • [root@Linuxprobe ~]# ls -l /etc/fstab
  • -rw-r–r–. 1 root root 483 Apr 13 23:51 /etc/fstab 第1位代表文件類型,其余9位每三位一組,第一組為用戶權限,第二組為組權限,第三組為其它用戶權限,root root 代表文件屬主為root屬組也為root

    1. 一個用戶打開一個文件或目錄或先去匹配文件的屬主是否為此用戶,如果是則匹配用戶權限,如果不是則進入2
    2. 用戶會匹配自己是否是文件屬組的用戶,如果是則匹配組權限位,如果不是則使用其它用戶權限位

(三) 特殊權限

Linux系統中還有SUID,SGID和STICKY三個特殊權限位

  1. SUID:默認情況一下用戶打開一個進程,進程的屬主為其發起者,因此以其發起者的身份運行。如果一個程序用于SUID權限,那么進程的屬主將會是該文件的屬主而不是發起者的身份運行。

    • 如果屬組原本有執行權限,文件屬主權限位顯示為小寫s,否則為大寫S
    • 管理文件的SUID權限: chmod u+|-s FILE
  2. SGID:當一個目錄擁有SGID權限并且該目錄屬組擁有寫權限,那么在此目錄下創建文件的屬組為此目錄的屬組而不是該用戶的基本組
  3. STICKY:對于屬組或全局可寫的目錄,組內的所有任務或系統上的所有用戶對此目錄中都能創建或刪除文件;如果為此類目錄設置sticky權限,則每個用戶能創建新文件并且只能刪除屬主為自己的文件

四 用戶及權限管理命令用法

1 組管理命令
groupadd命令:  groupadd [options] group  創建一個組
 -g GID:指定GID: 默認是上一個組的GID
 -r  創建系統組:
groupmod命令: group - user group file
 -g GID:指定GID
 2 用戶管理命令
useradd命令:   useradd [options] LOGIN 創建一個用戶
 -u 指定UID
 -g GROUP  指定基本組,此組需要事先存在
 -G GROUP1[,GROUP2,...[,GROUPN]]]  指定附加組
 -c 用戶注釋信息
 -d 以指定的路徑為用戶的家目錄:通過復制/etc/skel此目錄并重新命名實現,指定的家目錄路徑如果事先存在,則不會為用戶復制環境配置文件
 -s 指定用戶的默認shell,可用的所有shell列表為/etc/shells 文件、
 -M 不為用戶創建家目錄
 -D 顯示創建用戶的默認配置
注意:創建用戶時的諸多默認配置文件/etc/login.defs
userdel命令:用戶刪除
 -r 刪除用戶一并刪除家目錄
passwd命令: passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays]  [-S] [--stdin] [username]
   (1) passwd:修改用戶自己的密碼
   (2) passwd username: 修改指定用戶密碼
-l,-u:鎖定和解鎖用戶
 -d :刪除一個用戶的密碼
 -e date:過期期限,日期
 -i  days:非活動期限
 -n DAYS:密碼使用的最短使用期限
 -x DAYS:密碼的最長使用期限
 -w DAYS:密碼警告時間
3 文件權限修改命令

權限管理命令:
chmod命令:  chmod [OPTION]... MODE[,MODE]... FILE...   
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE..
MODE表示法:
   賦權表示法 u= | g= | o= | a=
   授權表示法 u+,u- | g+,g- | o+, o-
chmod --reference=/etc/fstab /var/tmp/harry.cai/test  根據其他文件的權限修改
選項:
 -R 遞歸修改

從屬關系選項管理命令:
   chown命令: chown [OPTION]... [OWNER][:[GROUP]] FILE...
   chown [OPTION]... --reference=RFILE FILE...
   -R 遞歸修改
umask:文件權限反向掩碼,遮罩碼
 文件:666 - umask 
 目錄:777 - umask
之所以文件用666去減,表示文件默認不能擁有執行權限,如果減得的結果中有執行權限,則需要將其加1

三 用戶及權限管理練習

1 [root@Linuxprobe ~]# groupadd distro -g 2016  創建組distro,GID2016
 2 [root@Linuxprobe ~]# useradd mandriva -u 1005 -g distro 創建用戶mandriva,UID1005并設置基本組為distro
 3 [root@Linuxprobe ~]# useradd mageia -u 1110 -d /home/linux 創建用戶mageia,UID1100家目錄指定為/hoem/linux
 4 [root@Linuxprobe linu]# echo "mageia" | passwd --stdin mageia 給用戶mageia添加密碼為mageia
   Changing password for user mageia.
   passwd: all authentication tokens updated successfully.
 5 [root@Linuxprobe linu]# userdel mandriva   刪除用戶mandria
 6 [root@Linuxprobe linu]# useradd slackware -u 2002 -g distro -G peguin 添加用戶slackware UID為2002,基本組為distro,附加組peguin
 7 [root@Linuxprobe linu]# usermod -s /bin/tcsh slackware 將slackware的默認shell修改為tcsh
 8 [root@Linuxprobe linu]# usermod -G admins slackware將slackware添加到admins附加組
 9 [root@Linuxprobe linu]# cp -r /etc/skel/ /home/tuser1  復制/etc/skel到/home/tuser1
   [root@Linuxprobe linu]# chmod -R 700 /home/tuser1/ 目錄以及目錄內文件屬組和其他用戶均沒有任何權限
10 [root@Linuxprobe linu]# chown :hadoop /etc/group   將/etc/group屬組改為hadoo
11 [root@Linuxprobe home]# install -m 700 -d /etc/skel/ /home/hadoop 復制/etc/skel到 /home/hadopp并修改權限為700
12 [root@Linuxprobe home]# chown hadoop:hadoop /home/hadoop/ 將/home/hadoop 屬組和屬主均改為hadoop

原創文章,作者:N27_CaiShuang,如若轉載,請注明出處:http://www.www58058.com/84651

(0)
N27_CaiShuangN27_CaiShuang
上一篇 2017-08-13
下一篇 2017-08-13

相關推薦

  • #!/bin/bash # for i in $(ls /etc/rc.d/rc3.d/ | grep  "\<K");do     echo $i.stop    &nbs…

    Linux干貨 2016-12-26
  • 進程理論和相關工具的使用

    內核的功用 進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等     Process: 運行中的程序的一個副本,是被載入內存的一個指令集合 進程ID(Process ID,PID)號碼被用來標記各個進程     UID、GID、和SELinux語境決定對文件…

    Linux干貨 2017-08-28
  • RHCE系列之ntp服務器—-實踐篇

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1319520 上篇Linux實戰部署系列之ntp服務器—-理論篇為大家介紹時間的相關概念和ntp的原理,本篇博文將帶大家一起部署生產環境中實現簡單…

    Linux干貨 2016-08-15
  • N26-博客作業-week6

    vim:Vi IMprove 基本模式:編輯模式,命令模式輸入模式末行模式 打開文件: vim [option] [file…] +#:打開文件后,直接讓光標處于第#行的行首+/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首 模式轉換:編輯模式:默認模式編輯模式 –> 輸入模式:i:insert…

    Linux干貨 2017-03-12
  • linux系統啟動流程詳解

    一、 為什么要研究linux系統啟動:     或許有人會說,等它開機就好了,為什么還要研究它開機流程呢,其實如果服務器運行很好又沒有人為的誤操作等,或許不用研究,但是為了能在系統出問題后第一時間的修復它,又或者你忘記了root密碼等情況時就非常有必要研究一下linux的開機流程了,因為只有知道了它是如何運作的,才能讓…

    Linux干貨 2016-09-13
  • HAproxy簡單配置

    用途:TCP/HTTP反向代理,四層負載均衡,適合高可用環境。Linux6.4版本后haproxy已隨base倉庫收錄進來。文檔:http://cbonte.github.io/haproxy-dconv/主程序:/usr/sbin/haproxy 主配置文件:/etc/haproxy/haproxy.cfg啟動文件:/usr/lib/systemd/sys…

    2017-05-17

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-08-20 19:10

    一開始的作業比較簡單,但都是比較重要的基礎,掌握扎實非常的必要,這次作業完成的非常好,再接再勵。

欧美性久久久久