上文曾经提到,linux的一个最大的特点是允许多人多任务,但是万一一个用户也能访问另一个用户的文件,不就存在安全隐患吗?鉴于此,为了让各个使用者具有较保密的档案数据,linux对档案的权限管理进行了处理,将档案可存取的身份分为owner/group/others,而三种身份各有read/write/execute三种权限。
1. owner很好理解,就是档案所有者。这个档案是你生成的,那你就是owner。
group从整体的角度,例如你是3班的,这样三班的其他学生就是和你属于3班这个组,他们对于你的档案有一个权限。
others当然就是3班以外的人对你档案的访问权限啦。用下面那个图就很好理解:
至于天神,就是所谓的root了,它具有最高的权限,可以访问所有档案。
2. linux上所有的账号都是记录在/etc/passwd中,而用户的登陆密码存放在/etc/shadow中,至于组名就存放在/etc/group中咯。
3. 如果我们在终端执行ls -al(列出所有档案信息),看可以看到如下类似的信息:
前面的-rw-r--r--就是权限信息啦。共10位,我们取出第一位,同时对后9位每3位进行取出,分别记为1.-,2.rw-,3.r--,4.r--。
1)-:档案类型,常见的有3个,其中d表示该档案是个目录,-表示该档案是档案,l表示该档案是个链接,类似于windows中的快捷方式。
2)rw-:这是owner的权限,r表示可读,w表示可写,x表示可执行,可见这里第三个为-,表示owner不能执行该档案,但可进行读写操作。
3)r-:group的权限。这里组内的其他成员只能对档案进行可读。
4)r--:others的权限,其他人也只能可读。
因此上述信息的意思就是install.log档案的拥有者是root,所属群组也是root,root可以存取该档案,其他人只能读此档案。
还有一点重要的是,若身份没有x权限,则该身份无法进入该目录!
4. 知道了文件的属性和权限之后,我们就来谈谈如何来改变这些权限,这里用到三个指令:chgrp,chown,chmod。
chgrp:改变所属群组。举个例子,如果执行chgrp users install.log,则install.log的群组就会变为users,而不是上文提到的root。
chown:改变档案拥有者。同上,chown users install.log,则该档案的所有者变为users。另外我们还可以同时改变群组和拥有者,采用chown root:root install.log就将install.log的群组和拥有者同时变为root
chmod:改变权限。linux中对r,w,x分别赋予值4,2,1,每种身份各自的三个权限分数是需要累加的,例如-rwxrwx---的分数为:
owner——4+2+1=7
group——4+2+1=7
others——0+0+0=0
这样档案的权限数字就变为770.利用chmod来改变该权限值,例如执行chmod 777 1.log,意思是使1.log的权限变为-rwxrwxrwx,现在明白了吧。
5. 另外还有一种改变权限的方法,用u,g,o代表三中身份的权限,而a表示全部的身份。因此,例如指令chmod u=rwx,go=rx 1.txt就表示用户对档案可进行读写和执行,群组和其他人只能读和执行。chmd a+w 1.txt即所有人都能进行写操作。
6. windows下一个档案是否具有执行的能力是借由扩展名来判断的,例如.exe,.bat等,而在linux中,档案是否被执行是看是否具有x的权限。
7. su -user这个指令可以变换到user身份。
8. linux下常见的扩展名有以下几个:
.sh——脚本或批处理文件
.Z,.tar,.tar.gz,.zip,.tgz——经过打包的压缩文件
.html,.php——网页相关文档
9. 最后再介绍几个linux的常见目录以及里面存放的内容:
/bin:里面放置的是所有用户都能够操作的指令。
/dev:任何装置与接口设备都是以档案的形态存放于这个目录中。
/etc:系统主要的配置文件几乎都放置在这个目录,例如人员的账号密码文件、各种服务的开启档等。
/mnt:挂载的额外装置
/sbin:里面的指令只有root能够使用。
/lost+found:目的在于当文件系统发生错误时,将一些遗失的片段放置在这个目录下。
10. linux中 存在绝对路径和相对路径,绝对路径都是以/开始的,即根目录开始,不是以/开始的路径都是相对路径。
11. .表示当前目录,..表示上一目录。