Linux 用戶管理 與 文件權限

Linux 用戶管理 與 文件權限

用戶組操做

1.groupadd命令html

groupadd [-g -o] gid  group
各個選項具體含義以下:
-g:指定新建用戶組的GID號,該GID號必須惟一,不能和其它用戶組的GID號重複。
-o:通常與-g選項同時使用,表示新用戶組的GID能夠與系統已有用戶組的GID相同。

//新增group sheyou gid=1020
groupadd -g 1020 sheyou
//查看組信息
more /etc/group|grep  linuxfans
//建立了一個用戶user1,同時指定user1的主用戶組爲group1,附加用戶組爲group2和group3
useradd -g group1 -G group2,group3 user1
//用戶查看
more /etc/group|grep user1
//設置密碼
passwd user1

2.newgrp命令mysql

//用戶切換組
newgrp group2

3.groupdel命令linux

當須要從系統上刪除用戶組時,可用groupdel指令來完成這項工做。若是該用戶組中仍包括某些用戶,則必須先刪除這些用戶後,而後才能刪除用戶組。
例如:刪除linuxfans這個用戶組
groupdel  linuxfans

用戶操做

1.useradd創建用戶的過程sql

useradd不加任何參數建立用戶時,系統首先讀取添加用戶配置文件/etc/login.defs和/etc/default/useradd,根據這兩個配置文件中定
義的規則添加用戶,而後會向/etc/passwd和/etc/group文件添加用戶和用戶組記錄,同時/etc/passwd和/etc/group對應的加密文件也會
自動生成記錄,接着系統會自動在/etc/default/useradd文件設定的目錄下創建用戶主目錄,最後複製/etc/skel目錄中的全部文件到新用戶
的主目錄中,這樣一個新的用戶就創建完成了。

2.useradd的使用語法shell

useradd語法的通常格式爲:

useradd  [-u uid [-o]] [-g group] [-G group,...]
                [-d home] [-s shell] [-c comment]
                [-f inactive] [-e expire ] name
各個選項具體含義以下:
 -u uid:即用戶標識號,此標識號必須惟一。
 -g group:指定新建用戶登陸時所屬的默認組,或者叫主組。此羣組必須已經存在。
 -G group:指定新建用戶的附加組,此羣組必須已經存在。附加組是相對與主組而言的,當一個用戶同時是多個組中的成員時,
            登陸時的默認組成爲主組,而其它組稱爲附加組。
 -d home:指定新建用戶的默認主目錄,若是不指定,系統會在/etc/default/useradd文件指定的目錄下建立用戶主目錄。
 -s shell:指定新建用戶使用的默認shell,若是不指定,系統以/etc/default/useradd文件中定義的shell做爲新建用戶的默認shell。
 -c comment:對新建用戶的說明信息。
 -f inactive:指定賬號過時多長時間後永久停用。當值爲0時賬號則馬上被停權。而當值爲-1時則關閉此功能,預設值爲-1
 -e expire:指定用戶的賬號過時時間,日期的指定格式爲MM/DD/YY。
 name:指定須要建立的用戶名。

3.usermod的使用語法centos

usermod用來修改用戶的帳戶屬性信息,使用語法以下:
usermod  [-u uid [-o]] [-g group] [-G group,...]
            [-d 主目錄 [-m]] [-s shell] [-c 註釋] [-l 新名稱]
            [-f 失效日期] [-e 過時日期][-L|-U] Name
各個選項具體含義以下:
 -u uid:指定用戶新的UID值,此值必須爲惟一的ID值,除非用-o選項。
 -g group:修改用戶所屬的組名爲新的用戶組名,此用戶組名必須已經存在。
 -G group:修改用戶所屬的附加組。
 -d 主目錄:修改用戶登陸時的主目錄。
 -s shell:修改用戶登陸系統後默認使用的shell
 -c 註釋:修改用戶的註釋信息。
 -l 新名稱:修改用戶賬號爲新的名稱。
 -f 失效日:賬號過時多少天后永久禁用。
 -e 過時日:增長或修改用戶帳戶的過時時間。
 -L:鎖定用戶密碼,使密碼無效。
 -U:解除密碼鎖定。
 Name:要修改屬性的系統用戶。

4.userdel的使用語法bash

Userdel用來刪除一個用戶,若指定「-r」參數不但刪除用戶,同時刪除用戶的主目錄以及目錄下的全部文件。語法格式爲:
userdel [-r][用戶賬號]

5.應用舉例oracle

1)添加一個用戶mylinux,指定所屬的主用戶組爲fanslinux,附加用戶組爲linuxfans,同時指定用戶的默認主目錄爲/opt/mylinux測試

[root@localhost ~]# useradd -g fanslinux -G linuxfans -d /opt/mylinux mylinux
[root@localhost ~]# more /etc/passwd|grep mylinux
mylinux:x:523:1030::/opt/mylinux:/bin/bash
[root@localhost ~]# more /etc/group|grep mylinux
linuxfans:x:1020:mylinux

2)添加一個用戶test_user,指定UID爲686,默認的shell爲/bin/csh,讓其歸屬爲用戶組linuxfans和fanslinux,同時添加對此用戶的描述ui

[root@localhost ~]# useradd  -u 686 -s /bin/csh  -G linuxfans,fanslinux  -c "This is test user" test_user
[root@localhost ~]# more /etc/passwd|grep test_user
test_user:x:686:686:This is test user:/home/test_user:/bin/csh
[root@localhost ~]# more /etc/group|grep test_user  
fanslinux:x:1030:test_user
linuxfans:x:1020:mylinux,test_user
test_user:x:686:

3)修改用戶test_user的主用戶組爲新建的組test_group1,同時修改test_user的附加組爲linuxfans和root,最後修改test_user的默認登陸shell爲/bin/bash

[root@localhost ~]# groupadd test_group1  #添加一個新的用戶組
[root@localhost ~]# more /etc/group|grep test_group1 #顯示新增用戶組的信息
test_group1:x:1031:

[root@localhost ~]# usermod -g test_group1 -G linuxfans,root -s /bin/bash test_user
[root@localhost ~]# more /etc/passwd|grep test_user   #從輸出可知,用戶的屬性已經更改                                        
test_user:x:686:1031:This is test user:/home/test_user:/bin/bash
[root@localhost ~]# more /etc/group|grep test_user   #從輸出可知,用戶組的屬性也同步更改   
root:x:0:root,test_user
linuxfans:x:1020:mylinux,test_user
test_user:x:686:

4)如何鎖定、解除用戶密碼

1.對test_user和mylinux用戶設置密碼

[root@localhost ~]# passwd  test_user
Changing password for user test_user.
New UNIX password: 
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd  mylinux
Changing password for user mylinux.
New UNIX password: 
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.

2.經過su命令切換到mylinux用戶下,而後在mylinux下再次切換到test_user用戶下,這裏的切換用戶是爲了說明一個問題:
從超級用戶root切換到普通用戶下,是不須要輸入普通用戶密碼的,系統也不會去驗證密碼。
但普通用戶之間切換是須要密碼驗證的。

[root@localhost ~]# su – mylinux  #經過su命令切換到mylinux用戶下
[mylinux@localhost ~]$ whoami      #用whoami命令查看當前用戶
mylinux
[mylinux@localhost ~]$ su - test_user  #這裏是從mylinux用戶下切換到test_user用戶下,須要輸入密碼
Password: 
[mylinux@localhost ~]$ whoami          #成功切換到test_user用戶下
test_user

3.在root用戶下執行usermod鎖定test_user的密碼,測試test_user是否還能登陸,從下面能夠看出,密碼鎖定後,出現登陸失敗。

[root@localhost ~]# usermod -L test_user  #鎖定test_user用戶的密碼
[root@localhost ~]# su - mylinux  
[mylinux@localhost ~]$ whoami
mylinux
[mylinux@localhost ~]$ su - test_user  #這裏輸入的密碼是正確的,可是提示密碼錯誤,由於密碼被鎖定了
Password: 
su: incorrect password
[mylinux@localhost ~]$ whoami
mylinux

4.test_user解除密碼鎖定,登陸正常。

[root@localhost ~]# usermod -U test_user  #解除密碼鎖定
[root@localhost ~]# su – mylinux
[mylinux@localhost ~]$ whoami
mylinux
[mylinux@localhost ~]$ su - test_user
Password: 
[test_user@localhost ~]$ whoami  #密碼鎖定解除後,test_user用戶能夠登陸系統
test_user

文件與權限的設定

所謂的文件權限,是指對文件的訪問權限,包括對文件的讀、寫、刪除、執行等,在linux下,每一個用戶都具備不一樣的權限,普通用戶只能在本身的主目錄下進行寫操做,而在主目錄以外,普通用戶只能進行查找、讀取操做,如何處理好文件權限和用戶之間的關係,是本節講述的重點。

一 查看文件的權限屬性

使用ls命令就能夠查看文件的以及目錄的權限信息,不帶任何參數的ls命令只顯示文件名稱,經過「ls –al」能夠顯示文件或者目錄的權限信息,看下面的輸出:

[root@localhost oracle]# ls -al
total 92
drwxr-xr-x   3 oracle oinstall  4096 Oct 30  2006 admin
drwxr-xr-x   2 oracle oinstall  4096 Oct 23 18:22 bin
-rwxr-xr-x   1 root   root      3939 Mar 20  2008 .createtablespace.pl
drwxr-xr-x   3 oracle oinstall  4096 Oct 30  2006 flash_recovery_area
drwxr-xr-x   2 oracle oinstall  4096 Jun 25 15:18 install
drwx------   2 oracle oinstall 16384 Jun 25 01:10 lost+found
drwxr-xr--   3 oracle oinstall  4096 Oct 30  2008 oradata
drwxr-xr-x   6 oracle oinstall  4096 Oct 30  2006 oraInventory
drwxr-xr-x   3 oracle dba       4096 Oct 28  2006 product

爲了能更詳細的介紹上面輸出中每一個屬性的含義,下圖列出了oradata文檔每列表明的含義:

下面經過具體的實例講述每列表明的含義。
1.第一列顯示文檔類型與執行權限,有十個字符組成,分爲4個部分,下面將文檔oradata權限分解,以下圖所示

接着對每一個部分解釋以下:
 文檔類型部分:
當爲「d」時,表示目錄;當爲「l」時表示軟連接;當爲「-」時表示文件;當爲「c」時表示串行端口字符設備文件;當爲「b」時表示可供存儲的塊設備文件。由此可知,oradata是一個目錄。
在接下來的三個部分中,三個字符爲一組,每一個字符的含義爲:「r」表示只讀,即read;「w」表示可寫,即write;「x」表示可執行,即execute;「-」表示無此權限,即爲空。
 User部分:
第二部分是對文檔全部者(user)權限的設定,「rwx」表示用戶對oradata目錄有讀、寫和執行的全部權限。
 Group部分:
第三部分是對文檔所屬用戶組(group)權限的設定,「r-x」表示用戶組對oradata目錄有讀和執行的權限,可是沒有寫的權限。
 Others部分:
第四部分是對文檔擁有者以外的其它用戶權限的設定,「r--」表示其它用戶或用戶組對oradata目錄只有讀的權限。
文檔的操做權限是能夠指定和更改的,經過chmod命令便可更改文件或者目錄的權限,這個將在下節講述。

2.第二列顯示的是文檔的連結數,這個連結數就是硬連接的概念,即多少個文件指向同一個索引節點,舉例以下:

[root@localhost ~]#ls -al
-rw-r--r--   1 root root 60151 Oct 25 01:01 install.log
[root@localhost ~]#ln install.log  install.log1
[root@localhost ~]#ls –al  install.log
-rw-r--r--   2 root root 60151 Oct 25 01:01 install.log
[root@localhost ~]#ln install.log  install.log2
[root@localhost ~]#ls –al  install.log
-rw-r--r--   3 root root 60151 Oct 25 01:01 install.log

從上面能夠看出,install.log文件原始的連結數是1,而後作了兩個硬連接操做,install.log文件的鏈接數變爲3,這就是鏈接數的含義。

3.第三列顯示了文檔所屬的用戶和用戶組,也就是文檔是屬於哪一個用戶以及哪一個用戶組全部,例如上面的oradata目錄,所屬的用戶爲oracle,所屬的組爲oinstall組。文件所屬的用戶和組是能夠更改的,經過chown命令就能夠修改文檔的用戶屬性。

4.第四列顯示的是文檔的大小,默認顯示的是以bytes爲單位,可是也能夠經過命令的參數修改顯示的單位,例如能夠經過「ls -sh」組合人性化的顯示文檔的大小。對於目錄,一般只顯示文件系統默認block的大小。

5.第五列顯示文檔最後一次的修改日期,一般以月、日、時、分的方式顯示,若是文檔修改時間距離如今已經很遠了,會使用月、日、年的方式顯示。

6.第六列顯示的是文檔名稱,linux下以「.」開頭的文件是隱藏文件,同理以「.」開頭的目錄是隱藏目錄,隱藏文檔只有經過ls命令的「-a」選項才能顯示。
例如上面的.createtablespace.pl文件就是一個隱藏文件。

二 利用chown改變屬主和屬組

chown就是change owner的意思,主要做用就是改變文件或者目錄的全部者,而全部者包含用戶和用戶組,其實chown就是對文件所屬的用戶和用戶組進行的一系列設置。

chown使用的通常語法爲:
[root@localhost ~]#chown [-R] 用戶名稱 文件或目錄
[root@localhost ~]#chown [-R] 用戶名稱:用戶組組名稱 文件或目錄

參數說明:

-R : 進行遞歸式的權限更改,也就是將目錄下的全部文件、子目錄都更新成爲指定的用戶組權限。經常用於變動某一目錄的狀況。
注意,在執行操做前,確保指定的用戶以及用戶組在系統中是存在的。

例子1:修改隱藏文件「.createtablespace.pl」的所屬用戶爲oracle,所屬的用戶組爲oinstall,操做以下:

[root@localhost ~]#chown oracle:oinstall .createtablespace.pl
[root@localhost ~]#ls -al  .createtablespace.pl
-rwxr-xr-x   1 oracle   oinstall      3939 Mar 20  2008 createtablespace.pl
注意,這裏要確保oracle用戶和oinstall組已經存在。

例子2:修改oradata目錄以及目錄下的全部文件的所屬用戶爲root,用戶組爲dba組,

[root@localhost ~]#chown -R root:dba oradata
drwxr-xr--   3 root dba   4096 Oct 30  2006 oradata
三 利用chmod改變訪問權限

chmod用於改變文件或目錄的訪問權限。該命令有兩種用法。一種是包含字母和操做符表達式的字符設定法;另外一種是包含數字的數字設定法。

  1. 字符設定法
    使用語法爲:

    chmod [who] [+ | - | =] [mode] 文件名

命令中各選項的含義以下:

 who表示操做對象,能夠是下面字母中的任何一個或者它們的組合。
 u 表示「用戶(user)」,即文件或目錄的全部者。
 g 表示「用戶組(group)」,即文件或目錄所屬的用戶組。
 o 表示「其餘(others)用戶」。 
 a 表示「全部(all)用戶」。它是系統默認值。
 操做符號含義以下:
 「+」表示添加某個權限。
 「-」表示取消某個權限。
 「=」表示賦予給定的權限,同時取消文檔之前的全部權限。
 mode表示能夠執行的權限,能夠是「r「(只讀)、「w」(可寫)和「x」(可執行),以及它們的組合。
 文件名能夠是以空格分開的文件列表,支持通配符。

2.舉例

修改install.log文件,使其全部者具備全部權限,用戶組和其它用戶具備只讀權限:

[root@localhost ~]# ls -al install.log
-rw------  1 root root 60151 Oct 17 16:11 install.log
[root@localhost ~]# chmod u=rwx,g+r,o+r install.log    
[root@localhost ~]# ls -al install.log             
-rwxr--r--  1 root root 60151 Oct 17 16:11 install.log
 修改/etc/fstab文件的權限,使其全部者具備讀寫權限,用戶組和其它用戶沒有任何權限:
[root@localhost ~]# ll /etc/fstab          
-rwxr--r--  1 root root 1150 Oct 23 09:30 /etc/fstab
[root@localhost ~]# chmod u-x,g-r,o-r /etc/fstab      
[root@localhost ~]# ll /etc/fstab                
-rw-------  1 root root 1150 Oct 23 09:30 /etc/fstab

3.數字設定法

首先了解一下用數字表示屬性的含義,0表示沒有任何權限,1表示有可執行權限,與上面字符表示法中的「x」有相同的含義。2表示有可寫權限,與「w」對應,4表示有可讀權限,對應與「r「。
若是想讓文件的屬主擁有讀和寫的權限,能夠經過4(可讀)+2(可寫)=6(可讀可寫)的方式來實現,那麼用數字6就表示擁有讀寫權限。
使用語法:
chmod [屬主權限的數字組合] [用戶組權限的數字組合] [其它用戶權限的數字組合] 文件名
下圖展現了數字設定法的實現原理:

上圖數字設定法含義剖析
從圖中能夠清晰的看出,「755」組合的表明含義,第一個「7」顯示了文件全部者的權限,是經過4(r)+2(w)+1(x)=7(rwx)而獲得的。第二個「5」顯示了文件所屬組的權限,是經過4(r)+0(-)+1(x)=5(rx)而獲得的,同理最後一個「5」也有相似的含義。

舉例:

某個文件mysqltuner.pl的默認權限爲600,即「-rw-------」,表示只有此文件的全部者(User)擁有讀寫權限,其它用戶(Others)和組(Group)沒有對此文件訪問的任何權限。

首先修改此文件的權限爲644,即「-rw-r--r--」,表示此文件的全部者(User)擁有讀寫權限,而其它用戶(Others)和組(Group)僅僅擁有讀的權限,操做以下:

[linux1@localhost ~]$ ls -al mysqltuner.pl 
-rw------- 1 linux1 linux1 38063 Oct 26 07:49 mysqltuner.pl
[linux1@localhost ~]$ chmod 644  mysqltuner.pl
[linux1@localhost ~]$ ls -al mysqltuner.pl     
-rw-r--r-- 1 linux1 linux1 38063 Oct 26 07:49 mysqltuner.pl

而後接着修改mysqltuner.pl文件的權限爲755,即「-rwxr-xr-x」,表示此文件的全部者(User)擁有讀寫執行權限,而其它用戶(Others)和組(Group)擁有對此文件的讀和執行權限。

[linux1@localhost ~]$ chmod 755  mysqltuner.pl 
[linux1@localhost ~]$ ls -al mysqltuner.pl     
-rwxr-xr-x 1 linux1 linux1 38063 Oct 26 07:49 mysqltuner.pl

參照博客 淺談Centos用戶權限管理

相關文章
相關標籤/搜索