1. 程式人生 > >運維筆記4(使用者資訊涉及到的檔案,使用者管理命令,使用者許可權的下放,更新:關於useradd -b -d -m -k的一些理解和使用)

運維筆記4(使用者資訊涉及到的檔案,使用者管理命令,使用者許可權的下放,更新:關於useradd -b -d -m -k的一些理解和使用)

概述:

       理解多使用者,知道涉及使用者資訊的都有哪些檔案,使用者的管理命令,使用者許可權的下放。

1.什麼是使用者?

       從日常生活中想的話,我們每個人都是當過使用者,去銀行你有個賬戶,對於銀行你就是個使用者,你的資訊被銀行記錄在資料庫(可以是任何介質的資料庫)中,諸如姓名,身份證號,註冊時間,存款資訊等等,如果你的存錢或取錢後就對你賬戶資料庫中的資訊進行修改。所以使用者對銀行來說就是一些用來描述使用者資訊的字串。在linux系統中也是這樣,使用者就是系統使用者的身份,在系統中使用者儲存為若干串字元+若干個系統配置檔案,儲存這些字串的檔案分別是/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,還有一些與使用者有關係的檔案,如/etc/login.defs,/etc/skel。他們的詳細用途,我們在下面進行介紹。

2.使用者資訊涉及到的系統配置檔案:

       

       /etc/passwd:這個檔案所有的使用者都可以讀取,其中存放的資訊有,使用者名稱字,使用者加密後的密碼(為了安全,現在已將加密後的密碼放在/etc/shadow檔案下了,這裡預設放x,切記不可亂加字元,可能導致無法登陸),使用者ID(uid),使用者初始組ID(gid),使用者描述資訊(可用chfn修改這個資訊,可用finger命令查詢),使用者家目錄,使用者使用哪種shell(在/etc/shells下是規定可以使用的shell)。

      

      /etc/shadow:這個檔案主要存放使用者的密碼資訊,第一個欄位是使用者名稱;第二個欄位是加密的密碼;第三個欄位是上一次修改密碼的時間(大家可能看不懂這個數字和時間有什麼關係,其實這個數字是上次修改距離1970年1月1日的天數,不信?我們來計算一下

,現在明白了吧,這就是天數);第四個欄位是密碼最短修改時間間隔,第五個欄位是密碼最長修改時間間隔,第六個欄位是,密碼警告時間(密碼距離到達第四個欄位多長時間時需要會發出警告);第七個欄位是非活躍期(當密碼過期後還有多少天可以使用);第八個是密碼到期日(過了這個時間使用者就無法使用了)。

       

        /etc/group:第一個欄位是使用者名稱,第二個欄位是加密的組密碼,第三個是組ID(gid),最後一個欄位用來放這個組的使用者(或者說以'mo'為附加組的使用者,之後會介紹初始組和附加組的區別)。

       

       /etc/gshadow:第一個欄位是使用者名稱,第二個欄位是真正的加密密碼,圖中為!,代表還沒有設定,第三個欄位也是用來放這個組的使用者。

      

      /etc/skel,這個檔案是使用者的骨架目錄,每次新建使用者時都會將這個目錄下的檔案複製到使用者家目錄下來佈置環境。

3.使用者的管理命令

1)useradd        引數          使用者名稱字

         -u        ##指定使用者uid

                              -g        ##指定使用者初始組的gid,這個組必須已經存在

                              -G       ##指定使用者附加組,這個附加組也必須存在

 #############這裡插入一條關於什麼是初始組什麼是附加組?

       用一個通俗的解釋,你剛出生時只屬於一個組,就是你的家,而且這個組一般是不會變的,這個家就是你的初始組,生你的時候家必須存在,所以用-g指定的那個組,也就必須存在;隨著你的長大,你又加入了很多組,比如小學,初中,高中,大學,等等,但是這些組不會覆蓋你的初始組,你還是屬於你的家,這就是附加組。

       -s       ##指定使用者登陸時使用的shell

                               -c      ##使用者說明資訊

                               -d      ##指定使用者家目錄

2)ueserdel    刪除使用者

                           一般會使用-r選項,表示刪除使用者資訊及使用者系統配置。

