说到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:后面的表明加入改组的用户列表。
关于用户的相关操做大多数都是在以上三个文件中进行操做