Linux 用戶賬號與權限管理


CentOS-Logo

Linux中,如何管理用戶、管理權限?請看下文,謝謝配合。


用戶、組概述

用戶分類

  • 超級用戶:root,人為交互最高權限用戶,system為最高權限用戶。

  • 普通用戶:通過管理管理員創建,權限受到一定限制。

  • 程序用戶:不允許登陸,維持系統或某個程序的正常運行。

用戶配置文件

  • /etc/passwd:包含用戶賬號的基本信息
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
賬號名稱:密碼占位符:UID:GID:用戶說明:家目錄:登陸shell
  • /etc/shadow:包含用戶賬號的密碼信息(影子文件)
[root@localhost ~]# head -1 /etc/shadow
root:$6$4/ne8o5V38hiA2jr$6SclA1hllj8FPXqyMtfof5T4NMH1gJeDQ31AfoR4wapYPBQWlbZQKKPkuUBWoqgwA1GsuHW.1lTg59tyfrwvC/::0:99999:7:::
賬號名稱:密碼信息:上次修改密碼的時間:密碼最短有效天數:密碼最長有效天數:提前7天警告密碼將過期:密碼過期后多少天內禁用此用戶:賬號失效時間:保留字段
  • 個別詳細解釋

密碼信息:MD5加密的密碼字串信息;為*!!時,被鎖定,不能登陸;為空,無密碼。

上次修改密碼的時間:表示從1970年1月1日到最近一次修改密碼那天所間隔的天數。

密碼最短有效天數:修改密碼后,最少經過多少天才能再次修改密碼。默認為0,不限制。

密碼最長有效天數:修改密碼后,經過該天數,必須再次修改密碼。默認為99999,不限制。

提前7天警告密碼將過期:默認值為7

賬號失效時間:指定用戶賬號作廢的天數,從1970年1月1日起計算。

組分類

  • 基本組(私有組):伴隨用戶的創建而創建,與用戶同名。用戶只能屬於一個基本組,在/etc/passwd中查看。

  • 附加組(公共組):用戶可屬於多個附加組,在/etc/group中查看。

組配置文件

  • /etc/group:包含組的基本信息

  • /etc/gshadow:包含組的密碼信息

1.查詢root組包含哪些用戶

[root@localhost ~]# grep "^root" /etc/group
root:x:0:

2.查詢那些組包含root用戶

[root@localhost ~]# grep "root" /etc/group
root:x:0:

UID 和 GID

  • UID:用戶識別號
用戶 UID 范圍
root 0
程序用戶 1 ~ 999
普通用戶 1000 ~ 60000
  • GID:組識別號

用戶、組管理

useradd

  • 添加用戶賬號

-u:指定UID
-d:指定家目錄位置
-e:指定賬戶失效時間,YYYY-MM-DD天數
-g:指定基本組名稱或GID
-G:指定附加組
-M:不創建宿主目錄
-s:指定用戶的登陸shell/bin/bash可登錄,/sbin/nologin不可登錄。

[root@localhost ~]# useradd  -d /zhangsan zhangsan
[root@localhost ~]# useradd -e 2020-01-01 -s /sbin/nologin ftpuser

用戶賬號初始配置文件

  • 來源:模板目錄/etc/skel
  • 用途:可以做一些自動運行的后台管理任務
[root@localhost ~]# ls -a /zhangsan/
.  ..  .bash_logout  .bash_profile  .bashrc

.bash_logout:每次退出登陸時執行
.bash_profile:用戶每次登陸時被執行
.bashrc:每次加載/bin/bash時執行,包括登錄系統。

  • 每次登出時清空歷史記錄
[root@localhost ~]# vi .bash_logout
# ~/.bash_logout
history -c

passwd

  • 設置、更改密碼

-d:清空賬戶密碼
-l:鎖定賬戶
-S:查看賬戶狀態
-u:解鎖賬戶

[root@localhost ~]# passwd zhangsan
Changing password for user zhangsan.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd -l zhangsan
Locking password for user zhangsan.
passwd: Success
[root@localhost ~]# passwd -S zhangsan
zhangsan LK 2019-08-20 0 99999 7 -1 (Password locked.)
[root@localhost ~]# passwd -u zhangsan
Unlocking password for user zhangsan.
passwd: Success
[root@localhost ~]# passwd -S zhangsan
zhangsan PS 2019-08-20 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@localhost ~]# passwd -d zhangsan
Removing password for user zhangsan.
passwd: Success

usermod

  • 修改賬戶屬性,參數類似useradd

-u:修改用戶UID
-d:修改家目錄位置
-e:修改賬號失效時間
-s:指定用戶的登陸shell
-l:更改用戶登陸名稱
-L:鎖定賬戶
-U:解鎖賬戶
-g:修改用戶的基本組(或GID
-G:修改用戶的附加組(或GID

[root@localhost ~]# tail -1 /etc/passwd
zhangsan:x:1001:1001::/zhangsan/:/bin/bash
[root@localhost ~]# mv /zhangsan/ /home/
[root@localhost ~]# usermod -d /home/zhangsan/ zhangsan
[root@localhost ~]# tail -1 /etc/passwd
zhangsan:x:1001:1001::/home/zhangsan/:/bin/bash
[root@localhost ~]# usermod -L zhangsan
[root@localhost ~]# passwd -S zhangsan
zhangsan LK 2019-08-20 0 99999 7 -1 (Password locked.)
[root@localhost ~]# usermod -U zhangsan
[root@localhost ~]# passwd -S zhangsan
zhangsan PS 2019-08-20 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@localhost ~]# usermod -l lisi zhangsan
[root@localhost ~]# tail -1 /etc/passwd
lisi:x:1001:1001::/home/zhangsan/:/bin/bash

userdel

  • 刪除用戶賬號

-r:同時刪除家目錄

[root@localhost ~]# userdel -r zhangsan
[root@localhost ~]# ls /home/zhangsan
ls: cannot access /home/zhangsan: No such file or directory

groupadd

  • 添加組賬號

-g:指定GID

[root@localhost ~]# groupadd ftpusers
[root@localhost ~]# tail -1 /etc/group
ftpusers:x:1001:
[root@localhost ~]# groupadd -g 1005 sftpusers
[root@localhost ~]# tail -2 /etc/group
ftpusers:x:1001:
sftpusers:x:1005:

gpasswd

  • 添加、設置、刪除組成員

-a:添加組成員
-d:刪除組成員
-M:指定組成員,多個以,分隔,會覆蓋原有的。

[root@localhost ~]# useradd ftp1
[root@localhost ~]# useradd ftp2
[root@localhost ~]# useradd ftp3
[root@localhost ~]# useradd ftp4
[root@localhost ~]# useradd ftp5
[root@localhost ~]# echo "000000" | passwd --stdin ftp1
Changing password for user ftp1.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "000000" | passwd --stdin ftp2
Changing password for user ftp2.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "000000" | passwd --stdin ftp3
Changing password for user ftp3.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "000000" | passwd --stdin ftp4
Changing password for user ftp4.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "000000" | passwd --stdin ftp5
Changing password for user ftp5.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# gpasswd -a ftp1 ftpusers
Adding user ftp1 to group ftpusers
[root@localhost ~]# gpasswd -a ftp2 ftpusers
Adding user ftp2 to group ftpusers
[root@localhost ~]# groups ftp1
ftp1 : ftp1 ftpusers
[root@localhost ~]# groups ftp2
ftp2 : ftp2 ftpusers
[root@localhost ~]# grep "^ftpusers" /etc/group
ftpusers:x:1001:ftp1,ftp2
[root@localhost ~]# gpasswd -M ftp3,ftp4,ftp5 ftpusers
[root@localhost ~]# grep "^ftpusers" /etc/group
ftpusers:x:1001:ftp3,ftp4,ftp5

groupdel

  • 刪除組賬號
[root@localhost ~]# groupdel sftpusers

用戶、組查詢

id

  • 查詢用戶賬號的身份標識

id [username]

[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)

groups

  • 查詢用戶賬號所屬的組

groups [username]

[root@localhost ~]# groups root
root : root

finger

  • 查詢用戶賬號的登陸屬性

finger [username]

[root@localhost ~]# finger root
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
On since Tue Aug 20 16:58 (CST) on pts/0 from 192.168.128.1
   6 seconds idle
No mail.
No Plan.

可能需要安裝:yum install finger -y

w、who、users

  • 查詢當前主機的用戶登陸情況
[root@localhost ~]# w
 17:35:34 up  2:48,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.128.1    16:58    6.00s  0.21s  0.01s w
[root@localhost ~]# who
root     pts/0        2019-08-20 16:58 (192.168.128.1)
[root@localhost ~]# users
root

last

  • 查詢最近登陸的用戶信息
[root@localhost ~]# last
root     pts/0        192.168.128.1    Tue Aug 20 17:36   still logged in
reboot   system boot  3.10.0-693.el7.x Tue Aug 20 17:36 - 17:37  (00:01)
reboot   system boot  3.10.0-693.el7.x Fri Aug 16 17:18 - 17:21  (00:03)

wtmp begins Fri Aug 16 17:18:08 2019

文件、目錄權限及歸屬

概述

[root@promote ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 846 Aug 16 17:15 /etc/passwd

-:文件類型,-普通文件、d目錄、b塊設備文件、c字符設備文件、l鏈接文件。
rw-:User,屬主用戶對文件的訪問權限。
r--:Group,屬組內成員對文件的訪問權限。
r--:Other,其他用戶對文件的訪問權限。
.:與SELinux有關
root:文件屬主
root:文件屬組

chmod

  • 設置文件、目錄權限

chmod [ugoa] [+-=] [rwx] 文件或目錄

ugoau宿主,g屬組,o其他用戶,a所有用戶。
+-=+增加權限,-減少權限,=設置對應的權限。
rwxr讀,w寫,x執行。

[root@localhost ~]# ls -l test.txt
-rw-r--r--. 1 root root 0 Aug 20 18:19 test.txt
[root@localhost ~]# chmod g+w,o+w test.txt
[root@localhost ~]# ls -l test.txt
-rw-rw-rw-. 1 root root 0 Aug 20 18:19 test.txt

chmod nnn 文件或目錄

nnn:代表ugo分別設置的權限值

r w x
4 2 1
[root@localhost ~]# chmod 644 test.txt
[root@localhost ~]# ls -l test.txt
-rw-r--r--. 1 root root 0 Aug 20 18:19 test.txt

chown

  • 設置文件、目錄的歸屬

chown [選項] [屬主][:[屬組]] 文件或目錄

-R:遞歸修改

[root@localhost ~]# mkdir /opt/test
[root@localhost ~]# touch /opt/test/test{1,2}.txt
[root@localhost ~]# ls -lR /opt/
/opt/:
total 0
drwxr-xr-x. 2 root root 40 Aug 20 18:26 test

/opt/test:
total 0
-rw-r--r--. 1 root root 0 Aug 20 18:26 test1.txt
-rw-r--r--. 1 root root 0 Aug 20 18:26 test2.txt
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# echo "000000" | passwd --stdin zhangsan
Changing password for user zhangsan.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# chown -R zhangsan /opt/test/
[root@localhost ~]# ls -lR /opt/
/opt/:
total 0
drwxr-xr-x. 2 zhangsan root 40 Aug 20 18:26 test

/opt/test:
total 0
-rw-r--r--. 1 zhangsan root 0 Aug 20 18:26 test1.txt
-rw-r--r--. 1 zhangsan root 0 Aug 20 18:26 test2.txt
[root@localhost ~]# chown -R :zhangsan /opt/test/
[root@localhost ~]# ls -lR /opt/
/opt/:
total 0
drwxr-xr-x. 2 zhangsan zhangsan 40 Aug 20 18:26 test

/opt/test:
total 0
-rw-r--r--. 1 zhangsan zhangsan 0 Aug 20 18:26 test1.txt
-rw-r--r--. 1 zhangsan zhangsan 0 Aug 20 18:26 test2.txt
[root@localhost ~]# chown -R root:root /opt/test/
[root@localhost ~]# ls -lR /opt/
/opt/:
total 0
drwxr-xr-x. 2 root root 40 Aug 20 18:26 test

/opt/test:
total 0
-rw-r--r--. 1 root root 0 Aug 20 18:26 test1.txt
-rw-r--r--. 1 root root 0 Aug 20 18:26 test2.txt

umask

  • 指定用戶在新建文件或目錄時的權限默認值,指默認值需要減掉的權限。777-022=755,666-022=644。

默認:umask 022


免責聲明!

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



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