bash特性續(xù)寫以及用戶和組的管理-創(chuàng)新互聯(lián)

本周繼續(xù)學習了bash的相關知識,bash的變量需要注意書寫規(guī)范和強弱變量以及bash變量的種類等,然后開始學習用戶和組的管理,重點學習了組管理命令,用戶管理的命令,用戶認證相關的命令,組認證相關的命令,其他命令這些知識點,需要我們課后學習記憶。

10年積累的成都網(wǎng)站制作、做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計制作后付款的網(wǎng)站建設流程,更有新羅免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

          bash 特性之變量

 程序=指令+數(shù)據(jù)

 數(shù)據(jù):文件  變量

 變量:一段連續(xù)的內(nèi)存空間cell=8bit  (32bit字長支持4GB內(nèi)存)為這一段內(nèi)存空間取名 稱之為變量名:在這段內(nèi)存空間中所存儲的數(shù)據(jù)稱為變量值

 賦值操作:

= 賦值操作符

 賦值方法 變量=變量值(VARNAME=VALUE)

變量的命名規(guī)范

  1 只能以字母或者下劃線為首字符 不能使用數(shù)字 后面可以是任意字母 數(shù)字 下劃線

  2 大小寫嚴格區(qū)分

  3 見名知意

  4 書寫規(guī)范

1)全大寫:FILES

2)駝峰式:MyFiles

     5 不能與已知變量名相同

根據(jù)不同的編程語言 變量可以分為兩類

   強變量:必須在使用前聲明 而且要聲明變量的類型 嚴格區(qū)分變量的類型

      255  字符類型:38bytes

        整數(shù)型:1byte

        null:

   弱變量:可以隨時使用隨時聲明 甚至可以不聲明即使用 另外不對變量類型做硬性要求 如果沒有指明變量類型 統(tǒng)一按照字符型對待

   bash的變量即為弱變量:

引用變量的值 :${變量名}=$變量名  也稱為變量替換

  bash的變量種類:

     全局變量(環(huán)境變量):作用范圍為整個shell進程 包括其子shell

     本地變量:作用范圍僅僅只是當前登錄的shell 不包括子shell

    局部變量:作用范圍僅僅只是當前的程序段 一般用于函數(shù)

    默認全局變量:

       位置參數(shù)變量:$1 $2 $3 $4……$n

       特殊變量  $? $# $@ $* $$……

 $? 表示 展開為最近一次所執(zhí)行的命令狀態(tài)返回值(退出狀態(tài))

 $# 表示 位置參數(shù)的個數(shù) 以十進制表示

 $* 表示 從一開始展開為位置參數(shù) 當使用雙引號引用展開的時候 它展開為以特殊變量“IFS”的第一個字符分隔的值

 $@ 表示 從一開始展開為位置參數(shù) 當使用雙引號引用展開的時候 它展開為一個單獨的字符串

 $$ 表示 展開為當前shell的進程的標識符

 $0 表示 展開為當前shell或者shell腳本的文件名

變量的使用

  變量的賦值:變量=標量名  聲明本地變量

  撤銷變量:~]# unset 變量名

聲明環(huán)境變量

  export 變量

  export 變量=變量名

declare

  -a聲明索引數(shù)組(如果支持)

  -A聲明關聯(lián)數(shù)組(如果支持)

  -i聲明整型變量

  -l聲明變量并將變量值中的字符轉換為小寫字母

  -u聲明變量并將變量值中的字符轉換為大寫字母

  -x聲明變量并將其導出為環(huán)境變量

  -r聲明變量為只讀變量(常量)

查看環(huán)境變量

  set

  export

  env

聲明局部變量

  local 變量=變量名

配置文件:

 通用配置文件 /etc/bashrc  /etc/profile

 私人配置文件~/.bashrc   ~/.bash_profile

注意  一般情況下 聲明變量都是現(xiàn)做現(xiàn)用 因此我們并不需要改配置文件

          用戶和組的管理

 用戶賬戶

 組賬戶

 權限的分配

 Cisco 思科公司開發(fā)的AAA認證體系

Authentication 認證 核實身份是否正確

Authorization 授權 對已經(jīng)核實身份的用戶進行資源分配

Accounting 審計 監(jiān)管資源被使用的情況

多用戶、多任務的系統(tǒng)

能夠實現(xiàn)資源使用和完成任務的主體是:應用程序進程

安全上下文:secure context

進程是以其發(fā)起者的身份運行的 可以理解為進程的所有者就是發(fā)起者 會將發(fā)起者的信息標記在進程上

當進程試圖去訪問資源的時候 安全上下文會比對進程的所有者和資源所有者的關系

首先查看進程的所有者是不是資源的所有者 如果是 就按照屬主的權限使用資源

如果不是 則判斷進程的所有者是否屬于資源所屬組 如果是 按照屬組的權限使用資源

如果不是 則直接使用資源的其他人訪問權限來使用資源

用戶賬戶: 就是計算機操作者在操作過程中的身份映射 在滿足了認證條件之后的身份映射

1.用戶分類

超級用戶 (管理員)root

普通用戶

  系統(tǒng)用戶:  為了保證安全 必須讓那些運行在后臺的進程或者服務類以非管理員的身份運行 這類用戶一般不需要登錄到系統(tǒng)

  登錄用戶:  能夠正常使用整個系統(tǒng)資源的用戶

用戶的標識

用戶的登錄名稱:  為操作者準備的簡單易記的字符串標識

用戶的ID (UID):  為計算機系統(tǒng)準備的數(shù)字標識

  超級用戶的ID號碼為: 0

  系統(tǒng)用戶:

    centos5、6:1-499

    centos7: 1-999

 登錄用戶 :

    centos5、6: 500 -60000

    centos7 : 1000-60000

  60000以上的標識符為用戶自定義標識

名稱解析:

  把名字解析成UID

解析庫:/etc/passwd

系統(tǒng)利用解析庫完成認證機制 驗證登錄用戶是否是你聲稱的那個人

用戶的認證信息庫:/etc/shadow

組的認證信息庫:/etc/group

采用密碼認證的機制:

  設置密碼的一般性策略

    1.盡量使用隨機字串作為密碼

    2.密碼長度一般不要少于八個字符

    3.密碼中至少包括大寫字母、小寫字母、數(shù)字、標點符號四類中的三類

    4.不定期更換密碼

在Linux中 保存中認證庫中的密碼信息是經(jīng)過加密保存的

  hash單項加密算法:抽取原始數(shù)據(jù)的特征信息,數(shù)據(jù)指紋

  單項加密算法的特征:

1.只要數(shù)據(jù)相同 其加密結果就必然相同

    2.無論數(shù)據(jù)多大 其加密結果定長輸出

    3.雪崩效應

    4.不可逆

 單項加密常用的算法:

  1.md5:Message Digest 消息摘要  128bit的定長輸出

  2.sha1:Secure Hash Algorithm 安全的哈希算法 160bit 定長輸出

  3.sha224

  4.sha256

  5.sha384

  6.sha512

salt:隨機數(shù)

  /dev/random: 僅僅只是從熵池中返回隨機數(shù) 如果熵池隨機數(shù)耗盡 則進程被阻塞

  /dev/urandom: 試圖先從熵池中返回隨機數(shù) 如果熵池耗盡 則利用偽隨機數(shù)生成器生產(chǎn)偽隨機數(shù)

最終認證的字符串:算法+salt+密碼

 在認證庫中存放的信息:$6$salt$crytped_password

用戶組:

將具有某些相同或者相似屬性的用戶聯(lián)系在一起以便集中授權的容器

  組類別;

    管理員組:

    普通用戶組:

      系統(tǒng)組:

      登錄組:

   組的標識方法:

      組名:方便操作者使用的

    組的ID(GID):為系統(tǒng)提供組標識

     管理員組:0

      系統(tǒng)組:

      centos5、6: 1-499

      centos7 : 1-999

    登錄組:

      centos5、6: 500 -60000

      centos7 : 1000-60000

     解析庫:/etc/group

組也需要認證,組也有認證庫:/etc/gpasswd

組也需要密碼保護

  如果組沒有設置密碼保護的話 則不能隨時加入

以用戶為核心來對組進行分類:

  用戶的主要組(基本組):primary group

對用戶來說 這樣的組必須要有而且只能有一個

