Linux-用戶,組管理

2/13/2017來源:經驗技巧人氣:7690

權限管理
            文件權限:9位,每3位一組,每一組rwx(read,write,執行)
            每組代表對象:
                1.文件的屬主(ower)
                2.文件的屬組(group)
                3.文件的組外
            文件:
                r:可讀,可以使用類似cat等命令查看文件內容
                w:可寫,可以編輯或者刪除此文件
                x:可執行,exacutable,可以命令提示符下當作命令提交給內核運行
            目錄:
                r:可以對此目錄執行ls以列出內部的所有的文件
                w:可以在此目錄創建文件
                x:可以使用cd切換此目錄,也可以使用ls -l查看內容文件的詳細信息

            rwx:
                r--:只讀
                r-x:讀和執行
                ---:無權限


            0 000  ---:無權限
            1 001  --x:執行
            2 010  -w-:編輯
            3 011  -wx:寫和執行
            4 100  r--:只讀
            5 101  r-x:讀和執行
            6 110  rw-:讀寫
            7 111  rwx:讀寫執行

                用戶:UID,/etc/passwd
            組:GID,/etc/group

            影子口令:[對應的passwd就是密碼放在這個文件都當中]
                用戶:/etc/shadow
                組:/etc/gshadow

            用戶類別:
                管理員:0
                普通用戶:1-65535
                    系統用戶:1-499
                    一般用戶:500-60000

            用戶組類別第一種分法:
                管理員組:
                普通組:
                    系統組
                    一般組

            用戶組類別第二種分法:
                私有組:創建用戶時,如果沒有為其指定所屬的組,系統會為其創建一個與用戶同名的組
                基本組:用戶的默認組
                附加組:額外組,默認組以外的其他組

                for example:
                (每個指令執行即為進程,其發起者決定其用戶的權限)
                進程:tom tom(tom屬主 tom屬組)
                對象:rwxrw-r-- jerry tom a.txt
                最終系統會執行:rw-的權限
                解釋:
                    執行對象a.txt首先會比對其屬主jerry是不是等于發起者tom,是就為rwx
                    不是則比較的是tom發起者是否在對象的屬組上,是就為rw-,不是則r--

            查看的/etc/paswd文件內容:
            指令:
                whatis pwsswd:可以查看其在man當中的第幾個章節,得出是第5個
                man 5 passwd:可以查看其章節對應的結構
            由指令看出結構內容:
                    account:登錄名
                passWord:密碼
                UID:用戶的id
                GID:基本組的id
                comment:注釋
                Home DIR:家目錄
                SHELL:用戶的默認shell
                查看/etc/shadow文件內容:
                指令:man 5 shadow
            查看結構內容:
                account:登錄名
                encrypted passwod:加密的密碼
                    在linux上顯示是這樣:
                    $1$xsdsd$sdsdji=YUD_sr34+34
                    說明:$進行隔開,分為3部分
                      1.標示符,用戶的標示符
                      2.salt進行給對應md5算法進行混淆干擾加強安全保密性
                      3.就是salt+明文進行md5的產物   
                加密方法:
                    對稱加密:加解密使用同一個密碼
                    非對稱加密:每個密碼都成對出現,一個私鑰,一個公鑰,可以是私鑰加密,也可以公鑰加密
                    單向加密:散列加密:提取數據特征碼,常用于數據校驗的完整性
                        特點:
                            1.雪崩效應:有一個基礎不一樣的條件,整個結果都不一樣
                            2.定長的輸出:
                                MD5:Message Digest,128定長
                                SHA1:Secure Hash Algorithm,160位定長輸出
                        for example:
                        1.    md5sum 文件名稱
                            nano對應的文件名稱,進行修改某個字符串
                            md5sum 修改過的文件
                            一對比是不一樣的
                        2.passwd 對應用戶名:進行修改用戶名
                          tail -l  /etc/passwd:查看對應密碼文件的后面字符

                用戶指令:
                    useradd:添加新的用戶
                        -u UID username:為添加用戶添加uid
                            for example:   
                                useradd -u 1000 username:添加一個用戶名為username,其uid為1000
                        -g GID username:為添加用戶添加gid[組id]
                            for example:
                                useradd -g 10 username:添加一個用戶名為username,其組id為10(組id需要是存在的)   
                        -G GID,...(附加組)
                        -c  "COMMENT"
                        -d /path/to/someditectory:為新的用戶添加一個家目錄.默認同名的/home/username
                        -s "對應shell的指令":為新填的用戶添加其執行的shell執行指令的路徑
                            /etc/shells:指定了當前系統可用的安全shell
                        -M:為新的用戶不添加家目錄---->/etc/login/defs

                    userdel:刪除用戶,如果單單執行的這個指令,則刪除用戶,但其家目錄是不會執行
                        -r username:刪除用戶的同時,也把其家目錄刪掉
                    id:查看用戶的賬號的屬性
                        -u:
                        -g:
                        -G:
                        -n:顯示用戶的名稱,可以與-u或者-G聯合一起使用
                        for example:
                        (id username:查看username的id等基本信息   id -u username:查看username的uid     id -G: 查看組id)   
                    finger:查看用戶的賬號信息
                    修改用戶賬號屬性:
                        usermod修改用戶的屬性
                            -u UID:修改用戶的用戶的id
                            -g GID:修改用戶的組id
                            -a -G GID:為用戶額外添加新的附加組
                            -G GID:覆蓋此前的附加組
                            -c:添加對應的注釋信息
                            -d:修改新的家目錄,原來的目錄無效
                            -d -m:創建新的家目錄,并把原來的家目錄進行移到新的目錄
                            -l:修改對應的登錄用戶名
                            -L:鎖定賬號
                            -U:解鎖賬號
                            -r:添加系統用戶 1-499 沒有家目錄,不能登錄

                        chsh:修改用戶的默認shell

                        chfn:修改注釋信息

                    密碼管理:
                        passwd [username]:修改用戶的密碼
                            --stdin:標準輸入
                            for example:
                                在腳本方便創建賬號與密碼的輸入
                                echo "redhat" | passwd --stdin
                           -l:鎖對應的密碼
                           -u:解鎖
                           -d:刪除用戶密碼[用戶沒有密碼,則用默認的密碼進行登入]

                        pwck:檢查用戶賬號的用戶的隱患,檢查用戶賬號的完整性
                    change:改變用戶的密碼
                        -d:最近一次的修改時間
                        -E:過期時間
                        -I:非活動時間
                        -m:最短使用期限
                        -M:最長使用期限
                        -W:警告時間

                組管理:
                    groupadd:創建組
                        -g GID:指定gid,不指定的話則是大約500,而且自增
                        -r:添加系統組
                    groupmod:
                        -g GID:
                        -n GREPNAME:

                    groupdel:刪除組
                    gpasswd:為組設定密碼
                    [把對應的用戶切換到附加組:newgrp mygroup[這個是其組名],切換回基本,exit]


                用戶分組指令練習:
                1.創建一個用戶mandriva,其ID號為2004,基本組oklus(組是3003),附加組為linux
                [組是必須是存在的,則先創建新的組]
                    groupadd -g 3003 oklus
                    groupadd linux
                    useradd -u 2004 -g oklus -G linux mandriva
                2.創建一個用戶fedora,其全名為Feodora Community,默認shell為tcsh
                    useradd -c "Feodora Community" -s /bin/tcsh fedora
                3.修改mandrivade的ID號為4004,基本組Linux,附加組distro和fedora
                    groupadd fedora
                    groupadd distro
                    usermod -u 4004 -g linux  -G distro,defora mandriva
                4.給fedora加密碼,并設定其密碼最短使用期限為2天,最長為50天
                    passwd  -n 2 -x  50 fedora
                5.將mandriva的默認shell改為bin/bash
                    usermod -s /bin/bash mandriva
                6.添加系統用戶hbase,且不允許登錄系統
                    useradd -r -s /sbin/nologin hbase

