Linux_《Linux命令行與shell腳本編程大全》第七章學習總結

時間:2017年08月07日星期一java

說明:本文部份內容均摘取自書籍《Linux命令行與shell腳本編程大全》,版權歸原做者全部。《Linux命令行與shell腳本編程大全》(第三版)第七章學習總結shell

第七章:理解Linux文件權限

本章內容:編程

理解Linux的安全性
解讀文件權限
使用Linux組

7.1 Linux的安全性

Linux安全系統的核心是用戶帳戶。每一個能進入Linux系統的用戶都會被分配惟一的用戶帳戶。用戶對系統中各類對象的訪問權限取決於他們登陸系統時用的帳戶。安全

7.1.1 /etc/passwd文件

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

7.1.2 /etc/shadow文件

/etc/shadow文件對Linux系統密碼管理提供了更多的控制。只有root用戶才能訪問/etc/shadow文件,每一個用戶帳戶都對應一條記錄,每條記錄中都有9個字段學習

與/etc/passwd文件中的登陸名字段對應的登陸名編碼

加密後的密碼
自上次修改密碼後過去的天數密碼(自1970年1月1日開始計算)
多少天后才能更改密碼
多少天后必須更改密碼
密碼過時前提早多少天提醒用戶更改密碼
密碼過時後多少天禁用用戶帳戶
用戶帳戶被禁用的日期(用自1970年1月1日到當天的天數表示)
預留字段給未來使用

7.1.3 添加新用戶

命令:useradd加密

命令格式:useradd test
命令說明:建立一個名爲test的用戶

7.1.4 刪除用戶

命令:userdel

命令格式:userdel -r test
命令說明:刪除test用戶級test用戶的HOME目錄

7.1.5 修改用戶

用戶帳戶修改工具

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修改密碼過時日期

7.2 使用Linux組

7.2.1 /etc/group文件

保存組信息的文件,格式如:root:x:0:root,字段分別爲

組名
組密碼
GID
屬於該組的用戶列表

千萬不能經過直接修改/etc/group文件來添加用戶到一個組,要用usermod命令

7.2.2 建立新組

命令:groupadd

命令格式:groupadd name
命令說明:建立一個名爲name的組

說明:若是更改了已登陸系統帳戶所屬的用戶組,該用戶必須登出系統後再登陸,組關係的更改才能生效。

警告:爲用戶帳戶分配組時要格外當心。若是加了-g選項,指定的組名會替換掉該帳戶的默認組。-G選項則將該組添加到用戶的屬組的列表裏,不會影響默認組。

7.2.3 修改組

命令:groupmod

命令格式:groupmod -n name newname
命令說明:將name組的組名修改成newname
命令格式:groupmod -g 505 name
命令說明:將name組的GID修改成505(原來是504)

說明:因爲全部的安全權限都是基於GID的,因此能夠隨意改變組名而不會影響文件的安全性。但不要隨意修改組的GID。

7.3 理解文件權限

7.3.1 使用文件權限符

命令: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組權限分別對應對象的三個安全級別:

對象的屬主:即用戶名
對象的屬組:即組名
系統其它用戶:其它用戶

7.3.2 默認文件權限

命令: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。

7.4 改變安全性設置

7.4.1 改變權限

命令:chmod

命令格式:chmod +x dir
命令說明:給dir目錄賦執行權限

命令格式:chmod +x shell.sh
命令說明:給shell.sh文件賦執行權限

7.4.2 改變所屬關係

命令:chown

命令格式:chown owner file
命令說明:改變文件的屬主

命令示例:chown test demo.sh
命令說明:將demo.sh文件的屬主修改成test用戶爲屬主

命令:chgrp

命令格式:chgrp group file
命令說明:改變文件的默認屬組

命令示例:chown grouptest demo.sh
命令說明:將demo.sh文件的默認屬組修改成grouptest用戶組

說明:只有root用戶可以改變文件的屬主。任何屬主均可以改變文件的屬組,但前提是屬主必須是原屬組和目標屬組的成員。

7.5 共享文件

命令演示:

命令:mkdir testdir
說明:建立一個名爲testdir的目錄
命令:chgrp grouptest testdir
說明:改變testdir目錄的默認屬組爲grouptest用戶組

如今,grouptest用戶組下的全部用戶均可以訪問testdir下的文件了。

7.6 小結

本章討論了管理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:改變文件的默認屬組(屬於哪一個用戶組)
相關文章
相關標籤/搜索