Linux系統之用戶和組

Linux系統之用戶和組

1、什么是用戶

用戶:資源獲取標識符,資源分配,安全權限模型的核心要素之一

2、沒有用戶,操作系統可否正常執行?

答案是肯定的

在Linux系統上,用戶管理是基于用戶名和密碼的方式進行資源的分配,

Username/UID分為以下類別:

    管理員:root, 0
    普通用戶:1-65535
        系統用戶:1-499(CENTOS6), 1-999
            對守護進程獲取資源進行權限分配
        登錄用戶:500(CENTOS6)+, 1000+
            交互式登錄

Linux組:Groupname/GID

    管理員組:root, 0
    普通組:
        系統組:1-499, 1-999
        普通組:500+, 1000+

Linux組類別

    用戶的主要組(主組):
        用戶必須屬于一個且只有一個主組
        組名同用戶名,且僅包含一個用戶:私有組
    用戶的附加組(輔助組):
        一個用戶可以屬于零個或多個輔助組

用戶在登錄時要進行認證,認證成功后要進行資源的分配既授權,還要對資源的使用進行審計,就是我們所熟悉的3A

Authentication 認證
Authorization 授權
Accounting|Audition 審計

進程的安全上下文

進程對文件的訪問權限應用模型
    進程的屬主(發起者)與文件的屬主是否相同;如果相同;則應用屬主權限;
    否則,則檢查進程的屬組(發起者)是否屬于文件的屬組;如果是,則應用屬組權限;
    否則,就只能應用other的權限;

下面來介紹下Linux用戶和組的主要配置文件

1、/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)

Linux系統之用戶和組

從圖片上我們可以看到該文件是以":"為分隔符,分為的7個字段。如何知道每個字段的意思呢?

嘗試使用man幫助文檔:

首先確定該幫助文檔在man的那個分段中

[root@centos7 ~]# whatis passwd
passwd (5)   - password file
passwd (1)   - update user's authentication tokens
sslpasswd (1ssl) - compute password hashes

由以上信息可知我們能夠使用如下命令查看該文件7個的字段的意思:

[root@centos7 ~]# man 5 passwd

Linux系統之用戶和組

man文檔已經解釋的很詳細了,這里我在簡單說明一下:

用戶名:密碼占位符:UID:GID:用戶備注信息(多個以,隔開):家目錄:默認shell

2、/etc/shadow

首先還是用whatis命令查看簡要命令幫助

[root@centos7 ~]# whatis shadow
shadow (3)           - encrypted password file routines
shadow (5)           - shadowed password file

查看man文檔

[root@centos7 ~]# man 5 shadow

我可以看到該配置文件的格式和/etc/passwd格式一樣,都是用":"分割開的不同字段

 login name:登錄名
 encrypted password:加密密碼
 date of last password change:最近一次的密碼修改時間(距離1970-01-01的時間)
 minimum password age:密碼最短使用期限
 maximum password age:密碼最長使用期限
 password warning period:警告區間
 password inactivity period:非活動區間
 account expiration date:賬號過期期限
 reserved field:預留段

在這里我們簡單介紹下加密解密機制

加密方法: 
    對稱加密:如果加密、解密使用相同的密碼稱之為對稱加密 DES,3DES,AES 
    非對稱加密:DSA,RSA 
    單向加密:雪崩效應,定長輸出,不可逆

這里我們著重開下/etc/shadow的第二個字段

格式如下:

$6$abcesd$fkdlagjdkalghio3qu4389qjtrkiejgr 
$6$xyzm./$878956ukijotrjiytoeutyvimyeuiore

$為分隔符

6表示加密算法 查看系統上支持的加密算法可以使用如下方法:

[root@centos7 ~]# sha   //輸入sha,按兩次TAB自動補全    
sha1sum    sha224sum  sha256sum  sha384sum  sha512sum 
以上分別對應2-6  即6為sha512算法
其中1對應的為md5算法

使用如下命令可以改變默認的加密算法:

[root@centos7 ~]# authconfig --passalgo=sha512(可以更改) --update

abce或xyzm:表示salt

最后一部分表示:加密后的密碼

即該字段的整體意義為:$加密算法$8位鹽$亂碼

一個小的知識點

密碼的復雜性策略

使用數字、大寫字母、小寫字母及特殊字符中至少3種

足夠長

使用隨機密碼(沒有規律的、非腦殘的密碼)

定期更換,不要使用最近曾經使用過的面

3、/etc/group

[root@centos7 ~]# whatis group
group (5)            - user group file