用戶的附加組(附屬組、額外組):Addition Group

這樣的組對于用戶來說 可以沒有 也可以有多個

根據(jù)組所容納的用戶來分:

  私有組:組名與用戶登錄名相同 并且組中只有此用戶

  公共組:組中可以包含其他多個不同用戶

注意:默認情況下 用戶的主要組都是其私有組

用戶和組的管理:

  主要使用命令完成:

   組管理相關的命令:

groupadd、groupdel、groupmod

   用戶管理相關的命令:

    useradd、userdel、usermod

   認證管理相關的命令:

    passwd、gpasswd、chage

其他的相關管理命令:

    chsh、finger、su、id

name:password:UID:GID:GECOS:directory:shell

name:登錄名

password:密碼字段 現(xiàn)在在使用了shadow機制的系統(tǒng)中 通常使用“X”作為占字符

UID:用戶ID

GID:此用戶主要組的ID

GECOS:comment 注釋類的信息 現(xiàn)在一般都會用來存放用戶的說明信息或全名

directory:用戶的家目錄的絕對路徑

shell:用戶的默認登錄shell的絕對路徑

/etc/group:

group_name:password:GID:user_list

group_name:組名

password:組密碼占位符 默認為空

GID:組的ID

user_list:以該組的附加組的用戶的列表

/etc/shadow:

login name:用戶的登錄名

encrypted password:加密了的密碼

  格式:$算法$salt$真正意義的加密密碼

如果該位置為!則表明用戶的密碼被禁止

如果該位置為*則表明該用戶為系統(tǒng)用戶 不能登錄

如果該字段為空 則用戶可以不輸入密碼即可登錄系統(tǒng) 不推薦使用

date of last password change:

 相對概念 表示從1970年1月1日開始的天數(shù) 到最后一次更改密碼的時間

minimum password age:

 在多長時間內(nèi)無法修改密碼 默認值為0 意思即為:隨時修改密碼  如果是非0的其他數(shù)字 意思是在這么長的天數(shù)里不能改密碼

maximum password age:

 在多長時間后密碼過期 默認為99999 意思是永久有效

password warning period:

 密碼過期之前的友善提醒天數(shù) 默認值是七天

password inactivity period:

 密碼過期后的寬限期 默認為-1 意思是永久寬限

account expiration date:

 一個用戶賬戶密碼過期的日期 這是一個絕對的過期期限

reserved field

 保留字段 以備以后使用

/etc/gpasswd:

group name:encrypted password:administrators:members

組管理命令:

 groupadd:新建組賬戶、添加組

  -g gid  在創(chuàng)建組賬戶的時候 指定組賬戶的GID 如果不使用該選項指定 系統(tǒng)會選擇在組解析文件中出現(xiàn)在的不大于60000大GID加1

  -r  創(chuàng)建系統(tǒng)組 意思是創(chuàng)建一個GID在1-999(1-499)之間的組

 groupmod:修改組的一些相關屬性信息

   groupmod[選項]GROUP

  -g gid:修改組賬戶的ID

  -n NEW_GROUPNAME:修改組名

 groupdel:刪除組賬戶

  groupdel[選項]GROUPNAME

  注意:如果某個組是某個用戶的主要組或者私有組 則該組無法刪除

用戶管理的命令

  useradd:創(chuàng)建用戶賬戶

  useradd [選項] 登錄名

 /etc/default/useradd

 /etc/login.defs

 /etc/skel

以上三個文件和目錄能夠幫助管理員在未指定任何選項時 也能創(chuàng)建用戶 并為用戶賦予默認的屬性

 -c, --comment ‘COMMENT’: 在創(chuàng)建用戶時為用戶添加注釋信息 一般為全名

 -d –home /PATH/TO/HOME _DIR : 在創(chuàng)建用戶的時候為用戶指定家目錄的絕對路徑 被指定的目錄應該是事先不存在的目錄

 -g, --gid GROUPNAME:在創(chuàng)建用戶時 為用戶指定組

 -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]: 在創(chuàng)建用戶時為用戶添加附加組

 -m, --create-home  在創(chuàng)建目錄時強制性為用戶創(chuàng)建家目錄

 -M  在創(chuàng)建用戶時不創(chuàng)建用戶家目錄 即使在/etc/login.defs中CREATE_HOME的值為yes也不創(chuàng)建

 -r –system 創(chuàng)建系統(tǒng)用戶

 -u, --uid UID  在創(chuàng)建用戶的時候為用戶指定UID 這個UID可以超過60000的限制

 -s, --shell /PATH/TO/SHELL  在創(chuàng)建用戶的時候 為用戶指定默認shell 使用絕對路徑

 -D  --defaults  顯示或修改用戶默認屬性值

 -s, --shell /PATH/TO/SHELL 修改/etc/default/useradd文件中SHELL的默認值

