91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

bash特性續寫以及用戶和組的管理

發布時間:2020-07-11 20:09:16 來源:網絡 閱讀:268 作者:Runs_ 欄目:開發技術

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

             

                    bash 特性之變量

  程序=指令+數據

  數據:文件  變量

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

  賦值操作:

= 賦值操作符

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

變量的命名規范

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

   2 大小寫嚴格區分

   3 見名知意

   4 書寫規范  

1)全大寫:FILES

2)駝峰式:MyFiles

          5 不能與已知變量名相同

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

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

           255  字符類型:38bytes

                整數型:1byte

                null:

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

      bash的變量即為弱變量:


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

   bash的變量種類:

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

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

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

       默認全局變量:

              位置參數變量:$1 $2 $3 $4……$n

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

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

  $# 表示 位置參數的個數 以十進制表示

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

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

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

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

變量的使用

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

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

聲明環境變量 

   export 變量

   export 變量=變量名

declare

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

   -A聲明關聯數組(如果支持)

   -i聲明整型變量

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

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

   -x聲明變量并將其導出為環境變量

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

查看環境變量

   set

   export

   env

聲明局部變量

   local 變量=變量名

配置文件:

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

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

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



                    用戶和組的管理


  用戶賬戶

  組賬戶

  權限的分配


  Cisco 思科公司開發的AAA認證體系

Authentication 認證 核實身份是否正確

Authorization 授權 對已經核實身份的用戶進行資源分配

Accounting 審計 監管資源被使用的情況


多用戶、多任務的系統

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

安全上下文:secure context

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


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

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

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

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


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


1.用戶分類

超級用戶 (管理員)root

普通用戶

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

    登錄用戶:   能夠正常使用整個系統資源的用戶

用戶的標識 

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

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

   超級用戶的ID號碼為: 0

   系統用戶:

       centos5、6:1-499

       centos7: 1-999

  登錄用戶 :

       centos5、6: 500 -60000

       centos7 : 1000-60000

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

名稱解析:

    把名字解析成UID


解析庫:/etc/passwd

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

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

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


采用密碼認證的機制:

    設置密碼的一般性策略

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

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

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

       4.不定期更換密碼 

在Linux中 保存中認證庫中的密碼信息是經過加密保存的

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

    單項加密算法的特征:

1.只要數據相同 其加密結果就必然相同

       2.無論數據多大 其加密結果定長輸出

       3.雪崩效應 

       4.不可逆

  單項加密常用的算法:

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

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

    3.sha224

    4.sha256

    5.sha384

    6.sha512


salt:隨機數

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

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


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

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


用戶組:

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

   組類別;

       管理員組:

       普通用戶組:

           系統組:

           登錄組:

      組的標識方法:

           組名:方便操作者使用的

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

          管理員組:0

           系統組:

           centos5、6: 1-499

           centos7 : 1-999

       登錄組:

           centos5、6: 500 -60000

           centos7 : 1000-60000

          解析庫:/etc/group

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

組也需要密碼保護

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

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

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

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

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

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

根據組所容納的用戶來分:

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

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

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


用戶和組的管理:

   主要使用命令完成:

     組管理相關的命令:

groupadd、groupdel、groupmod

     用戶管理相關的命令:

        useradd、userdel、usermod

     認證管理相關的命令:

        passwd、gpasswd、chage

其他的相關管理命令:

        chsh、finger、su、id


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

name:登錄名

password:密碼字段 現在在使用了shadow機制的系統中 通常使用“X”作為占字符

UID:用戶ID

GID:此用戶主要組的ID

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

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$真正意義的加密密碼

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

如果該位置為*則表明該用戶為系統用戶 不能登錄

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

date of last password change:

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

minimum password age:

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

maximum password age:

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

password warning period:

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

password inactivity period:

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

account expiration date:

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

reserved field

  保留字段 以備以后使用


/etc/gpasswd:

group name:encrypted password:administrators:members


組管理命令:

  groupadd:新建組賬戶、添加組

    -g gid  在創建組賬戶的時候 指定組賬戶的GID 如果不使用該選項指定 系統會選擇在組解析文件中出現在的不大于60000最大GID加1

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

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

     groupmod[選項]GROUP

   -g gid:修改組賬戶的ID

   -n NEW_GROUPNAME:修改組名

 groupdel:刪除組賬戶

   groupdel[選項]GROUPNAME

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


用戶管理的命令

   useradd:創建用戶賬戶

   useradd [選項] 登錄名

  /etc/default/useradd

  /etc/login.defs

  /etc/skel

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

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

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

  -g, --gid GROUPNAME:在創建用戶時 為用戶指定組

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

  -m, --create-home  在創建目錄時強制性為用戶創建家目錄

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

  -r –system 創建系統用戶

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

  -s, --shell /PATH/TO/SHELL  在創建用戶的時候 為用戶指定默認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選項同時使用意味著將舊的家目錄中的數據移動到新家之中

-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 而言 其優先級更高

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

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

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

  -S, --status  查看用戶的密碼狀態

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

    echo“PASSWORD”|passwd—stdin USERNAME

組認證相關的命令

gpasswd

gpasswd [選項] groupname

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

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


其他命令

   su switch user 切換用戶身份

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

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

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

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

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

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

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

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

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

id [OPTION]... [USER]

  -g 只顯示用戶的有效GID

  -n 只顯示用戶的有效UID

  -G 顯示用戶所有組的ID

  -n 以名稱代替ID來顯示


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九江市| 遵化市| 万载县| 福泉市| 错那县| 灌南县| 历史| 汉川市| 吉林省| 祁连县| 宁陵县| 通渭县| 江源县| 荥阳市| 弥渡县| 布尔津县| 昆山市| 台州市| 资兴市| 镇平县| 百色市| 北流市| 灵川县| 湟中县| 错那县| 宁明县| 诏安县| 嘉兴市| 九龙城区| 赞皇县| 砚山县| 中方县| 磴口县| 翁牛特旗| 彰化县| 松滋市| 仙居县| 沙雅县| 长岛县| 三穗县| 彩票|