3)組的建立

groupadd ########建立組

                  -g 指定組id

groupdel            組名稱    ###刪除組

4)使用者id資訊檢視

-u ##使用者uid
-g ##使用者初始組id
-G ##使用者所有所在組id
-n ##顯示名稱而不是id數字
-a ##顯示所有資訊

5)使用者資訊更改

uesrmod  引數           使用者

               -l ##更改使用者名稱稱
-u ##更改uid
-g ##更改gid
-G ##更改附加組
-aG ##新增附加組
-c ##更改說明
-d ##更改家目錄指定
-md ##更改家目錄指定及家目錄名稱
-s ##更改shell
-L ##凍結帳號
-U ##解鎖

這個命令的基本引數與useradd差不都,如果掌握了useradd這個命令一定也沒有問題,此處說明下-L加鎖引數。我們都知道passwd命令也擁有加鎖引數,是passwd -l,這兩個加鎖有什麼不同呢,我們現在來測試下。

              用usermod -L上的鎖就是在/etc/shadow第二欄位的前面加一個'!',而passwd -l是在第二個欄位前加兩個'!',所以可得,兩個不同是他們的強度不同。

,這是我們新建一個使用者後他的shadow檔案中的字串,只有一個‘!’,所以我們在剛建立使用者後沒有設定密碼的時候是無法使用的,這個賬戶是被鎖定狀態,設定密碼過後就解除了鎖定狀態。 

6)一些其他的使用者管理命令

chfn,用來更改用的註釋資訊


finger用於查詢以上資訊(這個命令一般需要先下載)


chage用於更改密碼的過期資訊

           -d         ###用於更改上次修改密碼的時間(將這個天數修改為0有特殊意義,使用者下次登陸這個賬戶會被要求必須修改密碼)

           -E         ###用於更改到期天數

           -I          ###使用者到期後的不活躍天數

           -m       ###兩次修改密碼間距最小天數

           -M       ###兩次修改密碼間距最大天數

           -W      ###為警告天數

4.使用者許可權的下放

我們可以讓一個使用者以某個身份執行一個命令,而不一定是以自己的身份執行,一般用來將root使用者的權利下放給普通使用者。其實就是修改一個檔案/etc/sudoers我們來看下這個檔案的結構。


這個檔案有自己的一套語法,如果修改不當,就會導致sudo出現問題,所以務必使用visudo來修改,因為這個工具會對我們修改後的檔案進行嚴格的語法檢查,如果錯誤了會提示哪行錯誤。

下面我們用一個具體例子來解釋他的語法

jorge ALL=(root) /usr/bin/find, /bin/rm
上面的第一欄規定它的適用物件:使用者或組,就本例來說,它是使用者jorge。此外,因為系統中的組和使用者可以重名,要想指定該規則的適用物件是組而非使用者的話,組物件的名稱一定要用百分號%開頭。
第二欄指定該規則的適用主機。當我們在多個系統之間部署sudo環境時,這一欄格外有用,這裡的ALL代表所有主機。但是,對於桌面系統或不想將sudo部署到多個系統的情況,這一欄就換成相應的主機名。
第三欄的值放在括號內,指出第一欄規定的使用者能夠以何種身份來執行命令。本例中該值設為root,這意味著使用者jorge能夠以root使用者的身份來執行後面列出的命令。該值也可以設成萬用字元ALL,jorge便能作為系統中的任何使用者來執行列出的命令了。
最後一欄(即/usr/bin/find, /bin/rm)是使用逗號分開的命令表,這些命令能被第一欄規定的使用者以第三欄指出的身份來執行它們。本例中,該配置允許jorge作為超級使用者執行 /usr/bin/find和 /bin/rm這兩個命令。需要指出的是,這裡列出的命令一定要使用絕對路徑。
########接下來我們測試一下,做一個練習,我想讓mo2使用者可以以修改任何人的密碼,怎麼做?
這樣就可以了。 這樣就可以使用了。
sudo命令不僅可以將某一和使用者權利提升,也可以將root使用者權利下降,就是使用它的-u引數,以某一使用者執行這個命令。
這樣我們就用root使用者創出了屬主和屬組都是mo的檔案。 更新:

