用戶、組、權限 等相關命令

用戶、組、文件權限屬性

1、用戶和組的配置文件

在Linux中用戶和組的配置文件主要為:
/etc/passwd  :存放用戶及其屬性的信息(名稱、GID、UID)
/etc/group   :存放組及其屬性信息
/etc/shadow  :存放用戶密碼及其相關屬性
/etc/gshadow :存放組密碼及其相關屬性

(1)、/etc/passwd的格式

root:x:0:0:root:/root:/bin/bash 
分別表示為:用戶名 :密碼 : UID : GID : 描述信息 : 家目錄 : shell類型

(2)、/etc/shadow的格式

root::17361:0:99999:7:::
分別表示為:用戶名 : 密碼 : 距1970年天數 : 密碼最短有效期 : 最長有效期 : 提前通知天數 : 過期天數 : 賬戶有效期
其中密碼部分為:
$6$1C6dXZDTp.Kccbji$8K.gFoDfNtFONEoWV5I9s87Fun6kw2NSlQqIEsrNblzrfSydSXQ9We3MW/6Ow1KPuI4xtZjPDffOY1j3Ccg9x.
"6":表示其算法為sha512
"1C6dXZDTp.Kccbji"表示系統隨機生成的隨機數用于密碼中增加密碼的安全性
最后一部分為:加密生成的最終的密碼     

在密碼最前面如有"!"則代表賬戶被鎖定,不能登錄
eg:tcpdump:!!:17361::::::

(3)、/etc/groupd的格式

root:x:0:分別表示為:用戶名 : 組密碼(X表示) : GID : 附加組

2、用戶和組的相關命令

(1)useradd 添加用戶

useradd  [options]  username
     -u UID :指定用戶的UID
     -g GID :指定用戶的GID
     -o     :檢查ID的唯一性
     -c     :用戶的注釋信息
     -s     :shell類型
     -G group:為用戶添加附加組(組需事先存在)
     -r     :添加系統組
                        CentOS 6  系統ID:0-499 ,其他用戶ID:500-60000
                        CentOS 7  系統ID:0-999 ,其他用戶ID:1000-60000
創建用戶時的默認設置文件:/etc/default/useradd    
當用戶被創建時用戶的家目錄會自動生成與/etc/skel目錄下相同的文件
/etc/login.defs目錄下為用戶登錄時的屬性默認設置,可通過更改文件設定來改變包括用戶有效期、UID、GID以及加密算法等在內的配置信息

(2)usermod 用戶屬性修改

usermod [options] username 
     -u UID :修改新的UID
     -g group :新的基本組
     -aG group :增加新的附加組至用戶
     -md home :創建新的家目錄,并移動原家目錄數據至新家目錄
     -s shell :更改shell
     -c "comment" :修改注釋信息
     -l login_name:更改登錄名稱
     -L username :鎖定指定用戶,在/etc/shadow 密碼列增加"!"
     -U username :解鎖指定用戶
     -e YY-MM-DD :指定用戶賬戶過期時間

(3)userdel 刪除指定用戶

userdel [options] username
     -r :將指定用戶信息全部刪除
     -f :強制刪除

批量創建用戶及更改口令

1、批量創建用戶
     需要事先創建和/etc/passwd格式一樣的文件,如user.txt
     命令newusers  user.txt 可以批量創建user.txt內的用戶,但創建后用戶家目錄下會缺少一些文件,可以
     去/etc/skel目錄下復制過來使用。
2、批量更改口令
     先創建文本passwd.txt內容格式如:username:passwd 
     執行命令cat passwd | chpasswd 將文本中的用戶與密碼設定成功

(4)groupadd、groupmod、groupdel 創建組、修改組、刪除組

group [options] groupname
     -g GID :設定組ID
     -r     :創建系統組
                       CentOS 6  系統ID:0-499 ,其他用戶ID:500-60000
                       CentOS 7  系統ID:0-999 ,其他用戶ID:1000-60000
groupmod [options] group 
     -n groupname :更改新的組名
     -g GID       :新的GID
groupdel :刪除組,若刪除的組為其他組的主組則不能刪除。

(5)passwd 修改指定用戶的密碼

passwd [options] username 
     -l :鎖定指定用戶
     -u :解鎖指定用戶
     -e :用戶下次登錄強制修改密碼
     --stdin :接受標準輸入

(6)gpasswd 更改組密碼

gpasswd [options] group 
     -a username:將用戶添加到指定的組
     -d username:從指定的組中將用戶刪除
     -A username:設置有管理權限的列表

(7)groupmems

groupmems [options] 
     -g group :指定要操作的組
     -a username :指定用戶加入組
     -d username :從組中刪除用戶
     -p :清空所有成員
     -l :顯示組列表

3、文件權限屬性

再打開文件和目錄時顯示其詳細信息如下:

(1)文件屬性信息

-rw-r--r--. 1 root mage 1738 Jul 19 19:18 /etc/passwd
其中:
第一位是文件的類型:
                     - :普通文件
                     -d:目錄
                     -c:字符設備
                     -b:塊設備
                     -l:連接文件
                     -s:套接字
                     -p:管道文件
rw-r--r--為文件的權限:r(讀)、w(寫)、x(執行)、-(無)
                     前三位:為文件所屬主的權限        
                     中三位:為文件所屬組的權限
                     后三位:為文件其他人的權限
 1 root mage         
                     1:為其鏈接數
                     root:為其屬主
                     mage:為其屬組
1738 Jul 19 19:18    
                     1738:為其文件的大小,單位默認為K
                     Jul 19 19:18 :為其訪問時間
/etc/passwd          :為其文件路徑

(2)屬性更改