權限管理:
                linux分為3種權限:
                    r:讀
                    w:寫
                    x:執行
                3種權限面向的對象:
                    u:屬主
                    g:屬組
                    o:其他用戶
                指令:
                    chown:改變文件的屬主[只有管理員才能改屬主]
                          e:#chown username file1,file2....
                          e:chown :linux(屬主不動可以直接改屬組)
                          -R:修改目錄及其內部文件的屬主
                          --reference=/path/to/somfile  file,file1,file2... 將file1,file2的屬主改成somfile的屬主一樣

                    chgrp:grpname file,...修改屬組
                          -R:修改目錄及其內部文件的屬主
                          --reference=/path/to/somfile  file,file1,file2... 將file1,file2的屬主改成somfile的屬主一樣


                    chmod:修改文件的權限:
                        chmod MODE file,file,...
                              -R
                              --reference=/path/to/somfile  file,file1,file2...
                        修改三類用戶的權限
                                e:chmod 750 targetfile:修改對應的目錄屬主權限為rwx 屬組r-x 其他組為--
                               chmod 75 targetfile:修改對應的目錄屬主權限為--- 屬組rwx  其他組為r-x               

                    修改某類用戶或某些類用戶權限:
                        chmod 用戶類別=MODE file,file1...
                        u,g,o,a
                        chmod u=rw targetFile  將targetFile屬主rw-
                        chmod g=rx,o= targetFile 將targetFile的屬組為rx,其他組為---
                    修改某類用戶的某位或某些位權限:
                        chomd 用戶類別+|-MODE file,..
                        chmod u-x,o-x,g-x targetFile  將3類用戶都減掉x權限
                        =
                        chmod -x targetFile  將3類用戶都減掉x權限

                    【ls -l /etc/shadow 查看對應用戶的密碼的內容值,僅有r的權限】
                練習:
                1.新建一個沒有家目錄的用戶openstack:
                    #useradd -M  openstack
                    創建時的驗證:
                        finger openstack:查看openstack的用戶信息
                        id openstack:查看的openstack的對應的屬主 屬組 組集合
                        ls /home:是否創建了openstack的目錄
                2.復雜/etc/ske1為/home/openstack:
                    #cp -r /etc/ske1 /home/openstack
                      驗證:
                        ls -l /home:查看的是openstack下的屬主屬組權限的內容
                        ls -la /home/openstack:查看的是openstack包括其根目錄下的權限內容[全部目錄下]
                3.改變/home/openstack及其內部文件的屬主均為openstack
                    #chown -R openstack:openstack /home/openstack
                    或者
                    #chown -R openstack.openstack /home/openstack
                       驗證:
                        ls -la /home/openstack:查看對應的權限都變成了openstack
                4./home/openstack及其內部的文件,屬組和及其沒有任何訪問權限
                    #chmod -R go= /home/openstack
                        驗證:
                        ls -la  /home/openstack :即為對應的權限為openstack,需要查看的是rwx-----
                        su openstack  登錄成功即成功了

                【
                    bc:計算器的指令
                    其實以上指令就是給下面三個文件添加對應的用戶密碼的基本信息然后添加對應的文件目錄再賦值于對應權限
                    以上對文件進行操作:
                        /etc/shadow
                        /etc/passwd
                        /etc/shadow
                    為新加的openstack進行添加密碼,手動的方式進行添加:
                    1.加密[加鹽]:
                        whatis passwd:找到對應的openssl文件進行加salt的操作
                        openssl passwd -1 -salt '123456'
                        openssl passwd -1:MD5加密操作
                        openssl passwd -salt:加鹽進行混淆保全其安全性
                        再到對應的nano進行編輯一下shadow文件:添加對應的密碼
                            1.ctr+0
                            2.exit
                            3.exit即可

                    2.exit
                    3.進行對ssh  ip地址進行login的操作
                    4.輸入密碼即可:123456
                    【檢驗通過】
                 】

                 【新建一個用戶創建一個文件與目錄,權限的MODE值不一樣,umask決定
                    umask:對應用戶遮罩碼
                    umask xx:設置的遮罩碼
                    基本原則:文件默認不能具有執行權限,如果算得的結果執行權限是有執行的,則自動會加1操作
                    創建 一個文件:666-umask
                    創建一個文件目錄:777-umask
                    當我們創建一個用戶,不讓它任何的訪問的權限,設置其的umask為227即可

                    站在用戶登錄的角度來說,SHELL的類型:
                    登錄式shell:
                        正式通常終端登錄:
                            su -USERNAME
                            su -l UNSERNAME
                        非登錄式shell:
                            su USERNAME
                            圖形終端下打開命令窗口
                            自動執行的shell腳本


                    bash的配置文件:
                        全局配置:
                            /etc/PRofile,/etc/profile.d/*.d,/etc/bashrc
                        個人配置:
                            ~/.bash_profile,~/.bashrc
                        profile類的文件:
                            設定環境變量
                            運行命令或腳本
                        bashrc類的文件:
                            設定本地變量
                            定義命令別名
                        登錄式shell如何 讀取配置文件?
                            /etc/profile--->
                            /etc/profile.d/*.sh--->
                            ~/.bash_profile--->
                            ~/.bashrc--->
                            /etc/bashrc
                        非登錄式shell如何配置文件:
                            ~/.bashrc  --->
                            /etc/basrc   --->
                            /etc/profile/d/*.sh

                        for example:
                            1.修改對應的登錄進來的開頭語:welcome to linux,this time is `date`
                               su openstack
                               nano .bash_profile
                                添加多一條:echo "welcom to Linux,this time `date`"
                               exit
                               ssh ip地址
                               登錄進去就可以看到對應的提示語
                            2.修改對應的umask值為027
                               su openstack
                               nano .bash_profile
                                添加多一條:umask 027
                               exit
                               ssh ip地址
                               登錄進去
                               #umask  ---->就可以查看對應的umask對應值了
                】   
·                                   


三肖中特期期准l