Linux用戶權限管理


用戶相關命令

useradd

-u uid

制定用戶的uid(數字  身份證號碼)

-s 指定用戶使用的shell

/bin/bash 默認

/sbin/nologin 手動添加一個傀儡用戶  虛擬用戶

-M標示不創建家目錄一般創建虛擬用戶使用

-g 指定 用戶屬於的組(組的名字)添加用戶的時候 默認創建一個與用戶名一樣的家庭

添加一個用戶lidao666指定uid為888禁止用戶登陸系統 不創建家目錄

添加一個uid是888的虛擬用戶alex999

userdel

刪除用戶

把這個用戶/etc/passwd中注釋

userdel默認不刪除用戶的家目錄和郵箱

-r 連窩端刪除與用戶有關的所有信息(家目錄)

ussermod

修改用戶的信息(這個用戶已經存在了)

-s 修改用戶使用的shell

-g 屬於的家庭 用戶組名字

主要組

-G屬於多個家庭

附加組

passwd

--stdin 從管道中獲取用戶的密碼(非交互式設置密碼)

企業場景:用戶及密碼管理

□密碼要復雜12位以上字母數字特殊符號

保存密碼:

keepass

(軟件,密碼存放在本地,本地保險櫃)

lastpass

(在線版本,銀行的保險櫃)

大的企業用戶和密碼統一管理(相當於活動目錄(ad),openldap域)

動態密碼:動態口令,第三方提供自己開發也很簡單

企業面試題

批量添加10個用戶stu01,stu02……stu10,並設置8位隨機密碼(禁止使用for,while等循環)

chown

修改文件或目錄所有者和屬於的用戶組

-R 遞歸修改文件或目錄的所有者和用戶組

chown  oldboy oldboy.txt #只修改了文件的所有者

chown  oldboy.oldboy oldboy.txt #修改了文件的所有者和屬於的組

 

chmod

【功能說明】:修改文件目錄的權限

【語法格式】:chmod [數字或參數] [文件路徑]

【選項參數】:

參數

參數說明

其他說明

+

表示增加權限

 

=

表示唯一設定權限

 

-

表示取消權限

 

u

在這里改的前三位

 

g

在這里改的中三位

 

o

在這里該改的后三位

 

a

所有

 

例子:

chmod  u=w  /oldboy/test.sh

chmod 755 test.sh”。755表示“創建者擁有讀寫可執行權限、同一組用戶以及其他用戶擁有讀和執行權限”。

 

第1章 Linux用戶分類 

用戶分類

UID

user  ID  身份證號碼

 

GID

group ID  用戶組ID

 

root皇帝 UID:0

 

虛擬用戶 傀儡 UID:1-499(c6) /999(c7)

用戶的命令解釋器/sbin/nologin

每個程序、服務運行的時候都需要一個用戶

傀儡用戶不需要用來登陸系統

普通用戶 UID 500(c6)+1000(c7)

 

第2章 Linux用戶 

2.1 Linux啟動流程

CentOS 6        VS         CentOS 7  

串行                       並行 

Contos6:

第一步按下電源→開機自檢→MBR引導→GRUB菜單→加載內核→運行INIT(第一個啟動的進程)→讀取/etc/inittab →讀取/etc/rc數字.sysinit(開機自啟動)→啟動mingetty顯示界面

 

2.2 #process 進程   

 ps  -ef   查看系統進程

 

2.3 用戶與用戶組關系      

這個人屬於哪個(或者多少個)家庭

2.4 命令解釋器  shell 

echo  houstname通過管道給bash  替你運行!

     這叫命令解釋器

 

/bin/bash       系統默認的命令解釋器

/sbin/nologin    虛擬用戶的命令解釋器  

nologin不能登陸的login (虛擬用戶)   

 

 統計系統中 虛擬用戶數量

/sbin/nologin    文件中一個( nologin ) 代表虛擬用戶

 

如和計算?

一兩種種方法不算方法,

Cat?grep,sed,awk

 

grep '/sbin/nologin'  /etc/passwd|wc -l  wc -l小寫(統計文件中單詞數量顯示結果)

 

grep -c '/sbin/nologin'  /etc/passwd     

-c 統計包含 xxxx的有多少行  行數     count(計數)

 

awk  '/nologin/{i++}END{print i}' /etc/passwd   

 

find  查找文件名或目錄

-maxdepth 最大深度

-type   類型

-name  名字

-iname  不區分大小寫

-size   大小

-mtime  時間

 

 

/etc/passwd內的每一列的含義

 

 

2.5 /etc/group用戶,用戶組信息

 

2.6 /etc/shadow 密碼密碼信息

 

2.7 與用戶有關目錄

2.7.1 /etc/skel  新用戶的家目錄的模板 (內有隱藏文件)   

2.8 useradd 添加用戶

1# 創建家目錄 /home/oldfei

2# 把 /etc/skel 下面的所有內容 復制到 家目錄

