centos超級用戶登錄,linux的多用戶登錄

 2023-11-30 阅读 40 评论 0

摘要:一.用戶與組的概念 1.理解linux多用戶,多任務的特性 Linux是一個真實的、完整的多用戶多任務操作系統,多用戶多任務就是可以在系統上建立多個用戶,而多個用戶可以在同一時間內登錄同一個系統執行各自不同的任務,而互不影響,例如某

一.用戶與組的概念
1.理解linux多用戶,多任務的特性
Linux是一個真實的、完整的多用戶多任務操作系統,多用戶多任務就是可以在系統上建立多個用戶,而多個用戶可以在同一時間內登錄同一個系統執行各自不同的任務,而互不影響,例如某臺linux服務器上有4個用戶,分別是root、www、ftp和mysql,在同一時間內,root用戶可能在查看系統日志,管理維護系統,www用戶可能在修改自己的網頁程序,ftp用戶可能在上傳軟件到服務器,mysql用戶可能在執行自己的SQL查詢,每個用戶互不干擾,有條不紊的進行著自己的工作,而每個用戶之間不能越權訪問,比如www用戶不能執行mysql用戶的SQL查詢操作,ftp用戶也不能修改www用戶的網頁程序,因此可知,不同用戶具有不同的權限,每個用戶是在權限允許的范圍內完成不同的任務,linux正是通過這種權限的劃分與管理,實現了多用戶多任務的運行機制。
2.linux下用戶的角色分類
?在linux下用戶是根據角色定義的,具體分為三種角色:
??超級用戶:擁有對系統的最高管理權限,默認是root用戶。
??普通用戶:只能對自己目錄下的文件進行訪問和修改,具有登錄系統的權限,例如上面提到的www用戶、ftp用戶等。
??虛擬用戶:也叫“偽”用戶,這類用戶最大的特點是不能登錄系統,它們的存在主要是方便系統管理,滿足相應的系統進程對文件屬主的要求。centos超級用戶登錄?例如系統默認的bin、adm、nobody用戶等,一般運行的web服務,默認就是使用的nobody用戶,但是nobody用戶是不能登錄系統的。
3.用戶和組的概念
?我們知道,Linux是一個多用戶多任務的分時操作系統,如果要使用系統資源,就必須向系統管理員申請一個賬戶,然后通過這個賬戶進入系統。這個賬戶和用戶是一個概念,通過建立不同屬性的用戶,一方面,可以合理的利用和控制系統資源,另一方面也可以幫助用戶組織文件,提供對用戶文件的安全性保護。
?每個用戶都用一個唯一的用戶名和用戶口令,在登錄系統時,只有正確輸入了用戶名和密碼,才能進入系統和自己的主目錄。centos默認賬戶登錄、
?用戶組是具有相同特征用戶的邏輯集合,有時我們需要讓多個用戶具有相同的權限,比如查看、修改某一個文件的權限,一種方法是分別對多個用戶進行文件訪問授權,如果有10個用戶的話,就需要授權10次,顯然這種方法不太合理;另一種方法是建立一個組,讓這個組具有查看、修改此文件的權限,然后將所有需要訪問此文件的用戶放入這個組中,那么所有用戶就具有了和組一樣的權限。這就是用戶組,將用戶分組是Linux 系統中對用戶進行管理及控制訪問權限的一種手段,通過定義用戶組,在很大程度上簡化了管理工作。
4.用戶和組的關系:
用戶和用戶組的對應關系有:一對一、一對多、多對一和多對多;下圖展示了這種關系:


??一對一:即一個用戶可以存在一個組中,也可以是組中的唯一成員。
??一對多:即一個用戶可以存在多個用戶組中。linux網絡模式、那么此用戶具有多個組的共同權限。
??多對一:多個用戶可以存在一個組中,這些用戶具有和組相同的權限。
??多對多:多個用戶可以存在多個組中。其實就是上面三個對應關系的擴展。linux多個客戶端,

