說到linux中的用戶權限得先聊一聊操做系統的組成,通常操做系統是由硬件、內核、庫、shell(中包括GUI(圖形用戶界面)和CLI(命令行界面)兩種,還有就是完成不一樣工做的應用程序了。一個應用程序想要運行起來,必需要把其所依賴的庫文件調用到內核當中。若是不一樣應用程序所依賴的庫文件相同且它們同時在系統中運行,這時就會調用同一個庫文件的副本。應用程序也是同樣,同一個應用程序可能被打開運行屢次,雖然運行的是同一個程序,可是後臺運行的該程序的進程是不一樣的。Linux中不一樣用戶所調用的是同一個應用程序不一樣進程。在Linux中權限最高的是管理員權限也就是root,其它用戶的權限是由root進行設置的。這裏的用戶權限相對進程和文件來講就是進程和文件的屬主。mysql
例如[root@localhost tmp]# ls -l test.cut ,單單就這條命令來講ls和test.cut都是有屬主的。linux
下面來講說ls -l長顯示,的文件一些屬性。sql
[root@localhost Desktop]# ls -lshell
total 2220centos
-rw-r--r--. 1 root root 2272130 Aug 6 2013 cacti-0.8.8b.tar.gzbash
-rw-rw-r--. 1 123 123 0 Nov 1 03:38 new fileide
紅色字體的第1位表示的是用戶文件的類型,文件類型在以前的Linux常見命令(ls)介紹了,以後的後9位3位是一組,第1組表明屬主的權限,第2組表明的是屬組的權限、第3組表明的是其它用戶的權限。字體
3位字母的格式是r(可讀)w(可寫)x(可執行),可讀就是能夠經過像cat、more這樣的文本查看命令查看的文件,可寫就是能夠經過vi和nano這樣的命令修改的文件,可執行就是能夠在命令提示符下輸入而且能夠提交給內核運行的文件。這裏所說的文件的可讀、可寫、可運行屬性一樣適用於文件夾系統,文件夾中的r(可讀)表示能夠對此文件夾執行ls以列出此文件夾中的內容,w(可寫)表示能夠在文件夾中建立文件,x(可執行)表示能夠對此文件執行cd等操做(此處有出入,哪位高手看到了給我講講怎麼回事,在系統中經過install命令新建了一個文件夾而且沒有賦予其任何權限合適能夠經過cd進行入的)。加密
例如r_ _:只讀,r_x:可執行,_ _ _ :無任何權限。每一位若是有的話就用1來表示,沒有就表明0,因此3位的讀、寫、執行權限都有的話就會spa
_ _ _ :0
_ _ x:1
_ w _:2
_ w x:3
r _ _:4
r _ x:5
r w _:6
r w x:7
以上權限數字在chmod、install命令中會用到
[root@localhost test]# install -d -m 000 /tmp/test ceshi.1
[root@localhost test]# ls
1 2 ceshi.1 sort-u sort2 sort3 sort4
[root@localhost test]# ls -l
total 28
drw-rw-rw- 2 root root 4096 Nov 19 18:34 1
drw-rw-rw- 2 root root 4096 Nov 19 21:17 2
d--------- 2 root root 4096 Nov 21 01:32 ceshi.1
[root@localhost test]# cd ceshi.1/
[root@localhost ceshi.1]#
[root@localhost ceshi.1]# ls -ld /tmp/test/ceshi.1/
d--------- 2 root root 4096 Nov 21 01:32 /tmp/test/ceshi.1/
經過上面能夠看出來歲軟文件夾沒有任何權限仍是能夠操做的。
經過touch新建一個文件後經過chmod改變文件的權限後仍是有效的
[root@localhost ceshi.1]# ls -l
total 0
-rw-r--r-- 1 root root 0 Nov 21 01:45 123
[root@localhost ceshi.1]# chmod 333 123
[root@localhost ceshi.1]# ls -l
total 0
--wx-wx-wx 1 root root 0 Nov 21 01:45 123
[root@localhost ceshi.1]# vi 123
[root@localhost ceshi.1]# cat 123
the file is only write
下面介紹一下關於用戶權限的一些相關的命令及文件:
一、/etc/passwd
該文件中存放的是用戶的帳號信息。
[root@localhost ceshi.1]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
123:x:500:500:centos 6.5:/home/123:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
cacti:x:501:501::/home/cacti:/bin/bash
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
以root爲例該文件顯示的內容還含義是
root:用戶名。
x:密碼佔位符。
0:用戶ID。
0:基本組ID。
root:用戶名稱註釋信息。
/root:用戶的家目錄。
/bIn/bash:用戶默認Shell。
這裏的x是密碼佔位符,其實系統中有個專門存放密碼的文件是/etc/shadow,經過vi或者nano能夠修改該文件中的內容以增長用戶信息。
二、/etc/shadow
[root@localhost ceshi.1]# cat /etc/shadow
root:$1$PXLwFZXG$3qMzsG0fc1KGGBSwxbXtu1:17126:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
仍是以第一個root爲例
root:表明用戶名。
$1$:表明的是MD5加密。
$PXLwFZXG$:是加密的密碼的雜項,是爲了防止用戶密碼相同時候,系統爲該用戶密碼添加的雜項信息
$3qMzsG0fc1KGGBSwxbXtu1:用戶加密的密碼
17126:從1970到到上次密碼修改的天數。
0:密碼的最短使用時間。
99999:密碼的最長使用時間。
三、/etc/group
/etc/group中存放的是用戶的組信息。
[root@localhost ceshi.1]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
仍是以root爲例,解釋一下該文件的結構。
root:組名。
x:密碼佔位符。
0:組ID
0:後面的表明加入改組的用戶列表。
關於用戶的相關操做大多數都是在以上三個文件中進行操做