應為在使用useradd的時候會有指定你的家目錄的時候,不一定是/home/username,自己查詢man手冊後發現了幾個相關的引數但是有點混淆,現在好好總結一下這幾個引數,分別是-b,-d,-m,-k,現在我簡單的翻一下man目錄關於這幾個引數的說明。

1)
       -b, --base-dir BASE_DIR
           The default base directory for the system if -d HOME_DIR is not specified.
           BASE_DIR is concatenated with the account name to define the home directory.
           If the -m option is not used, BASE_DIR must exist.

    If this option is not specified, useradd will use the base directory
           specified by the HOME variable in /etc/default/useradd, or /home by default

如果-d引數(家目錄)沒有被指定,那麼這就是系統基礎目錄。基礎目錄是與賬戶名字相連線起來作為家目錄。

如果-m選項沒有使用,那麼基礎目錄必須存在

  如果這個引數沒有被指定,useradd命令將使用HOME變數所指定的基礎目錄,這個變數在/etc/default/useradd,或者/home 下。

tips:根據上面的翻譯其實已經非常好理解了,這個-b引數就是用於修改放置用於名字目錄的目錄,下面測試一下:

[[email protected] ~]# useradd -b / mo
[[email protected] ~]# cd /
[[email protected] /]# ls
bin   dev  home    lib    media  <span style="color:#ff0000;">mo</span>   proc  run   srv  tmp  var
boot  etc  huawei  lib64  mnt    opt  root  sbin  sys  usr
[[email protected] /]# cd mo
[[email protected] mo]# ls
[[email protected] mo]# ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .config  .mozilla
這個命令就相當於修改下你的使用者家目錄放置的上級目錄,不會更改其他的東西,而且就算家目錄之前沒有建立,他也會為你建立好。

2)

-d, --home-dir HOME_DIR
           The new user will be created using HOME_DIR as the value for the user's
           login directory. The default is to append the LOGIN name to BASE_DIR and use
           that as the login directory name. The directory HOME_DIR does not have to
           exist but will not be created if it is missing.

新使用者將會以HOME_DIR作為他的使用者登入目錄而被建立。預設情況下是使用LOGIIN name新增在BASE_DIR後並使用它作為登陸目錄名字。HOME_DIR路徑不是必須存在,但是他將不會被建立如果路徑不存在的話。

tips:這個選項用起來就會奇怪一點,他既然可以指定在哪裡建立家目錄,但是為啥又不為系統建立他呢,其實是有原因的,我們知道家目錄不是一個簡單的目錄他下面有很多與這個環境有關的檔案,我們隨便建立一個其實和使用者真實的家目錄有許可權和檔案的差別。所以這個命令是一個很細化的命令,讓我們可以自定義使用者的家目錄,但是細化的壞處就是他只完成一小部分任務,其他的任務還要交給別人完成,這條命令還要有別的引數參與才能建立我們完整的家目錄。就是下面我們介紹的-m與-k。

3)

-m, --create-home
           Create the user's home directory if it does not exist. The files and
           directories contained in the skeleton directory (which can be defined with
           the -k option) will be copied to the home directory.

           By default, if this option is not specified and CREATE_HOME is not enabled,
           no home directories are created.

           The directory where the user's home directory is created must exist and have
           proper SELinux context and permissions. Otherwise the user's home directory
           cannot be created or accessed.

為使用者建立家目錄如果家目錄不存在的話。那裡包含的檔案和目錄在骨架目錄中(骨架目錄的路徑也可以用-k選項指定)將被複制到家目錄下。

預設情況下,如果這個選項沒有被指定並且CREATE_HOME(定義在)也沒有被啟動將沒有家目錄被建立。

建立使用者的主目錄的目錄必須存在並有適當的SELinux上下文和許可權

tips:看,咱們剛才需要建立目錄,這裡,他就給出來了,既然-d不給建立目錄,那就加一個-m引數不就可以建立了嗎。

[[email protected] /]# useradd -d /li -m li
[[email protected] /]# ls /
bin   dev  home    <span style="color:#ff0000;">li</span>   lib64  mnt  opt   root  sbin  sys  usr
boot  etc  huawei  lib  media  mo   proc  run   srv   tmp  var
[[email protected] /]# ls li
[[email protected] /]# ls -a li
.  ..  .bash_logout  .bash_profile  .bashrc  .config  .mozilla
4)

-k, --skel SKEL_DIR
           The skeleton directory, which contains files and directories to be copied in
           the user's home directory, when the home directory is created by useradd.

           This option is only valid if the -m (or --create-home) option is specified.

           If this option is not set, the skeleton directory is defined by the SKEL
           variable in /etc/default/useradd or, by default, /etc/skel.

           If possible, the ACLs and extended attributes are copied.

骨架目錄,包括將被複制到使用者家目錄的檔案和目錄,當家目錄被useradd製造。

這個選項只有在-m選項被指定的時候才有效。

如果這個選項沒有設定,這個骨架目錄將被在/etc/default/useradd的SKEL變數定義,or直接預設為/etc/skel。

tips:其實這個選項的作用就是為你新建立的家裝修用的,如果我們裝修技術不好的話,那就暫時先不指定,使用系統預設的吧。

相關推薦

筆記4使用者資訊涉及到的檔案使用者管理命令使用者許可權下放更新關於useradd -b -d -m -k一些理解使用

概述:        理解多使用者,知道涉及使用者資訊的都有哪些檔案,使用者的管理命令,使用者許可權的下放。 1.什麼是使用者?        從日常生活中想的話,我們每個人都是當過使用者,去銀行你有個賬戶,對於銀行你就是個使用者,你的資訊被銀行記錄在資料庫(可以是任何介質

筆記33 haproxy的配置pacemaker高可用+haproxy

概述:之前的部落格中提到的一種負載均衡方式是lvs,lvs的配置簡單,減少了認為出錯的概率,而且軟體處在tcp/ip協議棧的第四層,可以對各種web應用服務,但是因為本身不支援正則表示式處理,不能做動靜分離。那麼今天的haproxy的優勢就體現出來了,能夠支援虛

筆記21 郵件伺服器的搭建

概述: 雖然即時通訊工具諸如qq,微信之類的工具已經是大家和朋友溝通的首選了,但是在一些情況下,我們一定會使用到電子郵件這個東西,基本上國內大一點的網際網路公司都有電子郵件的服務,我們使用電子郵件的時候感覺非常便利,只用編輯標題,發件人,內容之後點擊發送,郵件就被送到了目的

Linux筆記網絡基礎知識

使用 可靠 height image inter 電話線 ppp協議 網址 esp 網絡基礎知識 一、基本概念 1.ARPANET & TCP/IP:以“軟件”技術將網絡硬件整合,使得不同的計算機或者數據可以通過這個軟件達成數據溝通(TCP/IP技術也被稱為Inte

DNS概述---筆記補充版

DNS概述---運維筆記(補充版)一·DNS概述 把域名翻譯成IP地址的軟件稱為域名系統,即DNS。它是一種管理名字的方法。 (1)域名系統(Domain Name System縮寫DNS,Domain Name被譯為域名)是因特網的一項核心服務,它作為可以將域名和IP地址相互映射的一個分布式數據庫,能夠使人

部署DHCP服務---筆記補充版

部署DHCP服務---運維筆記一?DHCP概述 (1)了解DHCP服務:Dynamic Host Configuration Protoco動態主機配置協議是由Internet工作任務小組設計開發的,專門用於為TCP/IP參數的協議。l(1) 使用DHCP的好處:① 減少管理員的工作量② 避免輸入錯誤

redis開發與筆記3

1、客戶端 通訊協議是建立在TCP協議之上的。Redis制定了RESP(REdis Serialization Protocol, Redis序列化協議) 實現客戶端與服務端的正常互動 (1)客戶端API。client .. 命令 client list。列出與Re

redis開發與筆記1

1、Redis特性與優點 速度快。redis所有資料都存放於記憶體;是用C語言實現,更加貼近硬體;使用了單執行緒架構,避免了多執行緒競爭問題。Redis使用了單執行緒架構和IO多路複用模型(epoll作為多路複用技術的實現,非阻塞IO)來實現。每次客戶端的請求都會經過傳送命

筆記40 Linux系統監控之CactiCacti搭建自動抓取cacti統計圖片指令碼

概述:監控系統在一個系統中十分重要,它會將很多重要的資訊,諸如記憶體資訊,cpu資訊,硬碟資訊集合在一起顯示出來,當系統出現問題的時候我們能及時定位並修復錯誤。今天介紹的監控系統是一款輕量級的監控系統Cacti,並附有python編寫的cacti統計圖片採集指令

筆記36 mysql的一主多從模型原始主從複製基於GTID主從複製

概述: mysql的主從複製是十分經典的一個應用,但是主從之間總會有資料一致性(data consistency )的問題,一般情況從庫會落後主庫幾個小時,而且在傳統一主多從(mysql5.6之前)的模型中當master down掉後,我們不只是需要將一個sl

Python自動化筆記使用smtplib模組傳送電子郵件

執行環境:Python3.6,Windwos10 RS1,Pycharm 參考書籍—《Python自動化運維--技術與最佳實踐》劉天斯著 模組介紹 我們在監測系統狀態傳送警報資

Python自動化筆記使用filecmp模組實現檔案以及檔案目錄差異對比

執行環境:Python3.6,Windwos10 RS1,Pycharm 參考書籍—《Python自動化運維--技術與最佳實踐》劉天斯著 模組介紹 Python2.3以上的版本

筆記38 redisredis的主從切換主從自動切換

概述:redis是一個kv儲存,而且使用十分方便,配置也簡單。這次主要介紹下redis的主從複製,與主從自動切換。 框圖: 一.redis的簡單配置 redis的原始碼安裝十分方便,只需要執行 make && make ins

菜鳥筆記安裝與配置Apacheserver

str .cn apach tps 官網 壓縮 ron entos 本地 前幾天在在阿裏花了49.5買了一個月的主機。試著好用再續費吧。 地域:青島可用區:青島可用區ACPU:1核內存:512MB帶寬:1Mbps操作系統:CentOS 6.5 64位雲盾:是

自動化之saltstackstates介紹及使用

配置文件 如何 states master 根目錄 一、什麽是Salt States?Salt States是Salt模塊的擴展,主系統使用的狀態系統叫SLS系統,SLS代表Saltstack State,Salt是一些狀態文件,其中包含有關如何配置Salt子節點的信息,這些狀態被存放在一

Linux工程師必備命令

linux 運維 工程師 如何過濾出以下目錄的中的所有一級目錄[[email protected]/* */ ~]# lltotal 16-rw-r--r-- 1 root root 0 Jul 5 11:43 111-rw-r--r-- 1 root root 0 Ju

企業輕量級自動化工具—ansible常見的錯誤解決免秘鑰互信常用的模塊

企業 輕量級 自動化 企業輕量級自動化運維工具—ansible1.ansible簡介 ansible是“Ansible is Simple IT Automation”——簡單的自動化IT工具。它可以做到自動化部署APP;自動化管理配置項;自動化的持續交付;自動化的(AWS)雲服務管理。可實

CSS樣式表概述---筆記

相同 內容 因此 id選擇器 對象 內部 直接 css 註意事項 CSS是一種標記語言,因此不需要編譯,可以由瀏覽器直接執行。 樣式表分為內部樣式表與外部樣式表,由樣式規則組成,一個樣式的基本語法包括三部分:選擇器,屬性,屬性值。 選擇器:表示修飾對象,包括標簽選擇器,類選

計算機行過程---筆記

命令 風扇 行存儲 部件 電源 操作 dram 運維筆記 用戶輸入 1.加電––––打開電源開關,給主板和內部風扇供電。 2.啟動引導程序––––CPU開始執行存儲在ROM BIOS中的指令。 3.開機自檢––––計算機對系統的主要部件進行診斷測試。 4.加載操作系統–––

[筆記] Mysql單庫備份腳本

ash bin nbsp mysqldump zab date user tran 127.0.0.1 工作中用到的Mysql單庫備份Shell腳本,壓縮備份,並在Crontab中添加計劃任務,最多保存60天的備份 #!/bin/bash . /etc/prof