3# 修改家目錄權限和所有者  

 

 ll -a /etc/skel/

total 24 (總數)

 .bash_logout    #用戶退出系統的時候#執行里面的命令

/etc/rc.d/rc.local     #用戶開機時運行里面的內容

 .bash_profile   #/etc/profile  環境變量 別名

 .bashrc         #/etc/bashrc   別名

  

2.9 准備故障:

2.9.1 檢查環境 

grep PS1 /etc/profile

#export PS1='[\u@\h \w]\$ '

2.9.2 添加用戶 

[root@oldboyedu-lnb ~]# useradd alex

[root@oldboyedu-lnb ~]# su - alex

[alex@oldboyedu-lnb ~]$ \rm -fr /*

                       刪根

2.9.3 退出用戶 重新登陸 

-bash-4.2$

版本

-bash-4.1$ 代表cenos6

-bash-4.2$ 代表cenos7

2.9.4 原因  

用戶家目錄 環境變量文件 沒了

 

2.9.5 解決 

-bash-4.2$ ##方法1./etc/skel

-bash-4.2$ cp /etc/skel/.bash*   ~    復制

 

重新登陸 恢復

-bash-4.2$ logout

 切換用戶:su - alex

Last login: Fri Nov 16 11:18:54 CST 2018 on pts/0(顯示登陸信息)

[alex@oldboyedu-lnb ~]$   (已登陸環境)

第3章  語法格式

3.1 添加一個UID是888的虛擬用戶

    useradd -u 888 -M -s /sbin/nologin  lg

指定UID為888+-u,不創建家目錄是大M,指定用戶使用的shell虛擬用戶 ,加上用戶名lg

顯示用戶的信息叫id  亮哥  (id + 用戶名)

 

 

 

 

[root@oldboyedu-lnb ~]# usermod -g alex  alex

[root@oldboyedu-lnb ~]# id alex

uid=1003(alex) gid=1006(alex) groups=1006(alex)

 

#-G   讓用戶屬於多個組↓

[root@oldboyedu-lnb ~]# usermod -G root,oldboy,lidao666  alex

[root@oldboyedu-lnb ~]# id alex

uid=1003(alex) gid=1006(alex) groups=1006(alex),0(root),1000(oldboy),1007(lidao666)

清空之前設置的屬組↓

[root@oldboyedu-lnb ~]# usermod -G ''  alex

[root@oldboyedu-lnb ~]# id alex

uid=1003(alex) gid=1006(alex) groups=1006(alex)

 

passwd  更改密碼

stdin  (standard input 標准輸入 ) 從管道獲取密碼

 echo 123456 |passwd --stdin alex  結果如↓

Changing password for user alex. 更改用戶密碼

passwd: all authentication tokens updated successfully. 成功更新所有身份認證令牌

 

記錄密碼:

盡量復雜一點

 

history    查看歷史命令

history -c  刪除歷史命令

 

第4章 用戶管理  

   用戶相關命令

4.1 useradd   增加用戶  

-u uid  指定用戶的uid(數字  身份證號碼)

    -s   指定用戶使用的shell

/bin/bash 默認

/sbin/nologin 手動添加一個傀儡用戶  虛擬用戶

-M標示不創建家目錄一般創建虛擬用戶使用

-g 指定 用戶屬於的組(組的名字)添加用戶的時候 默認創建一個與用戶名一樣的家庭

添加一個用戶lidao666指定uid為888禁止用戶登陸系統 不創建家目錄

添加一個uid是888的虛擬用戶alex999

4.2   userdel    刪除用戶  

userdel默認不刪除用戶的家目錄和郵箱

-r 連窩端刪除與用戶有關的所有信息(家目錄)

           在/etc/passwd中注釋掉更安全方便點

4.3  usermod    修改用戶

修改用戶的信息(這個用戶已經存在)

-s 修改用戶使用的shell

-g 屬於的家庭 用戶組名字

主要組

-G屬於多個家庭

附加組

4.4   passwd    更改密碼

--stdin 從管道中獲取用戶的密碼(非交互式設置密碼)

企業場景:用戶及密碼管理

□密碼要復雜12位以上字母數字特殊符號

保存密碼:

4.4.1 keepass    密碼管理器

(軟件,密碼存放在本地,本地保險櫃)

4.4.2 lastpass

在線版本,銀行的保險櫃)

大的企業用戶和密碼統一管理(相當於活動目錄(ad),openldap域)

動態密碼:動態口令,第三方提供自己開發也很簡單

企業面試題

批量添加10個用戶stu01,stu02……stu10,並設置8位隨機密碼(禁止使用for,while等循環)

第5章 用戶組

5.1 chown     修改文件或目錄所有者和屬於的用戶組

-R 遞歸修改文件或目錄的所有者和用戶組

chown  oldboy oldboy.txt #只修改了文件的所有者

chown  oldboy.oldboy oldboy.txt #修改了文件的所有者和屬於的組

用戶相關組

5.2 groupadd   創建用戶組

-g指定用戶組的gid數字

添加一個虛擬用戶用戶 mysql 指定用戶的uid gid都是999

5.3 用戶查詢命令

id  查看用戶的信息

一個用戶是否存在

查詢用戶的uid  gid

屬於哪個用戶組

w 顯示系統中已經遠程登陸的用戶  干啥

https://www.processon.com/view/link/59ffcfe6e4b06bed41ccb8d6

 

last  哪個用戶在什么時候 從哪里 遠程登陸你的系統  用戶登陸的信息

lastlog 顯示linux中所有用戶最近一次遠程登陸的信息

第6章 權限體系  

6.1 Linux權限體系  rwx 讀寫執行 permission 權限denied 拒絕

6.2 chown  用戶管理命令更改文件的屬主,屬組,原有的主,組改為另一個指定的用戶或組  

參數   -R  遞歸更改該目錄下所有文件

 

6.3  chown  oldboy . oldboy   ld.txt 

   使這個文件的屬主屬組更改為oldboy

 

6.4 #添加一個虛擬用戶 mysql 指定用戶的uid gid都是999  

useradd  -u 999 -g 999 -s /sbin/nologin  -M  mysql (mysql=用戶名)

            -s           -M 不創建家目錄              

 id mysql  查看這個用戶

uid=999(mysql) gid=999(mysql) groups=999 (mysql)

 

-g 指定用戶組名字 或者指定一個已經存在的用戶組的gid

groupadd     -g 996       lidao996

 

創建組,-g指定用戶組名  用戶名

useradd   -u 996  -g lidao996   -s /sbin/nologin -M  lidao996

添加用戶  -u      -g          -s            -M

 

 

第7章 如何讓系統變得更安全

7.1 連接到任何服務器需要做:

1.ip地址   

2.端口     sshd 22 (52113)

3.用戶名   root    #禁止root用戶遠程登錄

4.密碼

5.登陸情況放在這個日志里面: /var/log/secure  Failed password  

 

7.2 創建指紋

72.1 直接創建 

md5sum  /oldboy/oldboy.txt >/oldboy/l/123.txt

         把oldboy.txt做一個指紋到這個指紋數據庫

7.2.2 把一個目錄下的文件全部過濾到指紋數據庫備份

找出/oldboy下面 文件 並制作指紋信息 存放在/oldboy/l/123.txt

find /oldboy/ -type f |xargs md5sum >/oldboy/l/123.txt

  在這  /oldboy/l/123.txt 即指紋數據庫

 

7.2.3 自動比對  

命令+參數+指紋文件庫  自動對比

 

這樣更容易做比較

md5sum  -c /oldboy/l/123.txt |column -t     對齊的參數

 

7.2.4 被動和沒被動的區別 

/oldboy/l/123.txt:       FAILED     被動了

/oldboy/l/1:           OK      沒被動

/oldboy/pipeima.md5:   OK

/oldboy/oldboy.txt:     OK

第8章 給予用戶權限

8.1    visudo  ==== vi /etc/sudoers 

visudo  自帶檢查功能

 

8.2 sudo  給普通用戶臨時成為root 提供機會    普通用戶可以臨時以root身份運行某個命令 

查看自己的權限: sudo -l

 

8.3  Root用戶編輯 visudo  進入授權模式

8.3.1 如何進行授權

給oldboy用戶 授權兩個命令 ls touch

#oldboy  ALL=(ALL)  /bin/ls, /bin/touch

$1是給哪個用戶權限,$2是全部的意思,$3是把這個命令的絕對路徑加上

 

    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

  用戶oldboy可以在oldboyedu-lnb上運行以下命令: (ALL) /bin/ls, /bin/touch

如果沒有權限的用戶被授予權限使用命令前不加sudo則無效,權限被拒絕

 

8.3.2  sudo -l  #查看自己有的sudo權限 

sudo ls /root

8.3.3 給oldboy用戶授予權限/bin 下所有命令  

oldboy  ALL=(ALL)       /bin/*  不安全怎么辦?

 

 

8.3.4 給oldboy用戶授予權限/bin 下所有命令  排除某個命令或參數 

[root@oldboy ~]# grep oldboy /etc/sudoers  

oldboy  ALL=(ALL)       /bin/*, !/bin/su

             排除su 切換用戶命令

#需要什么 給什么命令 這樣安全                                

 

8.4 運維人員自己用 全部用戶並且不需要輸入當前用戶密碼

[root@oldboyedu-lnb ~]# grep oldboy /etc/sudoers  

oldboy  ALL=(ALL)       ALL

 

 

[root@oldboyedu-lnb ~]# grep oldboy /etc/sudoers  

oldboy                 ALL=(ALL)                     NOPASSWD: ALL

用戶   可以在所有服務器使用sudo=(你可以成為誰)         命令

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM