【Linux】Linux用户、用户组、文件权限学习笔记
原文地址:http://www.sourcejoy.com/other_dev_tech/linux-user-and-file-manage.html
作者:HaiHai?發(fā)布時間:August 12, 2010?分類:綜合技術(shù)
最近打算更仔細學(xué)習一下linux操作系統(tǒng)。先是惡補了一下用戶、用戶組、文件權(quán)限這三樣比較重要的知識。
學(xué)習這幾樣?xùn)|西,得先掌握linux的權(quán)限系統(tǒng)相關(guān)知識。
linux的權(quán)限系統(tǒng)主要是由用戶、用戶組和權(quán)限組成。
用戶就是一個個的登錄并使用linux的用戶。linux內(nèi)部用UID表示。
用戶組就是用戶的分組。linux內(nèi)部用GID表示。
權(quán)限分為讀、寫、執(zhí)行三種權(quán)限。
linux的用戶信息保存在/etc/passwd文件中,另外,/etc/shadow文件存放的是用戶密碼相關(guān)信息。
/etc/passwd文件格式:
用戶名:密碼:UID:GID:用戶信息:HOME目錄路徑:用戶shell
其中UID為0則是用戶root,1~499為系統(tǒng)用戶,500以上為普通用戶
/etc/shadow保存用戶密碼信息,包括加密后的密碼,密碼過期時間,密碼過期提示天數(shù)等。
用戶組信息保存在/etc/group文件中.
格式如下:
用戶組名:組密碼:GID:組內(nèi)帳號(多個帳號用逗號分隔)
用戶登錄后,/etc/passwd文件里的GID為用戶的初始用戶組。
用戶的初始用戶組這一事實不會再/etc/group中體現(xiàn)。
?
查看當前用戶的用戶組命令:
[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
?
建完用戶需要為用戶設(shè)置密碼:
[root@local opt]#passwd 用戶名
?
用戶要修改自己密碼命令:
[root@local opt]#passwd
?
修改用戶信息命令:
[root@local opt]#usermod 參數(shù) 用戶名
參數(shù):
?-c 說明
?-g 組名 初始用戶組
-e 過期日期 格式:YYYY-MM-DD
?-G 組名 其他用戶組
?-l 修改用戶名
?-L 鎖定賬號(在/etc/shadow文件中用戶對應(yīng)密碼密碼串的前面加上兩個嘆號(!!))
?-U 解鎖
?
刪除用戶命令:
[root@local opt]#userdel [-r] 用戶名
其中,參數(shù)-r為刪除用戶的home目錄。
其實,可能在系統(tǒng)其他地方也有該用戶文件,要完整刪除一個用戶和其文件要先找到屬于他的文件:
[root@local opt]#find / -user 用戶名
然后刪除,再運行userdel刪除用戶。
查看可用shell命令:
[root@local opt]#chsh -l?
修改自己的shell命令:
[root@local opt]#chsh -s
查看自己或某人UID/GID信息:
[root@local opt]#id [用戶名]
返回信息中g(shù)roups為有效用戶組
新增用戶組命令:
[root@local opt]#groupadd 用戶組名
修改用戶組名命令:
[root@local opt]#groupmod -n 名稱
刪除用戶組命令:
[root@local opt]#groupdel 用戶組名
設(shè)置用戶組密碼命令:
[root@local opt]#gpasswd 用戶組名
如果gpasswd加上參數(shù)則有其他功能
設(shè)置用戶組管理員命令:
[root@local opt]#gpasswd -A 用戶名 用戶組名
添加某帳號到組命令:
[root@local opt]#gpasswd -M 用戶名 用戶組名
從組中刪除某帳號命令:
[root@local opt]#gpasswd -d 用戶名 用戶組名
passwd相關(guān)參數(shù)操作:
-l 鎖用戶
-u 解鎖用戶
-n 天數(shù)??密碼不可改天數(shù)
-x 天數(shù)??密碼過期天數(shù)
-w 天數(shù)??警告天數(shù)
?
?文件權(quán)限知識
先看個實例:
[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
列表的列定義如下:
[權(quán)限屬性信息] [連接數(shù)] [擁有者] [擁有者所屬用戶組] [大小] [最后修改時間] [文件名]
權(quán)限屬性列表為10個字符:
第一個字符表示文件類型,d為目錄 -為普通文件 l為連接 b為可存儲的接口設(shè)備 c為鍵盤鼠標等輸入設(shè)備
2、3、4個字符表示所有者權(quán)限,5、6、7個字符表示所有者同組用戶權(quán)限,8、9、10為其他用戶權(quán)限
第二個字符表示所有者讀權(quán)限,如果有權(quán)限則為r,沒有權(quán)限則為-
第三個字符表示所有者寫權(quán)限,如果有權(quán)限則為w,沒有權(quán)限則為-
第四個字符表示所有者執(zhí)行權(quán)限,如果有權(quán)限則為x,沒有權(quán)限則為-
第五個字符表示所有者同組用戶讀權(quán)限,如果有權(quán)限則為r,沒有權(quán)限則為-
第六個字符表示所有者同組用戶寫權(quán)限,如果有權(quán)限則為w,沒有權(quán)限則為-
第七個字符表示所有者同組用戶執(zhí)行權(quán)限,如果有權(quán)限則為x,沒有權(quán)限則為-
第八個字符表示其他非同組讀權(quán)限,如果有權(quán)限則為r,沒有權(quán)限則為-
第九個字符表示其他非同組寫權(quán)限,如果有權(quán)限則為w,沒有權(quán)限則為-
第十個字符表示其他非同組執(zhí)行權(quán)限,如果有權(quán)限則為x,沒有權(quán)限則為-
修改文件所屬組命令:
[root@local opt]#chgrp [-R] 組名 文件名
其中-R為遞歸設(shè)置
修改文件的所有者和組命令:
[root@local opt]#chown [-R] 用戶[:用戶組] 文件名
修改文件訪問權(quán)限命令:
[root@local opt]#chmod [-R] 0777 文件名
Linux用戶權(quán)限設(shè)置
Linux下有三類用戶:
1.超級用戶:?root??具有操作系統(tǒng)的一切權(quán)限,?UID為0
2.普通用戶:具有操作系統(tǒng)有限的權(quán)限??UID為500—6000
3.偽用戶:?是為了方便系統(tǒng)管理,滿足相應(yīng)的系統(tǒng)進程文件屬主的要求,不能登錄系統(tǒng),UID為1--499
?
?
Linux通過?/etc/passwd進行用戶管理,
執(zhí)行命令打開該文件:?vi???/etc/passwd
在此文件中只定義賬號,不定義口令。一行定義一個用戶,分為七個部分:
第一列為賬號名稱,
第二列為用戶密碼(密碼不在此定義),
第三列為用戶標識碼(用戶ID),用來確認用戶身份
第四列為用戶所在組的表示(用戶組ID),
第五列為用戶相關(guān)信息(如root),
第六列為用戶家目錄(/root),
第七列為用戶的環(huán)境(用戶使用的shell)
?
shell:命令行命令解析器,如?echo??$SHELL,查看當前shell
id??賬戶名,查看當前賬戶的uid
?
改變所屬用戶組:
chgrp??[-R]??dirname/filename ..
-R:?進行遞歸(recursive)的持續(xù)更改,即連同子目錄下得所有文件、目錄都更新成這個用戶組。常常用在更改某一目錄的情況
eg:??chgrp??users install.log?????????????//users為用戶組名
?
更改文件擁有者:
文件擁有者必須已經(jīng)存在于系統(tǒng)中們也就是在/etc/passwd這個文件中有記錄的用戶名稱才可改變
chown [-R]??賬號名稱:文件或目錄
chown [-R]??賬號名稱:用戶組名稱、文件或目錄
?
eg:?chown bin install.log
??????????chown root:root install.log
?當需要復(fù)制文件給其他人時:
??????cp???源文件??目的文
eg:??cp???.bashrc???.bashrc_test
????????ls??-al??.bashrc*
?
?
更改9個屬性:
?
數(shù)字類型改變文件權(quán)限
?
使用chmod命令改變文件的屬性,屬性的設(shè)置方法有兩種,分別可以使用數(shù)字或者是符號:
Linux?文件的基本屬性有9個,分別是?owner/group/others組別的read/write/excute屬性。
eg: -rwxrwxrwx中,三個為一組,其中可以使用數(shù)字來表示各個屬性,各屬性的對照表位:
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:就是數(shù)字類型的權(quán)限屬性,為rwx屬性數(shù)值的和
?
eg:
??ls??-al??.bashrc
??chmod??777??.bashrc
??ls??-al??.bashrc
?
?
符號類型改變文件權(quán)限
?
可以通過u(user)、g(group)、o(others)來表示三組的屬性,a表示all,即全部的三組,讀寫屬性可以寫成r、w、x:
?
| chmod | u g o a | +(加入) -(除去) =(設(shè)置) | r w x | 文件或目錄 |
?
eg:??chmod??u=rwx,go=rx??.bashrc
如果想把一個文件屬性設(shè)置為?-rwxr-xr--,可以這樣:?chmod??u=rwx,g=rx,o=r??filename
如果不知道文件的原先屬性,但想增加其的每人均可寫入的權(quán)限,可以這樣:
?chmod??a+w??filename
去掉所有人的x屬性:
總結(jié)
以上是生活随笔為你收集整理的【Linux】Linux用户、用户组、文件权限学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android】Android中屏蔽返
- 下一篇: 【Android】dip、dp、sp、p