usermod:修改用戶賬戶信息

  usermod [選項] 登錄名

  -c, --comment ‘COMMENT’ 修改用戶的注釋信息

-g, --gidGROUPNAME  修改用戶的主要組

-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]  修改用戶的附加組為列表中的組

-a, --append 與-G選項同時使用 給用戶添加新的附加組

-d, --home /PATH/TO/HOME_DIR 修改用戶的家目錄

-m, --move-home  與-d選項同時使用意味著將舊的家目錄中的數(shù)據(jù)移動到新家之中

-l, --login NEW_LOGIN 更改用戶賬戶的登錄名

-s, --shell/PATH/TO/SHELL 修改用戶賬戶的登錄shell

-u, --uid UID  修改用戶的UID

-L, --lock  鎖定用戶的密碼

-U, --unlock 解鎖用戶的密碼

userdel 刪除用戶賬戶

 userdel [選項] 登錄名

  -r 刪除用戶的同時 清除用戶的家目錄

用戶認證相關的命令

passwd  設置或者查看用戶密碼信息的命令

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

1.如果省略用戶名 意味著更改當前登錄用戶密碼

2.如果指定用戶名 更改指定用戶密碼 只能root使用

選項:

 -l, --lock  鎖定用戶的密碼

 -u, --unlock  解鎖用戶的密碼

   相比較usermod –L|-U 而言 其優(yōu)先級更高

   如果使用usermod –L鎖定的用戶密碼 可以使用passwd –u解鎖

   而是用passwd –l鎖定的用戶密碼 無法使用usermod –U解鎖

 -d,-–delete  刪除用戶密碼 將/etc/shadow文件中第二字段清空

 -S, --status  查看用戶的密碼狀態(tài)

 --stdin  借助于管道將輸入數(shù)據(jù)流當做標準輸入信息送給passwd命令

  echo“PASSWORD”|passwd—stdin USERNAME

組認證相關的命令

gpasswd

gpasswd [選項] groupname

-a, --adduser  向名為 group 的組中添加用戶 user。

  -d, --deleteuser  從名為 group 的組中移除用戶 user。

其他命令

  su switch user 切換用戶身份

   su USERNAME 部分切換 半切換  在切換用戶的時候不會重新讀取用戶的配置文件 因此 用戶并沒有登錄行為 所以 工作環(huán)境不初始化

   su-USERNAME 完全切換 在切換用戶的時候 重新讀取目標用戶的配置文件并且初始化工作環(huán)境  相當于su –l USERNAME

   -c“COMMAND”并不切換用戶身份 而是以目標用戶的身份執(zhí)行某命令

使用su命令的時候 從root切換到其他普通用戶 無需密碼 但普通登錄用戶進行切換時 必須給出目標用戶的密碼

 進行用戶切換之后 不要連續(xù)切換 而是用exit命令返回之前的用戶

newgrp GOUPNAME 臨時更改當前登錄用戶的主要組 使用exit返回之前的狀態(tài)

id  顯示真實的和有效的用戶和組的ID

 真實ID 在/etc/passwd定義的用戶的UID和GID

 有效的ID  當前生效的用戶的UID和GID

id [OPTION]... [USER]

 -g 只顯示用戶的有效GID

 -n 只顯示用戶的有效UID

 -G 顯示用戶所有組的ID

 -n 以名稱代替ID來顯示

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站欄目:bash特性續(xù)寫以及用戶和組的管理-創(chuàng)新互聯(lián)
當前URL:http://bm7419.com/article48/dgcoep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、云服務器、定制網(wǎng)站App設計、品牌網(wǎng)站設計、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名