Linux是个多人多任务的操作系统,在Linux里面,任何一个文件都具有文件拥有者,群组和其他人三种身份的个别权限。例如自己写了一份情书,不想让其他人看到,那么可以设置这个文件的权限不让外界访问。群组其实就是团队开发过程中资源的一种共享,小组成员可以彼此修改对方的文件,而对于不同的小组之间的成员是不可以互相修改文件的,所以组2对于组1来说就是其他人。最后来说一下管理员,管理员具有所有文件的权限哦!···操作系统这门课程根本没听···所以也算学到新知识了吧···
Linux 用户身份与群组记录的文件:
在我们Linux系统当中,默认的情况下,所有的系统上的账号与一般身份使用者,还有那个root的相关信息,都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。此外,Linux所有的组名都纪录在/etc/group内!这三个文件可以说是Linux系统里面账号、密码、群组信息的集中地啰!不要随便删除这三个文件啊! ^_^
在系统的空白处按下ctrl+alt+t进入终端,输入ls -al指令可以查看所有的文件信息,包含权限,连接数,拥有者,群组等等··
文件的权限包含十个字符,含义如下:
- 第一个字符代表这个文件是『目录、文件或链接文件等等』:
- 当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
- 当为[ - ]则是文件,例如上表档名为『install.log』那一行;
- 若是[ l ]则表示为连结档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
- 接下来的字符中,以三个为一组,且均为『rwx』的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
- 第一组为『文件拥有者的权限』,以『install.log』那个文件为例,该文件的拥有者可以读写,但不可执行;
- 第二组为『同群组的权限』;
- 第三组为『其他非本群组的权限』。
- 在你修改你的linux文件与目录的属性之前,一定要先搞清楚,什么数据是可变的,什么是不可变的!
Ubuntu没有传统的root用户,但是你可以在命令行下sudo -s,然后输入密码。
改变所属群组指令, chgrp 群组名称 文件名称 例如 chgrp users install.log
改变文件拥有者, chown指令,语法同上。
改变权限, chmod指令,chmod 710 文件名(7转换为2进制数字为4+2+1即rwx)
用ls -al 文件名 指令可以查看文件信息
当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限,但并不具备有删除该文件本身的权限!
文件是存放实际数据的所在,那么目录主要是储存啥玩意啊?目录主要的内容在记录文件名列表,文件名与目录有强烈的关连啦!所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?
- r (read contents in directory):
表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
- w (modify contents of directory):
这个可写入的权限对目录来说,是很了不起的!因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:
- 建立新的文件与目录;
- 删除已经存在的文件与目录(不论该文件的权限为何!)
- 将已存在的文件或目录进行更名;
- 搬移该目录内的文件、目录位置。
总之,目录的w权限就与该目录底下的文件名异动有关就对了啦!
- x (access directory):
咦!目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途!所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登入Linux时,你所在的家目录就是你当下的工作目录。而变换目录的指令是『cd』(change directory)啰!