時間:2017年08月07日星期一java
說明:本文部份內容均摘取自書籍《Linux命令行與shell腳本編程大全》,版權歸原做者全部。《Linux命令行與shell腳本編程大全》(第三版)第七章學習總結shell
本章內容:編程
理解Linux的安全性 解讀文件權限 使用Linux組
Linux安全系統的核心是用戶帳戶。每一個能進入Linux系統的用戶都會被分配惟一的用戶帳戶。用戶對系統中各類對象的訪問權限取決於他們登陸系統時用的帳戶。安全
Linux系統使用一個專門的文件來將用戶的登陸名匹配到對應的UID值。這個文件就是/etc/passwd文件,它包含了一些與用戶有關的信息。bash
root:x:0:0:root:/root:/bin/bash
root用戶帳戶是Linux系統的管理員,固定分配給它的UID是0.網絡
/etc/passwd文件的字段包含了以下信息:工具
登陸用戶名 用戶密碼(/etc/passwd文件中的密碼字段都被設置成了x,即隱藏了密碼, 密碼單獨保存在etc/shadow文件中) 用戶帳戶的UID(數字形式) 用戶帳戶的組ID(GID)(數字形式) 用戶帳戶的文本描述(稱爲備註字段) 用戶HOME目錄的位置 用戶的默認shell
/etc/shadow文件對Linux系統密碼管理提供了更多的控制。只有root用戶才能訪問/etc/shadow文件,每一個用戶帳戶都對應一條記錄,每條記錄中都有9個字段學習
與/etc/passwd文件中的登陸名字段對應的登陸名編碼
加密後的密碼 自上次修改密碼後過去的天數密碼(自1970年1月1日開始計算) 多少天后才能更改密碼 多少天后必須更改密碼 密碼過時前提早多少天提醒用戶更改密碼 密碼過時後多少天禁用用戶帳戶 用戶帳戶被禁用的日期(用自1970年1月1日到當天的天數表示) 預留字段給未來使用
命令:useradd加密
命令格式:useradd test 命令說明:建立一個名爲test的用戶
命令:userdel
命令格式:userdel -r test 命令說明:刪除test用戶級test用戶的HOME目錄
用戶帳戶修改工具
usermod:修改用戶帳戶的字段,還能夠指定主要組以及附加組的所屬關係 passwd:修改已有用戶的密碼 chpasswd:從文件中讀取登陸名密碼對,並更新密碼 chage:修改密碼的過時日期 chfn:修改用戶帳戶的備註信息 chsh:修改用戶帳戶的默認登陸shell
命令:usermod
經常使用參數
-c:修改備註字段 -e:修改過時日期 -g:修改默認的登陸組 -l:修改用戶帳戶的登陸名 -L:鎖定用戶,使用戶沒法登陸 -p:修改帳戶的密碼 -U:解除鎖定,使用戶可以登陸
命令:passwd
命令格式:passwd test 命令說明:修改test用戶的登陸密碼
命令:chpasswd
命令格式:chpasswd < users.txt 命令說明:批量修改用戶名對應的密碼,登陸名和密碼用冒號分隔
命令:chsh、chfn、chage
命令說明:chsh修改默認的用戶登陸shell、chfn修改備註字段、chage修改密碼過時日期
保存組信息的文件,格式如:root:x:0:root
,字段分別爲
組名 組密碼 GID 屬於該組的用戶列表
千萬不能經過直接修改/etc/group文件來添加用戶到一個組,要用usermod命令
命令:groupadd
命令格式:groupadd name 命令說明:建立一個名爲name的組
說明:若是更改了已登陸系統帳戶所屬的用戶組,該用戶必須登出系統後再登陸,組關係的更改才能生效。
警告:爲用戶帳戶分配組時要格外當心。若是加了-g選項,指定的組名會替換掉該帳戶的默認組。-G選項則將該組添加到用戶的屬組的列表裏,不會影響默認組。
命令:groupmod
命令格式:groupmod -n name newname 命令說明:將name組的組名修改成newname 命令格式:groupmod -g 505 name 命令說明:將name組的GID修改成505(原來是504)
說明:因爲全部的安全權限都是基於GID的,因此能夠隨意改變組名而不會影響文件的安全性。但不要隨意修改組的GID。
命令:ls
命令格式:ls -l 命令說明:使用ls命令查詢Linux系統上的文件、目錄和設備的權限。
示例:drwxr-xr-x 3 root root 4096 Jul 25 21:05 java
說明:第一個字段及 drwxr-xr-x 就是描述文件和目錄權限的編碼。這個字段的第一個字符表明了對象的類型:
-表明文件 d表明目錄 l表明連接 c表明字符型設備 b表明塊設備 n表明網絡設備
以後有3組字符的編碼。每一組定義了3中訪問權限:
r表明對象是可讀的 w表明對象是可寫的 x表明對象是可執行的
若沒有某種權限,在該權限位會出現單破折線。這3組權限分別對應對象的三個安全級別:
對象的屬主:即用戶名 對象的屬組:即組名 系統其它用戶:其它用戶
命令:umask
命令格式:umask 命令說明:查看默認權限
Linux文件權限碼
權限:二進制值:八進制值:描述 ---:000:0:沒有任何權限 --x:001:1:只有執行權限 -w-:010:2:只有寫入權限 -wx:011:3:有寫入和執行權限 r--:100:4:只有讀取權限 r-x:101:5:有讀取和執行權限 rw-:110:6:有讀取和寫入權限 rwx:111:7:有所有權限
文件來講:全權限是666表示全部用戶都有讀和寫的權限
目錄來講:全權限是777表示全部用戶都有讀、寫、執行權限
命令格式:umask 026 命令說明:設置默認文件權限爲 666-026=640,目錄權限爲 777-026=751。
命令:chmod
命令格式:chmod +x dir 命令說明:給dir目錄賦執行權限 命令格式:chmod +x shell.sh 命令說明:給shell.sh文件賦執行權限
命令:chown
命令格式:chown owner file 命令說明:改變文件的屬主 命令示例:chown test demo.sh 命令說明:將demo.sh文件的屬主修改成test用戶爲屬主
命令:chgrp
命令格式:chgrp group file 命令說明:改變文件的默認屬組 命令示例:chown grouptest demo.sh 命令說明:將demo.sh文件的默認屬組修改成grouptest用戶組
說明:只有root用戶可以改變文件的屬主。任何屬主均可以改變文件的屬組,但前提是屬主必須是原屬組和目標屬組的成員。
命令演示:
命令:mkdir testdir 說明:建立一個名爲testdir的目錄 命令:chgrp grouptest testdir 說明:改變testdir目錄的默認屬組爲grouptest用戶組
如今,grouptest用戶組下的全部用戶均可以訪問testdir下的文件了。
本章討論了管理Linux系統安全性須要知道的一些命令行命令。Linux經過用戶ID和組ID來限制對文件、目錄以及設備的訪問。Linux將用戶帳戶的信息存儲在/etc/passwd文件中,將組信息存儲在/etc/group文件中。每一個用戶都會被分配惟一的用戶ID,以及在系統中識別用戶的文本登陸名。組也會被分配惟一的組ID以及組名。組能夠包含一個或多個用戶以支持對系統資源的共享訪問。本章介紹了useradd、userdel、usermod、passwd、chpasswd、chsh、chfn、chage、groupadd、groupmod、umask、chmod、chow、chgrp命令。
本章學習命令我的總結以下:
useradd:添加新用戶 userdel:刪除用戶 usermod:修改用戶帳戶的字段,還能夠指定主要組以及附加組的所屬關係 passwd:修改已有用戶的密碼 chpasswd:批量修改用戶密碼 chsh:修改用戶帳戶的默認登陸shell chfn:修改用戶帳戶的備註信息 chage:修改密碼的過時時間 groupadd:建立新組 groupmod:修改組 umask:顯示和設置默認權限 chmod:改變文件和目錄的安全性設置 chow:改變文件的屬主(屬於哪一個用戶或用戶組) chgrp:改變文件的默認屬組(屬於哪一個用戶組)