用戶、用戶組及權限管理

用戶:UID, /etc/passwd
用戶組:GID, /etc/group
影子口令:
用戶: /etc/shadow
用戶組: /etc/gshadow

用戶分類:

  • 管理員:0(UID)
  • 普通用戶:1-65535
  • 系統用戶:1-499
  • 一般用戶:500-60000

用戶組類別:

  • 管理員組
    普通組:
    • 系統組和一般組

用戶組類別也可以這樣分類:

  • 私有組:創建用戶時,如果沒有爲指定所屬的組,系統會自動爲其創建一個與用戶名同名的組
  • 基本組:用戶的默認組
  • 附加組,額外組:默認組以外的其它組

用戶管理:

useradd,userdel,usermod,passwd,chsh,chfn,finger,id,chage

組管理:

groupadd,groupdel,groupmod,gpasswd

權限管理:

chown,chgrp,chmod,umask

權限

進程的安全上下文

進程是以用戶的身份運行的,當進程訪問文件是,先檢查發起進程的用戶和用戶所屬的組,在檢查文件的的屬主和屬組,如果文件的屬組就是發起進程的用戶則引用前三位的權限,如果文件的屬組和發起進程的用戶的屬組相同則應用中三位的權限,都不是的話及應用右三位的權限

文件
r:可讀,可以使用類似cat等命令查看文件內容
w:可寫,可以編輯或刪除此文件
x:可執行,eXacutable,可以命令提示符下當作命令提交給內核運行
目錄

r:可以對此目錄執行ls以列出的所有文件
w:可以在此目錄創建文件
x:可以使用cd切換進此目錄,也可以使用ls -l查看內部文件的詳細信息


useradd命令添加用戶

選項和參數說明:

  • -u:指定用戶的UID
  • -s:指定用戶的shell (系統可支持的shell在/etc/shells 下)
  • -r:創建一個系統用戶(UID範圍centos6爲1-499,centos7爲1-999可在/etc/login.defs中查看)
  • -c:關於登錄時的簡短描述 後跟描述的字符串
  • -d:自定義用戶的家目錄 後跟家目錄路徑
  • -e:用戶賬戶將被禁用的期限格式爲 YYYY-MM-DD
  • -f:表示過期後徹底禁用的天數 0表示馬上禁止 -1表示禁用這個功能
  • -G[GROUP1],[GROUP2],… : 添加用戶的附加組多個組用“,”隔開
  • -M:不創建用戶的家目錄 默認複製/etc/skel/目錄下的文件到/home/USERNAME/下作爲USERNAME的家目錄 都是隱藏文件
  • -N;不創建同名的私有組
  • 修改創建新用戶的默認值:(D是default) 命令修改只對當前shell有效
    • useradd -D [選項],後面如果跟選項,表示查看新創建的用戶值

練習:1、添加用戶

[root@localhost ~]# adduser shitou            #添加用戶
[root@localhost ~]# ls /home/                 #查看家目錄
shitou  test
[root@localhost ~]# id shitou                 #顯示用戶的id和組id
uid=1001(shitou) gid=1001(shitou) groups=1001(shitou)
[root@localhost ~]# cat /etc/passwd | grep shitou
shitou:x:1001:1001::/home/shitou:/bin/bash
[root@localhost ~]# cat /etc/group | grep shitou
shitou:x:1001:

[root@localhost ~]# adduser -M liming         #添加用戶不帶家目錄
[root@localhost ~]# ls /home/
shitou  test

[root@localhost ~]# adduser -g shitou liu     #給指定組添加用戶
[root@localhost ~]# id liu
uid=1003(liu) gid=1001(shitou) groups=1001(shitou)

[root@localhost ~]# useradd li                #添加用戶,給用戶添加密碼
[root@localhost ~]# passwd li
Changing password for user li.
密碼******

   2、批量添加用戶

#!/bin/bash            #批量添加用戶
#

declare -i sum=0
for user in `cat /root/userlist.txt`;do
  id $user >/dev/null 2>&1
    if [ $? -eq 0 ];then
      echo "the user $user is exist."
    else
      useradd $user
      echo $user"@#$" | passwd --stdin $user &> /dev/null
      let sum+=1
    fi
done
  echo "$sum sucessed."

usermod命令,用於修改用戶信息

  • -u:修改UID
  • -g:修改用戶的基本組
  • -d:修改用戶的家目錄 原來的家目錄文件不會轉移至新目錄 要想移動要與參數 -m 一起使用
  • -G:修改用戶的附加組原來的附加組會被刪除 要想追加附加組使用參數 -a
  • -c:修改註釋信息
  • -e:修改過期日期
  • -f:修改過期後可使用的天數

[root@localhost shell]# usermod -a -G 1001 liu           #給用戶添加附加組
[root@localhost shell]# id liu
uid=1003(liu) gid=1003(liu) groups=1003(liu),1001(shitou)

chmod更改文件權限

chmod mode file ,...

  • --reference=/path/to/somefile file,...
  • -R:修改目錄及內部文件的屬主
  • chmod 用戶類別+|-mode file,...

passwd用戶密碼管理命令

參數

  • -k, --keep-tokens keep non-expired authentication tokens用戶過期後仍能使用
  • -d, --delete delete the password for the named account (root only)刪除用戶密碼,僅能以root用戶操作
  • -l, --lock lock the password for the named account (root only)鎖定用戶無權更改密碼,不可更
  • -u, --unlock unlock the password for the named account (root only)解除用戶無權更改密碼
  • -e, --expire expire the password for the named account (root only)
  • -f, --force force operation
  • -x, --maximum=DAYS maximum password lifetime (root only)
  • -n, --minimum=DAYS minimum password lifetime (root only)
  • -w, --warning=DAYS number of days warning users receives before password expiration (root only)
  • -i, --inactive=DAYS number of days after password expiration when an account becomes disabled (root only)
  • -S, --status report password status on the named account (root only)
  • --stdin read new tokens from stdin (root only)

chage用戶密碼有效期管理

  • -d最近一次的修改時間
  • -E過期時間,chage -E -1 username讓用戶永久有效
  • -I非活動時間
  • -m最短使用期限
  • -M最長使用期限
  • -W警告時間

pwck命令檢查用戶密碼文件的完整性

grpck命令檢查用戶組密碼文件的完整性

groupadd添加用戶組

主要參數

  • -g gid:指定組ID號
  • -o:允許組ID號,不必惟一
  • -r:加入組ID號,低於499系統賬號
  • -f:加入已經有的組時,發展程序退出

groupdel刪除用戶組

groupmod修改用戶組信息

  • -g修改組id
  • -n修改組名

gpasswd用戶組密碼設置

chown改變文件所有者和組

  • -R:修改目錄及內部文件的屬主
    chown --reference=/path/to/somefile file,...(屬主屬組一起改爲somefile文件一樣的擁有者和組)
    也可以使用 chown username:grpname

chgrp與chown相似

su用戶切換命令

參數說明

  • -f , –fast:不必讀啓動文件(如 csh.cshrc 等),僅用於csh或tcsh兩種Shell。
  • -l , –login:加了這個參數之後,就好像是重新登陸一樣,大部分環境變量(例如HOME、SHELL和USER等)都是以該使用者(USER)爲主,並且工作目錄也會改變。如果沒有指定USER,缺省情況是root。
  • -m, -p ,–preserve-environment:執行su時不改變環境變數。

特殊權限SUID,SGID、Sticky

  • SUID:運行程序時,相應進程的屬主是程序文件自身的屬主,而並非是啓動者的屬主
  • SGID:運行程序時,相應進程的屬組是程序文件自身的屬組,而並非是啓動者所屬的基本組
發佈了38 篇原創文章 · 獲贊 14 · 訪問量 6397
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章