Linux學習之:用戶和文件權限管理

一、用戶和用戶管理

1. 用戶:計算機的每個使用者

   (1) 用戶類別:

          管理員能夠管理整個全局權限

          普通用戶:分爲系統用戶和登錄用戶。

                     對系統級的資源只有讀取權限,對自己的資源他擁有全部管理權限

                    系統用戶:爲了能夠讓那後臺進程或服務類進程以非管理員的身份運行,通常需要爲此

                                     創建多個普通用戶;這類用戶從不用登錄系統

   (2)用戶標識:UserID, UID

                16bits二進制數字:0-65535

                管理員:0

                普通用戶:1-65635

                       系統用戶:1-499(CentOS6), 1-999(CentOS7)

                       登錄用戶:500-60000(CentOS6), 1000-60000(CentOS7)

2.用戶的信息庫的文件結構

  • /etc/passwd:用戶的信息庫

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

name: 用戶名

password:可以是加密的密碼,也可是佔位符x;

UID:用戶的ID;

GID:用戶所屬的基本組的ID號;

GECOS:註釋信息

directory:用戶的家目錄;

shell:用戶的默認shell,登錄時默認shell程序;

  • /etc/shadow:用戶密碼

用戶名:加密的密碼:最近一次修改密碼的時間:最短使用期限:最長使用期限:警告期段:過期期限:保留字段

3.用戶賬號管理常用命令:

  • useradd命令:創建用戶(創建一個用戶,如果未指定用戶組,系統會自動創建一個用戶同名的組,作爲私有組)

useradd [選項] 登錄名

-u, --uid UID:指定UID;

例如:創建一個ID爲2000的shakura用戶:

       [root@localhost ~]# useradd -u 2000 shakura

-g, --gid GROUP:指定基本組ID,此組必須存在;

       [root@localhost ~]# useradd -g 2000 shakura   

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用戶所屬的附加組,多個組之間用逗號分隔;

-c, --comment COMMENT:指明註釋信息;

     [root@localhost ~]# useradd -c "This is shakura" shakura

        # 指明shakura用戶的註釋信息爲“This is shakura”

-d, --home HOME_DIR:以指定的路徑爲用戶的家目錄;通過複製/etc/skel此目錄並重命名實現;

   [root@localhost ~]# useradd -d  /home/tset shakura 

        # 指定shakura用戶的家目錄爲/home/test

  注意:指定的家目錄路徑如果事先存在,則不會爲用戶複製環境配置文件。

-s, --shell SHELL:指定用戶的默認shell,可用的所有shell列表存儲在/etc/shells文件中;

     [root@localhost ~]# useradd -s /sbin/csh  

    # 指定shakura用戶的shell爲csh

-r, --system:創建系統用戶;

例如:創建一個名爲CentOS的系統用戶

        useradd -r  CentOS7

         注意:創建用戶時的諸多默認設定配置文件爲/etc/login.defs;

useradd -D:顯示創建用戶的默認配置;

[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

useradd -D [選項]: 修改默認選項的值;

注意:修改的結果將保存於/etc/default/useradd文件中。

  • usermod命令:修改用戶屬性

usermod [選項] 登錄

-u, --uid UID:修改用戶的ID爲此處指定的新UID;

        usermod -u 2015 shakura  # 修改shakura用戶ID爲2015

-g, --gid GROUP:修改用戶所屬的基本組;

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用戶所屬的附加組;原來的附加組會被覆蓋;

-a, --append:與-G一同使用,用於爲用戶追加新的附加組;

-c, --comment COMMENT:修改註釋信息;

-d, --home HOME_DIR:修改用戶的家目錄;用戶原有的文件不會被轉移至新位置;

-m, --move-home:只能與-d選項一同使用,用於將原來的家目錄移動爲新的家目錄;

-l, --login NEW_LOGIN:修改用戶名;

-s, --shell SHELL:修改用戶的默認shell;

-L, --lock:鎖定用戶密碼;即在用戶原來的密碼字符串之前添加一個"!";

-U, --unlock:解鎖用戶的密碼;

  • userdel命令:刪除用戶

userdel [選項] 登錄

-r:刪除用戶時一併刪除其家目錄;

    userdel -r shakura    # 刪除shakura用戶,包括其家目錄

  • passwd命令:

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

(1) passwd:修改用戶自己的密碼;

         [root@localhost ~]# passwd
        更改用戶 root 的密碼 。
        新的密碼:

(2) passwd USERNAME:修改指定用戶的密碼,但僅root有此權限;

        [root@localhost ~]# passwd shakura
        更改用戶 shakura 的密碼 。
        新的 密碼:

        # 修改shakura用戶的密碼;

(3)常用選項:

           -l, -u:鎖定和解鎖用戶;

           -d:清除用戶密碼串;

           -e DATE: 過期期限,日期;

           -i DAYS:非活動期限;

           -n DAYS:密碼的最短使用期限;

           -x DAYS:密碼的最長使用期限;

           -w DAYS:警告期限;

           --stdin:

            echo "PASSWORD" | passwd --stdin USERNAME

二、Linux文件屬性

在終端中使用 ls -l 命令來查看文件,顯示如下:

      -rw-r--r--. 1 root root  0  12月 14 06:07 te.txt

第一列代表文件的權限;

        --rw-r—r—

      第一個字符代表這個文件的類型:

           文件的的主要類型有:

        -: 常規文件:即f;
       d:directory,目錄文件;
       b: block device,塊設備文件,支持以'block'爲單位進行隨機訪問;
       c: character device:字符設備文件,支持以"character"爲單位進行線性訪問;
       l: symbolic link,符號連接文件;
       p: pipe,命名管道;
       s: socket,套接字文件;

接下來的字符三個爲一組:

其中r代表可讀(readable),w代表可寫(writable), x代表可執行(excutable)

第一組:定義user(owner)的權限,以上面te.txt文件爲準,該文件的所有者可讀寫但不可執行;

第二組:定義用戶組(group)的權限;

第三組:定義其他用戶(others)的權限

 第二列表示有多少文件名連接到此節點;

 第三列表示這個文件的(或目錄)的屬主(所有者);

 第四列表示文件的所屬用戶組;

 第五列表示這個文件的大小,默認爲Bytes;

 第六列表示爲這個文件的創建日期;

 第七列爲該文件名;


1.進程安全上下文:

進程對文件的訪問權限應用模型:

進程的屬主與文件的屬主是否相同;如果相同,則應用屬主權限;

否則,則檢查進程的屬主是否屬於文件的屬組;如果是,則應用屬組權限;

否則,就只能應用other的權限;

      文件:

     r:可獲取文件的數據;

     w: 可修改文件的數據;

     x:可將此文件運行爲進程;

目錄:

      r:可使用ls命令獲取其下的所有文件列表;

     w: 可修改此目錄下的文件列表,即創建或刪除文件;

     x: 可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息;

    mode:rwxrwxrwx

       ownership:user, group

2. 權限管理命令:

  • chmod命令:

       三類用戶:屬主(OWNER)表示爲u,屬組表示爲g,其他用戶(Others)表示爲o,all表示所有權限,簡寫爲a。

(1) chmod [OPTION]... MODE[,MODE]... FILE...

MODE表示法:

賦權表示法:直接操作一類用戶的所有權限位rwx;

                u=     g=

                o=     a=

授權表示法:直接操作一類用戶的一個權限位r,w,x;

            u+, u- g+, g-

            o+, o- a+, a-

(2) chmod [OPTION]... OCTAL-MODE FILE...

(3) chmod [OPTION]... --reference=RFILE FILE...

        選項:

                        -R, --recursive:遞歸修改

        注意:用戶僅能修改屬主爲自己的那些文件的權限

3.從屬關係管理命令:chown, chgrp

  • chown命令:

chown [OPTION]... [OWNER][:[GROUP]] FILE...

chown [OPTION]... --reference=RFILE FILE...

選項:

-R:遞歸修改

  • chgrp命令:

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...

注意:僅管理員可修改文件的屬主和屬組;

  • umask命令:文件的權限反向掩碼,遮罩碼

文件:

666-umask

目錄:

777-umask

umask: 023

666-023=644

777-023=754

umask命令:

umask:查看當前umask

umask MASK: 設置umask

注意:(1)之所以文件用666去減,表示文件默認不能擁有執行權限;

 (2)如果減得的結果中有執行權限,則需要將其加1;

         (3)此類設定僅對當前shell進程有效。


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