一 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
- 一個用戶打開一個文件或目錄或先去匹配文件的屬主是否為此用戶,如果是則匹配用戶權限,如果不是則進入2
- 用戶會匹配自己是否是文件屬組的用戶,如果是則匹配組權限位,如果不是則使用其它用戶權限位
(三) 特殊權限
Linux系統中還有SUID,SGID和STICKY三個特殊權限位
-
SUID:默認情況一下用戶打開一個進程,進程的屬主為其發起者,因此以其發起者的身份運行。如果一個程序用于SUID權限,那么進程的屬主將會是該文件的屬主而不是發起者的身份運行。
- 如果屬組原本有執行權限,文件屬主權限位顯示為小寫s,否則為大寫S
- 管理文件的SUID權限: chmod u+|-s FILE
- SGID:當一個目錄擁有SGID權限并且該目錄屬組擁有寫權限,那么在此目錄下創建文件的屬組為此目錄的屬組而不是該用戶的基本組
- 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
一開始的作業比較簡單,但都是比較重要的基礎,掌握扎實非常的必要,這次作業完成的非常好,再接再勵。