chown 設置文件的屬主、屬組
     chown [OPTION]... [OWNER][:[GROUP]] FILE...
     chown user1:group1 file  更改文件file的屬主以及屬組
     chown user1:       file  只更改文件file的屬主
     chown      :group1 file  只更改文件的屬組
     chown -R                 遞歸更改
chmod 設置文件的權限屬性
     chmod [WHO] [OPTION]... MODE[,MODE]... FILE...
     [who]   : user、group、other
     [option]: + 增加 
               - 去除
               = 賦值為
               a 所有(all)
     [mode]  : r、w、x、X(作用在目錄上,配合-R使用會將目錄下的除文件以
                          外的目錄加上x執行權限)
eg : chmod u+rw  file 將file文件加上rw權限
*注意:Linux系統對于目錄中的文件來說,文件能否被用戶刪除與文件本身的權限無
       關,而與文件的父目錄有關,當用戶訪問父目錄具有w(寫)權限時才能夠將
       文件刪除

(3)特殊權限 suid、sgid、sticky

suid (作用在可執行的二進制文件上): 訪問者會繼承文件所有者的權限
     (用s表示)
sgid (作用在可執行的二進制文件上): 訪問者會繼承文件所屬組的權限
     (用s表示)
     (作用在目錄上)              : 目錄下新建的文件的所屬組會繼承目錄的
                                   所屬組(同屬一個組的成員可以新建、
                                   互相更改及刪除文件) 
sticky (作用在目錄上)            : 在一個公共的目錄上每個人都可以創建、
       (用t表示)                   刪除自己文件,但不能刪除別人的文
                                   件,只有所有者能夠刪除

eg : 
[root@Centos6 /app]#chmod u+s passwd
-rwSr-xr-x. 1 root root  1664 Jul 19 02:57 passwd  為passwd文件加上suid權限  這里說明:若文件權限最初無x(執行權限)則為S,反之為s
[root@Centos6 /app]#chmod g+s passwd
-rw-r-sr-x. 1 root root  1664 Jul 19 02:57 passwd  為passwd文件加上sgid權限
[root@Centos6 /app]#chmod o+t passwd
-rw-r-xr-t. 1 root root  1664 Jul 19 02:57 passwd  為passwd文件加上sticky權限

(4)訪問控制列表(ACL)

在現實的生產中我們通過更改權限的命令只能設定群體的用戶,但是我們卻想要特定的文件只能某個用戶訪問或者拒絕其訪問這時就需要ACL來實現除了所有者、所屬組和其他人,可以對更多的特定用戶設置權限了

setfacl (set file acl) 設定文件ACL權限
     -m 設定權限
     -x 取消權限
     -R 遞歸操作
     -k 清空默認acl
     -b 徹底刪除acl權限,包括mask
eg: 
     setfacl -m u:user:r  file  設定文件file對user只有r(讀)權限
     setfacl -m u:user:rx dir   設定目錄對于user來說,在目錄下新建文
                                件時默認具有rx權限
     setfacl -m g:group:w dir   設定目錄dir對group有寫權限     
[root@Centos6 /app]#setfacl -m u:ymd:rx passwd
-rw-r-xr-x+ 1 root root  1664 Jul 19 02:57 passwd  設定文件ACL權限后有"+" 為ymd用戶對passwd文件設定rx權限
[root@Centos6 /app]#getfacl passwd      getfacl 查看設定的權限
# file: passwd
# owner: root
# group: root
user::rw-        所屬主
user:ymd:r-x     自定義用戶
group::r-x       所屬、其表現出來的權限實際為mask的權限
mask::r-x        限制最高權限
other::r-x       其他人

備份與恢復ACL
getfacl -R /file > backup.txt  將文件file備份到backup.txt
setfacl --restore backup.txt   通過backup.txt恢復acl

原創文章,作者:M25_ymd,如若轉載,請注明出處:http://www.www58058.com/83133

(0)
M25_ymdM25_ymd
上一篇 2017-07-29 16:11
下一篇 2017-07-29 17:01

相關推薦

  • Linux基礎小模塊

    1.基礎知識小塊:shell 由shell程序的自帶命令:即為內置命令(builtin) 獨立的可執行程序文件、文件名 :即為外部命令  [root@localhost~]#ls      ~用戶當前所在目錄  #:命令提示符(管理員帳號root)  $:普通用戶   &nbsp…

    Linux干貨 2016-08-10
  • LVM創建實例及相關注釋

    LVM創建    pv—>vg—->lv—->快照 創建前準備了四塊1g硬盤分別為:sdb  sdc sdd  sde,并分別給四塊盤劃分了1G的空間,并指定了分區系統類型為8e(即Linux LVM) [root@localhost ~]# fdisk /dev/…

    Linux干貨 2015-06-08
  • 計劃任務

    作業管理: Linux的作業控制(job )     前臺作業:通過終端啟動,且啟動后一直占據終端;     后臺作業:可通過終端啟動,但啟動后即轉入后臺運行(釋放終端) 如何讓作業運行于后臺?     (1) 運行中的…

    Linux干貨 2016-09-08
  • linux入門

    linux入門 Centos中分root用戶和普通用戶,root為超級管理員,幾乎具有所有的系統控制 剛進入linux系統,Ctrl+Alt+F[1-6]可以切換虛擬終端  (tty) 圖形終端:CentOS 6: Ctrl + Alt + F7       CentOS 7:在哪個終端啟動,即位于哪個虛擬終端 偽終端…

    Linux干貨 2017-02-16
  • ACL權限管理練習

    ACL簡介;
    權限管理練習

    2017-09-11
  • Mysql備份III

    Mysql備份III Mysqldump和mysqldumper A備份和恢復所有庫 $ time mysqldumo –all-databases > /mysql/backup/date.time.database.dump.sql $ echo $? $ ls&nbs…

    Linux干貨 2016-06-09
欧美性久久久久