作者:haihai 釋出時間:august
最近打算更仔細學習一下linux作業系統。先是惡補了一下使用者、使用者組、檔案權限這三樣比較重要的知識。
學習這幾樣東西,得先掌握linux的權限系統相關知識。
linux的權限系統主要是由使用者、使用者組和權限組成。
使用者就是一個個的登入并使用linux的使用者。linux内部用uid表示。
使用者組就是使用者的分組。linux内部用gid表示。
權限分為讀、寫、執行三種權限。
linux的使用者資訊儲存在/etc/passwd檔案中,另外,/etc/shadow檔案存放的是使用者密碼相關資訊。
/etc/passwd檔案格式:
使用者名:密碼:uid:gid:使用者資訊:home目錄路徑:使用者shell
其中uid為0則是使用者root,1~499為系統使用者,500以上為普通使用者
/etc/shadow儲存使用者密碼資訊,包括加密後的密碼,密碼過期時間,密碼過期提示天數等。
使用者組資訊儲存在/etc/group檔案中.
格式如下:
使用者組名:組密碼:gid:組内帳号(多個帳号用逗号分隔)
使用者登入後,/etc/passwd檔案裡的gid為使用者的初始使用者組。
使用者的初始使用者組這一事實不會再/etc/group中展現。
檢視目前使用者的使用者組指令:
[root@local opt]#groups
root bin daemon sys adm disk wheel
輸出的資訊中,第一個使用者組為目前使用者的有效使用者組(目前使用者組)
切換有效使用者組指令:
[root@local opt]#newgrp 使用者組名
要離開新的有效使用者組,則輸入exit回車。
建立使用者指令:
[root@local opt]#useradd 使用者名 -g 初始使用者組 -g 其他使用者組(修改/etc/group) -c 使用者說明 -u 指定uid
建完使用者需要為使用者設定密碼:
[root@local opt]#passwd 使用者名
使用者要修改自己密碼指令:
[root@local opt]#passwd
修改使用者資訊指令:
[root@local opt]#usermod 參數 使用者名
參數:
-c 說明
-g 組名 初始使用者組
-e 過期日期 格式:yyyy-mm-dd
-g 組名 其他使用者組
-l 修改使用者名
-l 鎖定賬号(在/etc/shadow檔案中使用者對應密碼密碼串的前面加上兩個歎号(!!))
-u 解鎖
删除使用者指令:
[root@local opt]#userdel [-r] 使用者名
其中,參數-r為删除使用者的home目錄。
其實,可能在系統其他地方也有該使用者檔案,要完整删除一個使用者和其檔案要先找到屬于他的檔案:
[root@local opt]#find / -user 使用者名
然後删除,再運作userdel删除使用者。
檢視可用shell指令:
[root@local opt]#chsh -l
修改自己的shell指令:
[root@local opt]#chsh -s
檢視自己或某人uid/gid資訊:
[root@local opt]#id [使用者名]
傳回資訊中groups為有效使用者組
新增使用者組指令:
[root@local opt]#groupadd 使用者組名
修改使用者組名指令:
[root@local opt]#groupmod -n 名稱
删除使用者組指令:
[root@local opt]#groupdel 使用者組名
設定使用者組密碼指令:
[root@local opt]#gpasswd 使用者組名
如果gpasswd加上參數則有其他功能
設定使用者組管理者指令:
[root@local opt]#gpasswd -a 使用者名 使用者組名
添加某帳号到組指令:
[root@local opt]#gpasswd -m 使用者名 使用者組名
從組中删除某帳号指令:
[root@local opt]#gpasswd -d 使用者名 使用者組名
passwd相關參數操作:
-l 鎖使用者
-u 解鎖使用者
-n 天數 密碼不可改天數
-x 天數 密碼過期天數
-w 天數 警告天數
檔案權限知識
先看個執行個體:
[root@local opt]#ls -al
ls -al 指令是列出目錄的所有檔案,包括隐藏檔案。隐藏檔案的檔案名第一個字元為'.'
-rw-r--r-- 1 root root 81 08-02 14:54 gtkrc-1.2-gnome2
-rw------- 1 root root 189 08-02 14:54 iceauthority
-rw------- 1 root root 35 08-05 10:02 .lesshst
drwx------ 3 root root 4096 08-02 14:54 .metacity
drwxr-xr-x 3 root root 4096 08-02 14:54 nautilus
清單的列定義如下:
[權限屬性資訊] [連接配接數] [擁有者] [擁有者所屬使用者組] [大小] [最後修改時間] [檔案名]
權限屬性清單為10個字元:
第一個字元表示檔案類型,d為目錄 -為普通檔案 l為連接配接 b為可存儲的接口裝置 c為鍵盤滑鼠等輸入裝置
2、3、4個字元表示所有者權限,5、6、7個字元表示所有者同組使用者權限,8、9、10為其他使用者權限
第二個字元表示所有者讀權限,如果有權限則為r,沒有權限則為-
第三個字元表示所有者寫權限,如果有權限則為w,沒有權限則為-
第四個字元表示所有者執行權限,如果有權限則為x,沒有權限則為-
第五個字元表示所有者同組使用者讀權限,如果有權限則為r,沒有權限則為-
第六個字元表示所有者同組使用者寫權限,如果有權限則為w,沒有權限則為-
第七個字元表示所有者同組使用者執行權限,如果有權限則為x,沒有權限則為-
第八個字元表示其他非同組讀權限,如果有權限則為r,沒有權限則為-
第九個字元表示其他非同組寫權限,如果有權限則為w,沒有權限則為-
第十個字元表示其他非同組執行權限,如果有權限則為x,沒有權限則為-
修改檔案所屬組指令:
[root@local opt]#chgrp [-r] 組名 檔案名
其中-r為遞歸設定
修改檔案的所有者群組指令:
[root@local opt]#chown [-r] 使用者[:使用者組] 檔案名
修改檔案通路權限指令:
[root@local opt]#chmod [-r] 0777 檔案名
linux下有三類使用者:
1.超級使用者: root 具有作業系統的一切權限, uid為0
2.普通使用者:具有作業系統有限的權限 uid為500—6000
3.僞使用者: 是為了友善系統管理,滿足相應的系統程序檔案屬主的要求,不能登入系統,uid為1--499
linux通過 /etc/passwd進行使用者管理,
執行指令打開該檔案: vi /etc/passwd
在此檔案中隻定義賬号,不定義密碼。一行定義一個使用者,分為七個部分:
第一列為賬号名稱,
第二列為使用者密碼(密碼不在此定義),
第三列為使用者辨別碼(使用者id),用來确認使用者身份
第四列為使用者所在組的表示(使用者組id),
第五列為使用者相關資訊(如root),
第六列為使用者家目錄(/root),
第七列為使用者的環境(使用者使用的shell)
shell:指令行指令解析器,如 echo $shell,檢視目前shell
id 賬戶名,檢視目前賬戶的uid
改變所屬使用者組:
chgrp [-r] dirname/filename ..
-r: 進行遞歸(recursive)的持續更改,即連同子目錄下得所有檔案、目錄都更新成這個使用者組。常常用在更改某一目錄的情況
eg: chgrp users
install.log //users為使用者組名
更改檔案擁有者:
檔案擁有者必須已經存在于系統中們也就是在/etc/passwd這個檔案中有記錄的使用者名稱才可改變
chown [-r] 賬号名稱:檔案或目錄
chown [-r] 賬号名稱:使用者組名稱、檔案或目錄
eg: chown
bin install.log
chown root:root install.log
當需要複制檔案給其他人時:
cp 源檔案 目的文
eg: cp .bashrc .bashrc_test
ls -al .bashrc*
更改9個屬性:
數字類型改變檔案權限
使用chmod指令改變檔案的屬性,屬性的設定方法有兩種,分别可以使用數字或者是符号:
linux 檔案的基本屬性有9個,分别是 owner/group/others組别的read/write/excute屬性。
eg: -rwxrwxrwx中,三個為一組,其中可以使用數字來表示各個屬性,各屬性的對照表位:
r:4
w:2
x:1
将同一組(owner/group/others)的3個屬性(r/w/x)累加,如目前屬性為[-rwxrwx---],則是:
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
others= --- =0+0+0=0
該屬性為770.
更改屬性的指令chmod文法:
chmod [-r] xyz 檔案或目錄
xyz:就是數字類型的權限屬性,為rwx屬性數值的和
eg:
ls -al .bashrc
chmod 777 .bashrc
符号類型改變檔案權限
可以通過u(user)、g(group)、o(others)來表示三組的屬性,a表示all,即全部的三組,讀寫屬性可以寫成r、w、x:
chmod
u
g
o
a
+(加入)
-(除去)
=(設定)
r
w
x
檔案或目錄
eg: chmod u=rwx,go=rx .bashrc
如果想把一個檔案屬性設定為 -rwxr-xr--,可以這樣: chmod u=rwx,g=rx,o=r filename
如果不知道檔案的原先屬性,但想增加其的每人均可寫入的權限,可以這樣:
chmod a+w filename
去掉所有人的x屬性: