馬哥-51CTO-Linux培訓-4-用戶管理和權限管理

練習1:創建用戶Oracle,所屬附加組database和sql,ID號爲3000, 家目錄爲/home/database

     groupadd database

     groupadd sql    (先新建兩個用戶組,問:groupadd是否可一次新建多個組?)

     useradd  oracle -u 3000 -d /home/database -G database,sql

     id oracle        (查看用戶oracle id以及組相關信息)

        uid=3000(oracle) gid=3000(oracle) groups=3000(oracle),1000(database),1001(sql)

     cat /etc/passwd |grep oracle (從passwd文件中篩選出oracle相關信息)

        oracle:x:3000:3000::/home/database:/bin/bash

     cat /etc/shadow |grep oracle (查看oracle用戶賬戶密碼相關信息)                       oracle:$6$bnk5PioM$8h04509U0yhpq5bkicoJYWpE1yEJlIuIhD5jg3vu.orPs2ICFqTLl.chuKFASekW4UkEilZfLrc2C57YPcCnf1:16673:0:99999:7:::


用戶管理和權限管理:

AAA認證機制(驗證、授權、計費Authencattion、Authorzation、Accounting)

      A:認證機制

         identity(username/password)

          token

      A:permission

         mode

         ownership


Linux用戶:UserName/password

UID:0-65535

管理員:0

普通用戶:1-60000

系統用戶:

CentOS6: 1-499

CentOS7:1-999

登錄用戶:

CentOS6: 500+

CentOS7: 1000+

Linux組:GroupName/GID

管理員組:0

普通組:

1-499, 1-999

500+, 1000+


用戶的基本組:

用戶的私有組:

用戶的附加組:

總結:任何一個組都可以添加多個用戶的,一個用戶可以同時隸屬於多個組,除自己基本組之外的都叫做附加組,默認創建一個用戶,會自動創建一個同名的組,這個同名的組就是這個用戶的基本組,且是私有組 ,私有組包含的組成員 有且只有一個!


Linux用戶和組的相關的配置文件:

/etc/passwd:用戶名、UID、基本組等信息

/etc/group:組名、GID、組內包含的用戶;

/etc/shadow:用戶密碼及相關屬性;

/etc/gshadow:組的密碼及相關屬性;


/etc/passwd:

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

登錄名:x:UID:GID:comment:主目錄:用戶默認shell


/etc/shadow:

login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field


$6$YNzGOv5VyXxmDU2n$PxariU7Ag0mBlzBoNLWUjubn9OBtoLJauXIfoRqQ1FtZt058FrQKJO6QVJTUXkP4LUKPsiH7ejWo8bg6c4RrC1

6:加密算法



單向加密:

提取數據指紋;


md5, sha1, sha224, sha256, sha384, sha512


雪崩效應:

定長輸出:


相對於Unix元年;

1970年1月1號;

/etc/group

group_name:password:GID:user_list


密碼的複雜性策略:

1、使用數字、小寫字母、大寫字母、特殊字符四類中至少三類;

2、足夠長;

3、使用隨機密碼;

4、定期更換;

  

(注:以下部分借鑑 JY1506403-45+fz8770(上海:方旨)同學博客,並徵得對方同意)

 

用戶和組管理的相關命令: 
    useradd、usermod、passwd、userdel 
    groupadd、groupmod、gpasswd、groupdel 
    chage, chsh, chfn 
    id, w, who, whoami 
    su 





 

useradd:創建用戶


            useradd [options] LOGIN 
            useradd -D [options] 
                -r: 創建系統用戶 
                -u UID: 指定UID; 
                -g GID: 指定用戶所屬基本組,此組必須事先存在 
                -c 'COMMENT': 
                -d /PATH/TO/SOMEWHERE:指定用戶的主目錄路徑;此位置不能事先存在,否則,其用戶相關配置文件將被複制;/etc/skel 
                -s SHELL:設定用戶的默認shell; 
                    cat /etc/shells 
                -G GID,...:指定所屬的附加組; 
                -M: 不給用戶創建家目錄;










 

示例:

[root@Blackghost ~] useradd tank                            #添加用戶
[root@Blackghost ~] useradd -r zhangy                       #添加系統用戶
[root@Blackghost ~] useradd -d /home/zhangying zhangying    #添加用戶,並且指定,home目錄
[root@Blackghost ~] useradd -g mytest -d /home/hao hao      #添加用戶,指定組,並且設定home目錄(此home目錄不能事先存在)
[root@Blackghost ~] useradd -e 04/05/13 fxxk                #添加用戶,並給用戶設置有效期

 

練習:創建用戶Oracle,所屬附加組database和sql,ID號爲400, 家目錄爲/home/database;

 

[root@Blackghost ~]  useradd -u 400 -G database,sql -d /home/database oracle

 

groupadd:創建組


    groupadd [OPTIONS] GROUPNAME 
        -g GID: 指明組ID; 
        -r: 創建系統組;


 

示例:

添加一個用戶組[root@Blackghost ~] groupadd mytest添加一個用戶組,並指定GID[root@Blackghost ~] groupadd -g 444 test

 

id:查看用戶相關的id信息


    id [OPTION]... [USER] 
        -u: UID 
        -g: GID 
        -G: Groups 
        -n: NAME




示例:

[root@localhost ~]# id                  #顯示當前用戶的信息
uid=0(root) gid=0(root) 組=0(root)

[root@localhost ~]# id zhangy           #顯示zhangy的信息
uid=999(zhangy) gid=999(zhangy) 組=999(zhangy)

 

su:switch user, 切換用戶或以其它用戶的身份執行命令


    切換方式: 
        su USERNAME: 非完全切換;非登錄式切換 
        su - USERNAME或su -l USERNAME: 完全切換;登錄式切換


    僅以指定用戶的身份執行指定的命令: 
        su - USERNAME -c 'COMMAND'

 

示例:

[root@Blackghost ~] su zhangying              #切換用戶,原用戶環境變量
[root@Blackghost ~] su - zhangying		      #切換用戶,新用戶環境變量
[zhangying@Blackghost ~] su -c ls root        #切換用戶執行命令,執行後返回原用戶

usermod:用戶屬性修改


            usermod [OPTION]... LOGIN 
                -u UID 
                -g GID 
                -G GID[,GID,...]:修改用戶所屬的附加組;同時使用-a選項爲追加附加組; 
                -s SHELL 
                -c 'COMMENT' 
                -d HOME: 修改用戶的家目錄爲新位置時,用戶原來的文件是不會被移動至新家;-m選項可實現同時將其遷至新的家目錄; 
                -l LOGIN:







                -L:lock user 
                -U: unlock user

 

示例:

[root@Blackghost ~] usermod -d /home/bak/ zhangying    #更改用戶home目錄
[root@Blackghost ~] usermod -e 05/06/13 zhangying      #給用戶加個有效期
 
1、將 newuser2 添加到組 staff 中# usermod -G staff newuser22、修改 newuser 的用戶名爲 newuser1# usermod -l newuser1 newuser3、鎖定賬號 newuser1# usermod -L newuser14、解除對 newuser1 的鎖定# usermod -U newuser1

passwd:給用戶添加密碼


            passwd [OPTION] [UserName]

                -l: lock user 
                -u: unlock user

                -n mindays: 最短使用期限; 
                -x maxdays:默認爲99999天; 
                -w warndays: 
                -i inactivedays:


                --stdin:從標準輸出接收用戶密碼;

                    echo 'centos' | passwd --stdin centos

 

示例:

[root@Blackghost ~] passwd zhangying     #給zhangying修改密碼
 

userdel:刪除用戶

     
            userdel [-r] USERNAME 
                -r:刪除用戶的同時刪除其家目錄;

        groupmod: 組屬性修改 
            groupmod [OPTION] GROUPNAME 
                -n GROUP_NAME 
                -g GID


 

示例:

[root@Blackghost ~] userdel fxxk       #刪除用戶
[root@Blackghost ~] userdel -r hao     #刪除用戶,並且刪除用戶home目錄

 

gpasswd:設定組密碼

用法:gpasswd[-a user][-d user][-A user,...][-M user,...][-r][-R]groupname
參數:
-a:添加用戶到組
-d:從組刪除用戶
-A:指定管理員
-M:指定組成員和-A的用途差不多
-r:刪除密碼
-R:限制用戶登入組,只有組中的成員纔可以用newgrp加入該組 
gpasswd groupname:如系統有個peter賬戶,該賬戶本身不是groupname羣組的成員,使用newgrp需要輸入密碼即可
 
示例:
 
[root@localhost ~]# gpasswd -A peter test2  #將peter設爲test2組管理員

[root@localhost ~]# gpasswd -a peter test2  #將用戶peter加入到test2組

[root@localhost ~]# gpasswd -d peter test2  #將用戶peter從test2組中移出
 
 

newgrp:切換基本組爲指定的組

 

示例:

[zhangy@localhost ~]# newgrp www  #登錄到www羣組
 

說明:newgrp指令類似login指令,當它是以相同的帳號,另一個羣組名稱,再次登入系統。欲使用newgrp指令切換羣組,您必須是該羣組的用戶,否則將無法登入指定的羣組。單一用戶要同時隸屬多個羣組,需利用交替用戶的設置。若不指定羣組名稱,則newgrp指令會登入該用戶名稱的預設羣組。

 

groupdel:刪除組

示例:

[root@Blackghost ~] groupdel test   #刪除組test

 

chage:修改用戶賬號及密碼的屬性


            chage [OPTION]... LOGIN 

  參數意思:
  -m 密碼可更改的最小天數。爲零時代表任何時候都可以更改密碼。
  -M 密碼保持有效的最大天數。
  -W 用戶密碼到期前,提前收到警告信息的天數。
  -E 帳號到期的日期。過了這天,此帳號將不可用。
  -d 上一次更改的日期
  -I 停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用。
  -l 例出當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。
 
示例:
1
[root@localhost ~]# chage -l zhangy      #查看用戶密碼設定情況
最近一次密碼修改時間                                    :  4月 27, 2013
密碼過期時間                                    : 從不
密碼失效時間                                    : 從不
帳戶過期時間                                            : 從不
兩次改變密碼之間相距的最小天數          :-1
兩次改變密碼之間相距的最大天數          :-1
在密碼過期之前警告的天數        :-1

[root@localhost ~]# chage -M 90 zhangy        #密碼有效期90天

[root@localhost ~]# chage -d 0 zhangy       #強制用戶登陸時修改口令

[root@localhost ~]# chage -d 0 -m 0 -M 90 -W 15 zhangy   #強制用戶下次登陸時修改密碼,並且設置密碼最低有效期0和最高有限期90,提前15天發警報提示
 
2
# chage -E '2014-09-30' test  # test這個賬號的有效期是2014-09-30
 

 

其它命令:

chfn:改 變 你 的 finger 訊 息

chsh:用於 改變 用戶的 登錄 shell. 如果 沒有在 命令行上 指定 shell, chsh 能夠 做出 提示.

finger:用戶信息查找

whoami:打印與當前生效的用戶 ID 關聯的用戶名。與 id -un 相同。

who:顯示當前已登錄的用戶信息

用法:who [選項]... [ 文件 | 參數1 參數2 ]
示例:
[root@localhost ~]# who    #顯示目前登入系統的用戶信息
tank     tty1         2013-05-10 08:29
tank     pts/0        2013-05-10 08:29 (192.168.56.1)

[root@localhost ~]# who -a   #顯示目前登入系統的用戶詳細信息
           系統引導 2013-05-10 08:11
           運行級別 2 2013-05-10 08:11
登錄     tty4         2013-05-10 08:11               814 id=4
登錄     tty5         2013-05-10 08:11               825 id=5
登錄     tty2         2013-05-10 08:11               842 id=2
登錄     tty3         2013-05-10 08:11               845 id=3
登錄     tty6         2013-05-10 08:11               852 id=6
tank     - tty1         2013-05-10 08:29 01:08        1395
tank     + pts/0        2013-05-10 08:29   .          1493 (192.168.56.1)

[root@localhost ~]# who -q #列出所有已登錄用戶的登錄名與用戶數量
tank tank
# 用戶數=2

[root@localhost ~]# who -u  #列出已登錄的用戶
tank     tty1         2013-05-10 08:29 01:08        1395
tank     pts/0        2013-05-10 08:29   .          1493 (192.168.56.1)

[root@localhost ~]# who -r  #查看已登錄的用戶的級別
         運行級別 2 2013-05-10 08:11

[root@localhost ~]# who -b   #上次系統啓動時間
         系統引導 2013-05-10 08:11
 

w:顯示目前登入系統的用戶信息。

語法:w [-fhlsuV][用戶名稱]
-f  開啓或關閉顯示用戶從何處登入系統。

-h  不顯示各欄位的標題信息列。

-l  使用詳細格式列表,此爲預設值。

-s  使用簡潔格式列表,不顯示用戶登入時間,終端機階段作業和程序所耗費的CPU時間。

-u  忽略執行程序的名稱,以及該程序耗費CPU時間的信息。
 
示例:
[root@localhost ~]# w     #示目前登入系統的用戶信息
 09:30:39 up  1:19,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
tank     tty1                      08:29    1:01m  1.04s  0.91s -bash
tank     pts/0    192.168.56.1     08:29    0.00s  1.70s  0.13s sshd: tank [priv]

用戶對文件的訪問權限有三種:

r, w, x


文件:

r: 可使用文件查看工具查看其內容;

w: 可使用文件編輯工具編輯其內容;

x: 可向內核請求將此文件運行爲進程;


目錄:

r: 可使用ls命令列出目錄中的文件或子目錄列表;

w: 可在此目錄中創建或刪除文件;

x:可使用‘ls -l’列出目錄文件及子目錄的詳細屬性信息;可使用cd命令切換工作目錄爲指定目錄;


文件的權限主要針對三類對象進行定義:

ownuer: u, 屬主;

group: g, 屬組;

other: o, 其它;


某類用戶對某文件的訪問權限:

--- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7


664:rw-rw-r--

rwxr-x---: 750


權限管理: chmod

所屬關係管理: chown, chgrp

文件遮罩碼:umask



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章