Linux之用戶管理--初級上

来源:http://www.cnblogs.com/0zcl/archive/2017/05/31/6862727.html
-Advertisement-
Play Games

管理用戶命令彙總 sudo是通過另一個用戶來執行命令,su 是用來切換用戶,然後通過切換到的用戶來完成相應的任務,但sudo能在命令後面直接接命令執行, 比如sudo ls /root,不需要root密碼就可以執行只有root才能執行的相應命令或具備的目錄許可權;這個許可權需要通過visudo命令或者直 ...


 

管理用戶命令彙總

命令註釋說明(特殊顏色的必須掌握)
useradd增 同adduser命令,執行此命令可在系統中添加用戶。(更改4個用戶文件)
userdel刪 執行此命令可刪除用戶及相關用戶的配置或文件(更改4個用戶文件)
passwd 執行此命令可為用戶設置或修改密碼。更改/etc/shadow文件
chage 修改用戶密碼屬性。管理/etc/shadow文件
usermod改 修改用戶信息的命令,可以通過usermod來修改登錄名,用戶的家目錄等等
id查 查看用戶的UID,GID及所歸屬的用戶組
su 用戶角色切換工具。su -
sudo

sudo是通過另一個用戶來執行命令,su 是用來切換用戶,然後通過切換到的用戶來完成相應的任務,但sudo能在命令後面直接接命令執行,

比如sudo ls /root,不需要root密碼就可以執行只有root才能執行的相應命令或具備的目錄許可權;這個許可權需要通過visudo命令或者直接編輯/etc/sudoers來實現

visudo visudo配置sudo許可權的編輯命令;也可以不用這個命令,直接用vi來編輯/etc/sudoers實現。但推薦用visudo來操作(會自動檢查語法)

 

管理用戶組命令彙總

命令註釋說明(特殊顏色標記需要掌握)
groupadd 添加用戶組
groupdel 刪除用戶組

 

/etc/skel目錄是用來存放新用戶環境變數文件的目錄,當我們添加新用戶時,這個目錄下的所有文件會自動被覆制到新添加的用戶的家目錄下:預設情況下,/etc/skel目錄下的所有文件都是隱藏文件以.點開頭的文件);通過修改、添加、刪除/etc/skel目錄下的文件,我們可為新創建的用戶提供統一的,標準的,初始化用戶環境。

[root@chengliang ~]# cd /etc/skel
[root@chengliang skel]# ls
readme
[root@chengliang skel]# ls -al
total 20
drwxr-xr-x.  2 root root 4096 May 12 22:14 .
drwxr-xr-x. 79 root root 4096 May 16 17:07 ..
-rw-r--r--.  1 root root   18 May 11  2016 .bash_logout
-rw-r--r--.  1 root root  176 May 11  2016 .bash_profile
-rw-r--r--.  1 root root  124 May 11  2016 .bashrc
-rw-r--r--.  1 root root    0 May 12 22:14 readme
[root@chengliang skel]# 

 

命令說明: 在/etc/skel/目錄下創建一個文件readme,然後我們創建一個新用戶,發現在用戶的家目錄里也預設有一個readme。因此,得出結論,/etc/skel/目錄下的所有文件都會預設出現在新建用戶的家目錄里。

[root@chengliang ~]# su - cheng
[cheng@chengliang ~]$ ls -al
total 24
drwx------. 2 cheng cheng 4096 May 13 01:23 .
drwxr-xr-x. 7 root  root  4096 May 12 22:15 ..
-rw-------. 1 cheng cheng  125 May 13 01:23 .bash_history
-rw-r--r--. 1 cheng cheng   18 May 11  2016 .bash_logout
-rw-r--r--. 1 cheng cheng  176 May 11  2016 .bash_profile
-rw-r--r--. 1 cheng cheng  124 May 11  2016 .bashrc
-rw-r--r--. 1 cheng cheng    0 May 12 22:14 readme
[cheng@chengliang ~]$ 

 

企業面試題:請問如下登錄故障的原理及解決辦法?

-bash-4.1$
-bash-4.1$

問題示例: 命令說明:普通用戶強制刪除了家目錄里的變數文件就會出現這種問題。

[teacher@chengliang ~]$ ls -al
total 20
drwx------. 2 teacher teacher 4096 May 30 23:32 .
drwxr-xr-x. 7 root    root    4096 May 12 22:15 ..
-rw-------. 1 teacher teacher  149 May 30 23:32 .bash_history
-rw-r--r--. 1 teacher teacher  176 May 11  2016 .bash_profile
-rw-r--r--. 1 teacher teacher  124 May 11  2016 .bashrc
[teacher@chengliang ~]$ rm ./.bash*
[teacher@chengliang ~]$ ls -al
total 8
drwx------. 2 teacher teacher 4096 May 30 23:34 .
drwxr-xr-x. 7 root    root    4096 May 12 22:15 ..
[teacher@chengliang ~]$ exit
logout
[root@chengliang ~]# su - teacher
-bash-4.1$ 

解決方法:我們去把/etc/skel/目錄下的變數文件複製回來就好了

[root@chengliang ~]# su - teacher
-bash-4.1$ 
-bash-4.1$ cp /etc/skel/.bash* ~
-bash-4.1$ exit
logout
[root@chengliang ~]# su - teacher
[teacher@chengliang ~]$ ls -al
total 24
drwx------. 2 teacher teacher 4096 May 30 23:36 .
drwxr-xr-x. 7 root    root    4096 May 12 22:15 ..
-rw-------. 1 teacher teacher   80 May 30 23:36 .bash_history
-rw-r--r--. 1 teacher teacher   18 May 30 23:36 .bash_logout
-rw-r--r--. 1 teacher teacher  176 May 30 23:36 .bash_profile
-rw-r--r--. 1 teacher teacher  124 May 30 23:36 .bashrc
[teacher@chengliang ~]$ 

知識擴展*和.*的問題

[root@chengliang etc]# cp /etc/skel/* /tmp/
[root@chengliang etc]# cd /tmp/
[root@chengliang tmp]# ls
etc  mysql.sock  readme
[root@chengliang tmp]# ls -al
total 16
drwxrwxrwt.  4 root  root  4096 May 30 23:48 .
dr-xr-xr-x. 24 root  root  4096 May 12 15:28 ..
drwxrwxrwt.  2 root  root  4096 Nov 12  2016 .ICE-unix
drwxr-xr-x.  8 root  root  4096 Nov 20  2016 etc
srwxrwxrwx.  1 mysql mysql    0 May 10 21:08 mysql.sock
-rw-r--r--.  1 root  root     0 May 30 23:48 readme
[root@chengliang tmp]#

*不複製隱藏文件,所以/etc/skel/目錄下的隱藏文件不會複製到/tmp/目錄下

那麼在運行cp /etc/skel/.*之前,我們先看看.*里都有什麼東西?

[root@chensiqi1 ~]# ls /etc/skel/.*
/etc/skel/.bash_logout  /etc/skel/.bash_profile  /etc/skel/.bashrc

/etc/skel/.:
readme

/etc/skel/..:
ConsoleKit               inputrc                       quotatab
DIR_COLORS               iproute2                      rc
DIR_COLORS.256color      issue                         rc.d
DIR_COLORS.lightbgcolor  issue.bak                     rc.local
NetworkManager           issue.net                     rc.sysinit
X11                      issue.net.bak                 rc0.d
abrt                     kdump-adv-conf                rc1.d
acpi                     kdump.conf                    rc2.d
adjtime                  krb5.conf                     rc3.d
aliases                  latrace.conf                  rc4.d
aliases.db               latrace.d                     rc5.d
alsa                     ld.so.cache                   rc6.d
東西太多以下省略....

.*連etc下的東西都複製出來了,這是為什麼呢?別忘了,目錄下都還有些什麼東西,還有.和..

.代表當前目錄,..代表上級目錄。因此.*就把上級目錄的所有文件也複製了。所以我們在複製隱藏文件的時候不能用.*來代表所有

 

用戶管理命令詳解

添加用戶命令useradd

  • 添加用戶的命令有useradd和adduser,這兩個命令所能達到的效果是一樣的。當然除了useradd和adduser命令以外,我們還能通過修改用戶配置文件/etc/passwd和/etc/group及手動創建文件的辦法來直接添加用戶,不過這裡並不推薦,這裡建議大家統一使用useradd命令,本文也僅會針對useradd命令進行舉例講解。
  • 當使用useradd命令不加參數選項,後面直接跟所添加用戶名時,系統首先會讀取配置文件/etc/login.defs和/etc/default/useradd中所定義的參數或規則,根據設置的規則添加用戶,同時會向/etc/passwd和/etc/group文件內添加新建用戶和用戶組記錄。
  • 當然/etc/passwd和/etc/group的加密資訊文件/etc/shadows和/etc/gshadow也會同步生成記錄,同時系統還會根據/etc/default/useradd文件中所配置的信息建立用戶的家目錄,並複製/etc/skel中的所有文件(包括隱藏的環境配置文件)到新用戶的家目錄中。

useradd語法:

[root@chensiqi ~]# man useradd #下麵的內容源於此命令幫助的結果,對於部分地方做了修改
名稱:
    useradd - 賬號建立或更新新用戶資訊的工具
語法:
    useradd [-c comment] [-d home_dir]
            [-e expire_date] [-f inactive_time]
            [-g initial_group] [-G group[,....]]
            [-m [-k skeleton_dir] | -M] [-s shell]
            [-u uid[-o][-n][-r] login]
    
    useradd -D  [-g default_group] [-b default_home]
                [-f default_inactive] [-e default_expire_date]
                [-s default_shell]
                
描述:
    新賬號建立
    當不加-D 參數時,useradd指令使用命令列來指定新賬號的設定值和使用系統上的預設值(指前文提到的/etc/login.defs和/etc/default/useradd等配置文件)。新用戶賬號將產生一些系統檔案,如用戶目錄的建立,拷貝起始檔案等,這些均可以利用命令列選項指定。此版本為Red Hat Linux 提供,可幫每個新加入的用戶建立和用戶同名的group,要達到這個目的,不能添加-n選項。

為了方便查看,我們用表格的方式把useradd可使用的參數選項展現給大家如下所示:
|useradd 參數選項|註釋說明(特殊顏色的需要掌握)|
|--|--|
|-c comment|新賬號password檔的說明欄|
|-d home_dir|新賬號每次登入時所使用的home_dir.預設值為default_home內login名稱,並當成登入時目錄名稱|
|-e expire_date|賬號終止日期。日期的指定格式為MM/DD/YY或者YYYY-MM-DD|
|-f inactive_day|賬號過期幾日後永久停權。當值為0時賬號則立刻被停權。而當值為-1時則關閉此功能,預設值-1|
|-g initial_group|group 名稱以數字來作為用戶登入起始用戶組(group)。用戶組名須為系統現有存在的名稱。用戶組數字也須為現有存在的用戶組,預設的用戶組數字為1.|
|-G group,[...]|定義此用戶為多個不同groups的成員,每個用戶組使用“,”逗號分隔。用戶組名同-g選項的限制。預設值為用戶的起始用戶組。|
|-m|用戶目錄如不存在則自動建立。|
|-M|不建立用戶家目錄,優先於/etc/login.defs文件的設定。一般創虛擬用戶時不建立家目錄,部署服務時需要創建虛擬用戶。|
|-n|預設情況用戶的用戶組與用戶的名稱會相同。如果命令加了-n參數,就不會生成和用戶同名的用戶組了。|
|-r| 此參數是用來建立系統賬號。|
|-s shell|用戶登入後使用的shell名稱。預設值不填寫,這樣系統會幫你指定預設的登入shell(根據/etc/default/useradd預設的值)。cat /etc/shells系統支持的shell|
|-u uid|用戶的ID值。這個值必須是唯一的,除非用-o選項。數字不可為負值|

 

示例1:useradd -c,-u,-G,-s,-d,-m多個參數組合例子,自定義用戶家目錄。

示例2:新建用戶預設的賬號終止日期

示例3:添加用戶時的預設shell類型/bin/bash改為/bin/sh

[root@chensiqi1 ~]# cat /etc/shells #查看當前系統支持的shell種類 
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[root@chensiqi1 ~]# grep SHELL /etc/default/useradd #查看當前預設的shell配置
SHELL=/bin/bash
[root@chensiqi1 ~]# useradd -D -s /bin/sh  #修改為/bin/sh
[root@chensiqi1 ~]# grep SHELL /etc/default/useradd #查看修改結果
SHELL=/bin/sh #修改成功
View Code

特別提示,這裡僅更改了配置文件的預設值,僅對之後建立的新用戶生效,和老用戶無關

註意了,這裡我更改shell類型之後,useradd新增用戶時發現登陸,會出現如下登陸故障!

-bash-4.1$
-bash-4.1$

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、 創建用戶: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 說明:username - 你將創建的用戶名, host - 指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost, 如果想讓該用戶可以從任意遠程主 ...
  • 在MySQL 中,主要有四種類型的索引,分別為:B-Tree 索引,Hash 索引,Fulltext 索引和RTree索引 1、B-Tree 索引 B-Tree 索引是MySQL 資料庫中使用最為頻繁的索引類型,除了Archive 存儲引擎之外的其他所有的存儲引擎都支持B-Tree 索引。不僅僅在M ...
  • 2017年5月31日,天氣陰。近期事情頗多,心情比較沉重。 端午剛過,早上上課,很多同學還處在端午的疲憊狀態中沒有回過神來,當然我也不例外。端午奔波三天,加上畢設的事情,可以說身心俱疲。狀態不佳,整理了一下以前的筆記,發現很多知識點記憶不清了,甚至有些幾乎沒印象了。下麵把自己對DDL、DML和DCL ...
  • Redis 小白指南(二)- 基礎命令和五大類型:字元串、散列、列表、集合和有序集合 引言 開篇已經介紹了 Redis 安裝、GUI 和 C# 驅動等基本知識,這一篇主要是梳理一下 Redis 的 5 種類型的信息與指令。 目錄 字元串類型 散列類型 列表類型 集合類型 有序集合類型 其它命令 字元 ...
  • 【事務】一組SQL語句操作單元,組內所有SQL語句,完成一個業務。 若整組成功,意味著組內的全部操作都成功; 反之,若其中任何一條語句失敗,意味著整個操作都失敗。 操作失敗,意味著整個過程都是沒有意義的,應使資料庫回到操作前的初始狀態。 【point】1. 失敗後,能回到開始位置; 2. 成功之前, ...
  • 上一篇,我們講述了HBase的協處理器。    下麵我們開始介紹Impala的介紹及安裝。 ...
  • Redis 小白指南(一)- 簡介、安裝、GUI 和 C# 驅動介紹 目錄 簡介 安裝 入門指令 GUI 工具 C# 驅動介紹 簡介 ANSI C 編寫,開源,基於記憶體,可持久化,一個鍵值對的資料庫,用法簡單。 支持的類型:字元串、散列、列表、集合和有序集合。 因為 Redis 預設將所有數據都存儲 ...
  • 添加用戶組命令groupadd 提示:groupadd命令的使用非常簡單,但在生產環境中使用的不多,因此,會簡單應用即可。 與groupadd命令有關的文件有:/etc/group :用戶組相關文件/etc/gshadow :用戶組加密相關文件 groupadd命令語法 [root@chensiqi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...