Linux用戶、組、權限管理

Linux用戶與組管理

Linux系統上,用戶通過內核拷貝程序到內存中,從此發起進程。進程以發起者的身份進行,進程對文件的訪問權限,取決于發起進程的用戶的權限。而有些后臺進程或服務類進程以非管理員身份運行,為此也需要創建多個普通用戶,此類用戶不需登錄。

系統中,用戶類別分為管理員和普通用戶(系統用戶和登錄用戶),組類別分為基本組和附加組。管理系統上的用戶與組主要通過以下四個文件來實現

  • /etc/passwd 用戶的基本信息

  • /etc/shadow 用戶密碼

  • /etc/group 組的基本信息

  • /etc/gshadow 組密碼

生成密碼采用單向加密算法,并借助salt完成。分別用數字1-6來標識md5, sha1, sha225, sha256, sha384, sha512六種加密算法。對用戶與組的管理一般涉及以下幾類工作:用戶/組的創建、修改、刪除、切換、設置密碼四個方面。

用戶管理

創建用戶 useradd

useradd [option] login-name
    -u 指定UID
    -g 指定基本的GID,但指定的組必須事先存在
    -G 指定用戶所屬的附加組,多個組之間用","隔開
    -c 指定注釋信息comment
    -d /path/to/home-dir 指定用戶家目錄;通過復制/etc/skel目錄并重命名實現;如果指定的及目錄已經存在,不從skel文件夾中復制文件
    -s 指定用戶默認shell,可用的所有可選shell存儲在/etc/shells文件中
    -r 創建系統用戶
    -m 強制創建用戶主目錄
    -M 不為用戶創建主目錄
    -f 用戶非活動期 -1 永不過期
注意:創建用戶時的諸多默認設定,配置文件為/etc/login.defs
        useradd -D 顯示創建用戶的配置信息
        useradd -D [options] 修改默認選項的值,修改的結果保存在/etc/default/useradd文件中

修改用戶屬性 usermod

usermod [option] login-name
    -u newUID 修改用戶的UID為此處指定的UID
    -g 修改用戶的GID,修改用戶所屬的基本組
    -G 修改用戶所述的附加組。注意:此處修改只能覆蓋原有附加組設置
    -a 與-G共同使用,為用戶添加附加組
    -c 修改用戶的注釋信息
    -d /path/to/new-home-dir 修改用戶的家目錄,用戶原有的文件不會被轉移至新目錄
    -m 只能與-d一同使用,將原有的家目錄轉移為新的家目錄;
    -l 修改用戶的登錄名
    -s 修改用戶的默認shell
    -L 鎖定用戶的賬號,禁止用戶登錄;即在用戶原來的面字符之前添加一個“!”
    -U 解鎖用戶的賬號

設置密碼信息 passwd

passwd [option] [login-name]    命令后不指明login-name時,用戶可為自己的賬號修改密碼信息
    passwd login-name 只有root能修改其他用戶的密碼信息
        -l/-u 鎖定/解鎖用戶賬戶
        -d 清除用戶密碼
        -e date 指明用戶賬戶過期明確的日期
        -n days 密碼最小使用期限
        -x days 密碼最長使用期限
        -i days 非活動期限
        -w days 警告期限
        --stdin 從標準輸入讀取密碼

切換用戶 su

登錄式切換:會通過重新讀取用戶的配置文件來重新初始化
    su - username
    su -l username  
非登錄式切換:
    su username
        注意:管理員可以無密碼切換至其他任何用戶
        su - username -c "COMMAND" 以某用戶的身份運行“COMMAND”

顯示用戶有效ID

id [option] [user]
    -u 僅顯示UID
    -g 僅顯示用戶基本組ID
    -G 僅顯示用戶所屬的所有組ID
    -n 顯示用戶的名稱而非ID

刪除用戶 userdel

userdel [option] login-name
    -r 刪除用戶時一并刪除其家目錄

組管理

創建新組 groupadd

groupadd [option] group-name
    -g GID 指定GID;默認為上一個GID+1
    -r 創建系統組

修改組屬性 groupmod

groupmod [option] group-name
    -g GID修改組ID
    -u new-group-name 修改組名

修改組密碼 gpasswd

gpasswd [option] group
    -a username 向組中添加用戶
    -d username 從組中移除用戶
    -r 刪除指定組的組密碼

組切換 newgrp

newgrp [-] [group-name]   如果命令后不跟group-name,則用戶切換回/etc/passwd文件中記錄的默認組
    - 會模擬用戶以新組重新登錄,以實現重新初始化工作環境

刪除組 groupdel

groupdel [option] group-name

權限管理

Linux文件中的權限有9位字符,通過ls命令的-l選項可以查看。

[root@localhost ~]# ls -l .
total 8
-rw-------. 1 root root 1624 Nov 13 08:29 anaconda-ks.cfg
-rw-------. 1 root root 1672 Nov 13 00:36 initial-setup-ks.cfg
  • 左三位是文件屬主的權限,中三位是文件屬組的權限,右三位是其他用戶對該文件的權限。

  • 每類用戶的權限共有8種組合“—, –x, -w-, r–, -wx, r-x, rw-, rwx”,r:可讀取文件的內容,w:可以修改文件的數據,x:可將文件運行為進程。8種組合表示為數字分別為:0,1,2,3,4,5,6,7。

Linux中進程對文件的訪問權限遵從以下模型:1 如果進程的屬主與文件的屬主一致,則應用屬主對該文件的權限;2 如果屬主不一致,如果進程的屬主屬于用戶的屬組,則應用該文件的屬組對該文件的權限;3 如果進程的屬主以上兩條都不滿足,則應用other權限。

Linux中權限的管理主要涉及兩個方面:設定文件的屬主、屬組;設定文件屬主、屬組以及其他用戶分別所具有的權限。

設置文件屬主、屬組以及其他用戶的權限 chmod

chmod [option] mode[,mode]... fiel...
    mode表示法:
        賦權表示法:直接操作一類用戶的所有權限位rwx;
            u/g/o/a=
        授權表示法:直接操作一類用戶的一些權限位r,w,x;
            u+, u-
            g+, g-
            o+, o-
            a+, a-
    --reference=/path/to/reference 以reference文件的權限作為參考標準
    -R 遞歸修改

修改文件的從屬關系 chown

chown [option]... [owener][:group] file
    --reference=/path/to/reference 以reference文件的屬主屬作為參考標準修改之
    -R 遞歸修改

文件的權限反向掩碼,遮罩碼 umask

新建文件:其權限為666-umask;新建目錄:其權限為777-umask。Linux中新建文件默認不能擁有執行權限,如果(666-umask)結果中有執行權限,則自動為其加一。

umask 查看當前命令
umask MASK 設置umask,只對當前shell進程有效

原創文章,作者:N24_fynl,如若轉載,請注明出處:http://www.www58058.com/62961

(0)
N24_fynlN24_fynl
上一篇 2016-12-07
下一篇 2016-12-07

相關推薦

  • sed對比grep之理解

    sed對比grep之理解 很多時候回車按下,沒有結果,或是報錯。 檢查發現都是低級錯誤,關鍵是習慣剛學完grep,有寫習慣沒改過來。 sed語法很重要。script語法寫對了,就成功了一大半,剩下的就是正則表達式的問題了。 sed與grep的區別是 grep是個行過濾器,篩選符合條件的行。也可以只顯示每行匹配到的文本(-o選項),不對文本進行編輯,只是顯示查…

    Linux干貨 2016-08-10
  • 建立yum源及yum命令的使用

    一、什么是YUM     YUM的全稱為 Yellowdog Update Modifier,其主要目的是為了解決RPM包安裝時的依賴關系的問題。YUM只是一個用于軟件安裝的前端工具,其主要的服務對象還是RPM軟件包。     YUM采用C/S架構,即客戶端與服務器的?!?/p>

    Linux干貨 2015-05-11
  • 第三周(3):課堂練習與作業

    課堂練習: 1、找出ifconfig命令結果中本機的所有IPv4地址 [root@centos6 ~]# ifconfig | tr -cs '[0-9].' '\n'|sort -ut. -k3n 127.0.0.1 10.1.…

    Linux干貨 2016-08-08
  • CentOS的軟件包的管理之rpm和yum

    在linux上,一個軟件包通常由二進制程序,庫文件,配置文件和幫助文件組成。 其中: 二進制程序一般都放在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin和/usr/local/sbin這幾個目錄下邊; 庫文件都放在/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib和/usr/…

    Linux干貨 2017-04-23
  • Linux 任務計劃、周期性任務執行

    Linux 任務計劃、周期性任務執行 概述:      什么是任務計劃呢?就像我們每個人日常生活中都會使用到的鬧鐘一樣,按時的去提醒該去做什么事情,以免忘記。同樣,我們在工作當中也要在每天在特定的時間內安排做一些事情,這就是任務計劃,本章將學習如何制定Linux系統的任務計劃,這里主要包括兩種工具:at和crontab…

    Linux干貨 2016-09-11
  • Linux幫助文件的使用、history變量的使用和FHS

    怎樣利用幫助文件來查詢想要了解的信息? 這里以通過查找幫助文件來修改登陸信息為例子, 登陸的時候,我們可以看到CentOS的的版本和內核信息, 當我們查看該相關文件的時候,會發現,里面的文檔和顯示的不一致,由此可以了解到,該文檔是調用某些參數來實現顯示CentOS的版本和內核信息。 這個時候,我們該怎樣去查看issue文檔的相關信息? 首先我們可以查看一下通…

    Linux干貨 2016-08-04

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-14 15:02

    基礎命令總結的得非常好,希望你能牢記這些基礎知識。加油!

欧美性久久久久