[root@centos7 ~]# man 5 group

Linux系統之用戶和組

4、/etc/gshadow

[root@centos7 ~]# man gshadow

group name:It must be a valid group name, which exist on the system.
encrypted password
administrators
       It must be a comma-separated list of user names.
       Administrators can change the password or the members of the group.
       Administrators also have the same permissions as the members (see below).
 members
       It must be a comma-separated list of user names.
       Members can access the group without being prompted for a password.
       You should use the same list of users as in /etc/group.

對于Linux下的用戶和組所涉及到的基本文件已經介紹完了,下面我們來介紹常用命令:

vipw和vigr:相當于用vim打開上述的四個文件進行編輯

[root@centos7 ~]# man vipw
[root@centos7 ~]# vipw /etc/passwd
[root@centos7 ~]# vipw -s /etc/shadow
[root@centos7 ~]# man vigr
[root@centos7 ~]# vigr /etc/group
[root@centos7 ~]# vigr -s /etc/gshadow

pwck和grpck:檢查上述文件的正確性

[root@centos7 ~]# pwck
user 'ftp': directory '/var/ftp' does not exist
user 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not exist
user 'saslauth': directory '/run/saslauthd' does not exist
user 'pulse': directory '/var/run/pulse' does not exist
user 'gnome-initial-setup': directory '/run/gnome-initial-setup/' does not exist
pwck: no changes
[root@centos7 ~]# grpck

useradd[options] LOGIN
    -u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs
    -o 配合-u 選項,不檢查UID的唯一性
    -g GID:指明用戶所屬基本組,可為組名,也可以GID
    -c "COMMENT":用戶的注釋信息
    -d HOME_DIR:以指定的路徑(不存在)為家目錄
    -s SHELL: 指明用戶的默認shell程序
     可用列表在/etc/shells文件中
    -G GROUP1[,GROUP2,...]:為用戶指明附加組,組必須事先存在
    -N 不創建私用組做主組,使用users組做主組
    -r: 創建系統用戶CentOS 6: ID<500,CentOS 7: ID<1000

默認值設定:/etc/default/useradd文件中

    顯示或更改默認設置:
    useradd-D
    useradd–D -s SHELL
[root@centos7 ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@centos7 ~]# man useradd
-b, --base-dir BASE_DIR
-e, --expiredate EXPIRE_DATE
-f, --inactive INACTIVE
-g, --gid GROUP
-s, --shell SHELL

usermod[OPTION] login

-u UID: 新UID
-g GID: 新基本組
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,
                 則要同時使用- a選項,表示append;
-s SHELL:新的默認SHELL;
-c 'COMMENT':新的注釋信息;
-d HOME: 新家目錄不會自動創建,原家目錄中的文件不會同時移動至新的家目錄;
       若要創建新家目錄并移動原家數據,同時使用-m選項
-l login_name: 新的名字;
-L: lock指定用戶,在/etc/shadow 密碼欄的增加!
-U: unlock指定用戶,將/etc/shadow 密碼欄的! 拿掉
-e YYYY-MM-DD: 指明用戶賬號過期日期;
-f INACTIVE: 設定非活動期限;

userdel[OPTION]... login
   -r: 刪除用戶家目錄;

passwd[OPTIONS] UserName: 修改指定用戶的密碼,僅root用戶權限
passwd: 修改自己的密碼;
常用選項:
-l:鎖定指定用戶
-u:解鎖指定用戶
-e:強制用戶下次登錄修改密碼
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天開始警告
-i inactivedays:非活動期限;
--stdin:從標準輸入接收用戶密碼;
echo "PASSWORD" | passwd--stdinUSERNAME

chage[OPTION]... LOGIN
-d LAST_DAY
-E, --expiredateEXPIRE_DATE
-I, --inactive INACTIVE
-m, --mindaysMIN_DAYS
-M, --maxdaysMAX_DAYS
-W, --warndaysWARN_DAYS
–l,顯示密碼策略
下一次登錄強制重設密碼
    chage -d 0 tom
    chage -m 0 –M 42 –W 14 –I 7 tom
    chage -E 2016-09-10 tom

groupadd[OPTION]... group_name
-g GID: 指明GID號;[GID_MIN, GID_MAX]
-r: 創建系統組;
    CentOS 6: ID<500
    CentOS 7: ID<1000

組屬性修改:groupmod
groupmod[OPTION]... group
-n group_name: 新名字
-g GID: 新的GID;


組刪除:groupdel

    groupdelGROUP


組密碼:gpasswd
gpasswd[OPTION] GROUP
-a user: 將user添加至指定組中;
-d user: 從指定組中移除用戶user
-A user1,user2,...: 設置有管理權限的用戶列表


newgrp命令:臨時切換基本組;
   如果用戶本不屬于此組,則需要組密碼
    臨時切換指定的組為基本組

groupmems[options] [action]
options:
-g, --group groupname更改為指定組(只有root)
Actions:
-a, --add username 指定用戶加入組
-d, --delete username 從組中刪除用戶
-p, --purge 從組中清除所有成員
-l, --list 顯示組成員列表

groups [OPTION].[USERNAME]… 查看用戶所屬組列表

[root@centos7 ~]# groups user1
user1 : user1 root new_mygrp
        主組  附加組

批量添加用戶及其密碼

user.txt
user1:x:10001:10001::/testdir/user1:/bin/csh
user2:x:10002:10002::/testdir/user2:/bin/tcsh
user3:x:10003:10003::/testdir/user3:/bin/bash

[root@centos7 ~]# newusers user.txt
[root@centos7 ~]# tail -3 /etc/passwd
user1:x:10001:10001::/testdir/user1:/bin/csh
user2:x:10002:10002::/testdir/user2:/bin/tcsh
user3:x:10003:10003::/testdir/user3:/bin/bash

passwd.txt
user1:123456
user2:redhat
user3:centos

[root@centos7 ~]# cat passwd.txt | chpasswd
[root@centos7 ~]# tail -3 /etc/shadow
user1:$6$bAKS54WgOC56WH$4vgt7VIkIqTzsZyDKt1s55oBGY04XRjuF8MHwsslt.9WuRzIJE/eLIPQhvwEKxPYQ84x6lF3gjE7HWQlpbm8i.:17017:0:99999:7:::
user2:$6$N27Zc/GayA$jYZqMIo58RnwnIP5ytiwyHONn1VxEGRZZNEYzu7x392zgnZa2aTpH9c2oVcr/W0Uo7X8oJU/DRlaQI63SLYTq1:17017:0:99999:7:::
user3:$6$UUFRnwBEJe$0yyxVFkxSxhRk40TDT/j6NfxwP7a/jPQnEhku/8Nqns42II6fNouiEi/GheQwTVJcDBWaYb4qePWy7qquhPVV.:17017:0:99999:7:::

注:新建用戶的相關文件
/etc/default/useradd
/etc/skel/*
/etc/login.defs

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

(0)
sixijiesixijie
上一篇 2016-08-04
下一篇 2016-08-04

相關推薦

  • httpd功能配置之路徑別名

       httpd的路徑別名功能可以使用資源的訪問不再依賴于站點的根目錄,可以指定任意目錄來設置資源的訪問路徑。    默認站點的根目錄是/var/www/html,如下圖所示。    下面來使用路徑的別名來訪問資源:    1、打開httpd服務的配置文件  &nbsp…

    Linux干貨 2016-03-11
  • N22-第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;    (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@localhost ~]# fd…

    Linux干貨 2016-10-07
  • 第一周作業:計算機的組成及其功能

    第一周作業 主要是對應了馬哥視頻前兩天共八節課的內容,作業一共有六道題 01.描述計算機的組成及其功能 02.按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別 03.描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述 04.說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pw…

    2017-09-12
  • linux磁盤管理補充之掛載選項及常用工具

    一、文件掛載的配置文件         配置文件:/etc/fstab 要掛載的設備的UUID或卷標或/dev/sd[a-z]    掛載點        &n…

    Linux干貨 2016-08-30
  • Linux文件類型以及顏色標識

    1、Linux文件類型介紹   Linux系統不同于window系統,兩者文件類型也有很大的差異。Linux文件類型和Linux文件的文件名所代表的意義是兩個不同的概念。我們通過一般應用程序而創建的比如file.txt、file.tar.gz,這些文件雖然要用不同的程序來打開,但放在Linux文件類型中衡量的話,大多是常規文件(也被稱為普…

    Linux干貨 2016-10-17
  • linux發展史-

    前言: 人類文明的進步伴隨著戰爭,戰爭留下的產物也是非常偉大的。 最初用于戰爭的通電鋼鐵,如今以進入人們生活。 而它的附帶產物如今也是變得妙不可言。 本文簡要說明操作系統的發展過程,以及該大樹下一些分支。         簡 述   Linux是誕生與UNIX下的一款操系統,有著安全穩定的文件系統,…

    Linux干貨 2016-10-19
欧美性久久久久