二 用戶配置文件概述
1.用戶和組相關的配置文件
(1)/etc/passwd文件
系統用戶配置文件,是用戶管理中最重要的一個文件。這個文件記錄了Linux系統中每個用戶的一些基本屬性,并且對所有用戶可讀。/etc/passwd中每一行記錄對應一個用戶,每行記錄又被冒號分割,其格式和具體含義如下:
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:默認shell?
下面是/etc/passwd文件的部分輸出:
[root@localhost ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
下面是每個字段的詳細含義:
??用戶名:是代表用戶賬號的字符串。
??口令:存放著加密后的用戶口令,雖然這個字段存放的只是用戶口令的加密串,不是明文,但是由于/etc/passwd文件對所有用戶都可讀,所以這仍是一個安全隱患。linux顯示當前目錄、因此,現在許多Linux 版本都使用了shadow技術,把真正加密后的用戶口令存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個特殊的字符,例如用“x”或者“*”來表示。?
??用戶標識號:就是用戶的UID,每個用戶都有一個UID,并且是唯一的,通常UID號的取值范圍是0~65535,0是超級用戶root的標識號,1~99由系統保留,作為管理賬號,普通用戶的標識號從100開始。而在Linux系統中,普通用戶UID默認從500開始。UID是linux下確認用戶權限的標志,用戶的角色和權限都是通過UID來實現的,因此多個用戶公用一個UID是非常危險的,會造成系統權限和管理的混亂,例如將普通用戶的UID設置為0后,這個普通用戶就具有了root用戶的權限,這是極度危險的操作。linux是一種、因此要盡量保持用戶UID的唯一性。
??組標識號:就是組的GID,與用戶的UID類似,這個字段記錄了用戶所屬的用戶組。它對應著/etc/group文件中的一條記錄。
??注釋性描述:字段是對用戶的描述信息,比如用戶的住址、電話、姓名等等。linux特點,
??主目錄:也就是用戶登錄到系統之后默認所處的目錄,也可以叫做用戶的主目錄、家目錄、根目錄等等。
??默認shell:就是用戶登錄系統后默認使用的命令解釋器,shell是用戶和linux內核之間的接口,用戶所作的任何操作,都是通過shell傳遞給系統內核的。linux下常用的shell有sh、bash、csh等,管理員可以根據用戶的習慣,為每個用戶設置不同的shell。
(2)/etc/shadow文件
用戶影子文件,由于/etc/passwd文件是所有用戶都可讀的,這樣就導致了用戶的密碼容易出現泄露,因此,linux將用戶的密碼信息從/etc/passwd中分離出來,單獨的放到了一個文件中,這個文件就是/etc/shadow,該文件只有root用戶擁有讀權限,從而保證了用戶密碼的安全性。linux?
下面介紹下/etc/shadow文件內容的格式:
用戶名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:保留字段
例如:下面是/etc/shadow文件的部分輸出:
[root@localhost ~]# more /etc/shadow
root:$1$Uvip.QJI$GteCsLrSSfpnMs.VCOvbs/:14169:0:99999:7:::
bin:*:13934:0:99999:7:::
daemon:*:13934:0:99999:7:::
adm:*:13934:0:99999:7:::
下面是每個字段的詳細含義:
??用戶名:與/etc/passwd文件中的用戶名有相同的含義。
??加密口令:存放的是加密后的用戶口令字串,如果此字段是“*”、“!”、“x”等字符,則對應的用戶不能登錄系統。?
??最后一次修改時間:表示從某個時間起,到用戶最近一次修改口令的間隔天數。可以通過passwd 來修改用戶的密碼,然后查看/etc/shadow中此字段的變化。window多用戶登錄,
??最小時間間隔:表示兩次修改密碼之間的最小時間間隔。
??最大時間間隔:表示兩次修改密碼之間的最大時間間隔,這個設置能增強管理員管理用戶的時效性。
??警告時間:表示從系統開始警告用戶到密碼正式失效之間的天數。
??不活動時間:此字段表示用戶口令作廢多少天后,系統會禁用此用戶,也就是說系統不再讓此用戶登錄,也不會提示用戶過期,是完全禁用。linux是多用戶、
??失效時間:表示該用戶的帳號生存期,超過這個設定時間,帳號失效,用戶就無法登錄系統了。如果這個字段的值為空,帳號永久可用。
??保留字段:linux的保留字段,目前為空,以備linux日后發展之用。
(3)/etc/group文件
用戶組配置文件,用戶組的所有信息都存放在此文件中。
下面介紹下/etc/group文件內容的格式:
組名:口令:組標識號:組內用戶列表
例如:下面是/etc/group的部分輸出:
[root@localhost ~]# more /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
下面是/etc/group每個字段的含義:
??組名:是用戶組的名稱,由字母或數字構成。與/etc/passwd中的用戶名一樣,組名不能重復。
??口令:存放的是用戶組加密后的口令字串,密碼默認設置在/etc/gshadow文件中,而在這里用“x”代替,linux系統下默認的用戶組都沒有口令,可以通過gpasswd來給用戶組添加密碼。
??組標識號:就是GID,與/etc/passwd中的組標識號對應。
??組內用戶列表: 顯示屬于這個組的所有用戶,多個用戶之間用逗號分隔。
2./etc/login.defs文件
用來定義創建一個用戶時的默認設置,比如指定用戶的UID和GID的范圍,用戶的過期時間、是否需要創建用戶主目錄等等。
下面是rhel5下的/etc/login.defs文件,簡單介紹如下:
MAIL_DIR??????? /var/spool/mail
當創建用戶時,同時在目錄/var/spool/mail中創建一個用戶mail文件
PASS_MAX_DAYS?? 99999
#指定密碼保持有效的最大天數
PASS_MIN_DAYS?? 0
表示自從上次密碼修改以來多少天后用戶才被允許修改口令
PASS_MIN_LEN??? 5
指定密碼的最小長度
PASS_WARN_AGE?? 7
表示在口令到期前多少天系統開始通知用戶口令即將到期
UID_MIN?????????????????? 500
指定最小UID為500 ,也就是說添加用戶時,用戶的UID 從500開始
UID_MAX???????????????? 60000
指定最大UID為60000
GID_MIN?????????????????? 500
指定最小GID為500,也就是添加組時,組的GID從500開始。
GID_MAX???????????????? 60000
指定最大GID為60000
CREATE_HOME???? yes
此項是指定是否創建用戶主目錄,yes為創建,no為不創建。
3./etc/default/useradd文件
當我們通過useradd命令不加任何參數創建一個用戶后,用戶默認的主目錄一般位于/home下,默認使用的shell是/bin/bash,這是為什么呢,看看/etc/default/useradd這個文件的內容就完全明白了。
[root@localhost ~]# more /etc/default/useradd
# useradd defaults file
GROUP=100??
HOME=/home? #此項表示將新建用戶的主目錄放在/home目錄下
INACTIVE=-1 #此項表示是否啟用帳號過期禁用,-1表示不啟用
EXPIRE=???? #此項表示帳號過期日期,不設置表示不啟用
SHELL=/bin/bash? #此項指定了新建用戶的默認shell類型
SKEL=/etc/skel? #此項用來指定用戶主目錄默認文件的來源,也就是說新建用戶主目錄下的文件都是從這個目錄下復制而來的
CREATE_MAIL_SPOOL=no
/etc/default/useradd文件定義了新建用戶的一些默認屬性,比如用戶的主目錄、使用的shell等等,通過更改此文件,可以改變創建新用戶的默認屬性值。
改變此文件有兩種方法,一種是通過文本編輯器方式更改,另一種是通過useradd命令來更改。這里介紹一下第二種方法:
Useradd命令加“-D”參數后,就可以修改配置文件/etc/default/useradd,使用的一般格式為:
useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]
每個選項詳細含義如下:
??-g default_group
表示新建用戶的起始組名或者GID,組名必須為已經存在的用戶組名稱,GID也必須是已經存在的用戶組GID。與/etc/default/useradd文件中“GROUP”行對應。
??-b default_home
指定新建用戶主目錄的上級目錄,也就是所有新建用戶都會在此目錄下創建自己的主目錄。與/etc/default/useradd文件中HOME行對應。
??-s default_shell
指定新建用戶默認使用的shell,與/etc/default/useradd文件中“SHELL”行對應。
??-f default_inactive
指定用戶帳號過期多長時間后就永久停用,與/etc/default/useradd文件中“INACTIVE”行對應。
??-e default_expire_date
指定用戶帳號的過期時間。與/etc/default/useradd文件中“EXPIRE”行對應。
例子:
useradd –D不加任何參數時,顯示/etc/default/useradd文件的當前設置
[root@localhost ~]# useradd -D??
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
如果要修改添加用戶時的默認shell為/bin/csh,可以這么操作:
[root@localhost ~]# useradd -D -s /bin/csh
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/csh
SKEL=/etc/skel
4./etc/skel目錄
在創建一個新用戶后,會在新用戶的主目錄下看到類似.bash_profile, .bashrc, .bash_logout等文件,這些文件是怎么來的呢,如果我想讓新建立的用戶在主目錄下默認擁有自己指定的配置文件,該如何設置呢?
/etc/skel目錄就是解決這個問題的,/etc/skel目錄定義了新建用戶在主目錄下默認的配置文件,更改/etc/skel目錄下的內容就可以改變新建用戶默認主目錄的配置文件信息。

用戶管理工具 ?

一.添加、切換、刪除用戶組命令groupadd/newgrp/groupdel
1.groupadd命令
用來新建一個用戶組。語法格式為:
groupadd [-g -o] gid? group
各個選項具體含義如下:
-g:指定新建用戶組的GID號,該GID號必須唯一,不能和其它用戶組的GID號重復。
-o:一般與-g選項同時使用,表示新用戶組的GID可以與系統已有用戶組的GID相同。
例如:
創建一個linuxfans的用戶組和一個fanslinux用戶組,GID分別為1020和1030
[root@localhost ~]# groupadd -g 1020 linuxfans
[root@localhost ~]# groupadd -g 1030 fanslinux
[root@localhost ~]# more /etc/group|grep? linuxfans
linuxfans:x:1020:
[root@localhost ~]# more /etc/group|grep? fanslinux
fanslinux:x:1030:
2.newgrp命令
如果一個用戶同時屬于多個用戶組,那么用戶可以在用戶組之間切換,以便具有其他用戶組的權限,newgrp主要用于在多個用戶組之間進行切換,語法格式為:
newgrp <用戶組>
?例子:下面通過實例講述newgrp的用法:
首先建立了3個用戶組group1、group2和group3.
[root@localhost ~]# groupadd group1
[root@localhost ~]# groupadd group2
[root@localhost ~]# groupadd group3
下面創建了一個用戶user1,同時指定user1的主用戶組為group1,附加用戶組為group2和group3
[root@localhost ~]# useradd -g group1 -G group2,group3 user1
[root@localhost ~]# more /etc/group|grep user1
group2:x:501:user1
group3:x:502:user1
下面是對用戶user1設置密碼
[root@localhost ~]# passwd user1
Changing password for user user1.
New UNIX password:?
Retype new UNIX password:?
passwd: all authentication tokens updated successfully.
下面是切換到user1用戶下,通過newgrp切換用戶組進行的一系列操作,從中可以看出newgrp的作用。
[root@localhost ~]# su - user1
[user1@localhost ~]$ whoami
user1
[user1@localhost ~]$ mkdir user1_doc
[user1@localhost ~]$ newgrp group2
[user1@localhost ~]$ mkdir user2_doc
[user1@localhost ~]$ newgrp group3
[user1@localhost ~]$ mkdir user3_doc
[user1@localhost ~]$ ll
total 12
drwxr-xr-x? 2 user1 group1 4096 Oct 24 01:18 user1_doc
drwxr-xr-x? 2 user1 group2 4096 Oct 24 01:18 user2_doc
drwxr-xr-x? 2 user1 group3 4096 Oct 24 01:19 user3_doc
[user1@localhost ~]$
3.groupdel命令
表示刪除用戶組,語法格式為:
groupdel [群組名稱]
當需要從系統上刪除用戶組時,可用groupdel指令來完成這項工作。如果該用戶組中仍包括某些用戶,則必須先刪除這些用戶后,然后才能刪除用戶組。
例如:刪除linuxfans這個用戶組
[root@localhost ~]# groupdel? linuxfans
二. 添加、修改和刪除用戶命令useradd/usermod/userdel?
1.useradd建立用戶的過程
useradd不加任何參數創建用戶時,系統首先讀取添加用戶配置文件/etc/login.defs和/etc/default/useradd,根據這兩個配置文件中定義的規則添加用戶,然后會向/etc/passwd和/etc/group文件添加用戶和用戶組記錄,同時/etc/passwd和/etc/group對應的加密文件也會自動生成記錄,接著系統會自動在/etc/default/useradd文件設定的目錄下建立用戶主目錄,最后復制/etc/skel目錄中的所有文件到新用戶的主目錄中,這樣一個新的用戶就建立完成了。
2.useradd的使用語法
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的使用語法
?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的使用語法
Userdel用來刪除一個用戶,若指定“-r”參數不但刪除用戶,同時刪除用戶的主目錄以及目錄下的所有文件。語法格式為:
userdel [-r][用戶帳號]
5.應用舉例
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,同時添加對此用戶的描述,
[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)如何鎖定、解除用戶密碼
下面首先對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.
下面的操作是通過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
接下來,在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
最后對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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/188100.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息