Linux有两种用户:超级用户(root),普通用户(user)。
超级用户:可以在Linux下做任何事情,不受限制。命令提示符是#。
普通用户:可以在Linux做有限的事情,普通用户的命令提示符是$。
用命令su [用户名] (如是从普通用户切换到超级用户需要输入超级用户的口令),来切换用户。
下面我们先切换成普通用户再切换成超级用户(我的用户名是apple)。
这里需要注意的是由于root的口令是敏感字符串,所以在屏幕上不回显。虽然不会回显在屏幕上,但我们确实输入了,在输入完成后按下回车就可以了。
一般我们谈论权限时,针对的都是普通用户,且大多讨论的是文件的权限。
举个例子,学校的所有文件校长都是可以看可以改的,这就失去了讨论的意义,我们要讨论的是学生看文件的权限,有文件可以看可以改(全班同学讨论制定的班规文件),有的文件可以看(导员给的通知文件),有的文件连看的权力都没有(校长没有向下派发的文件)。
在Linux中文件的权限有哪几种呢?权限应该拿什么来确定呢?下面我们来一起讨论。
权限1.通过文件属性(可以看得r,可以写的w,可以执行的x)
2通过人(校长还是同学)(拥有者,所属组,other)来确定
下面我们通过前面的学习我们用ls -l来查看文件的信息。(注意Linux下认为一切皆文件,也就是说把一切都看作文件来处理)
我们用其中一个文件的信息来举一下例子。
注意:Linux不用后缀来区分文件类型,但习惯上还是会用后缀来辨识,但不是强制要求。查看文件类型时 一般用的就是上面举例时的方法(ls -l),看后缀是不准确的。占用存储空间的类型:文件、目录、符号链接。符号链接记录的是路径,路径不长时存在innode里面。 其他四种:套接字、块设备、字符设备、管道是伪文件,不占用磁盘空间。
请看下面的例子
下面我们对权限进行修改,先介绍一个指令。
1,chmod 有以下例子
(1)去掉用户的对tile的读权限
可以看到代表用户读权限的r 被去掉
(2)去掉所属组的写权限
(3)给other加上可执行权限(细心地同学可以看到加上可执行权限之后,文件名变绿)
(4)给拥有者(用户)加上读权限和可执行权限
(5)给拥有者去掉权限,所有组加上权限,other加上权限
这时 ,相信大家已经对修改权限做了一定的了解。而修改权限会造成什么样的后果呢?
下面我们向tile 里写入时会发现下面的问题,会向我们提示没有向里写入的权限。(不好意思,演示时用成了root用户,如果用的是root用户,是可以写入的,因为前面说过root用户可以做任何限制并不受什么限制,自行演示时应用普通用户,会有没有向里写入得权限的效果)
也就是说当我们是普通用户,我们对文件操作时如需操作成功,就需要有相应的权限。
附加:还有一种方法,利用权限只有两种状态,一种是可以一种是不行,把他们写成二进制序列。再转为8进制序列。
如777就是所有者,所属组,other都可读可写可执行。
举例如下
(1)先去掉tile 的所有权限
(2)给tile的所有者,所属组,other 加上读权限
(3)下来我们给所有者,所属组,other 加上读权限(注意我们说的是加上读权限)
这时我们注意到结果与我们的想象并不相同。我们想要的最终结果是所有者,所属组,other 读权限加上写权限,然而指令运行之后只剩下了写权限。其实正确的设置是这样的。
这样就给所有者,所属组,other 一起加上了读写权限。
这种八进制的方案在平常来看貌似不如第一种方法好理解,但他却适合做大批量的权限修改。总之各有千秋。
注意:第二列:硬链接数
第三列和第四列:拥有者,所属组
第五列:文件的大小(字节)
下三列:文件的时间(最后的修改时间)
最后一列:文件的名称
下来我们再来提下
chown 指令:改变用户的拥有者(不可以从普通用户向超级用户改变,因为超级用户的权限更高,如果非要这样做应在指令前价值领sudo)
下面我们再来修改下所属组
我们可以看到我们已经成功的改掉了。
下来我们再变回来。用相对批量的一种方式。
最后要注意:如果只想进入目录,我们需要的权限是可执行权限(x)。
如果在当前目录下想显示有什么文件,需要的是读权限。
如果在当前目录下想创建一个文件,需要的是写权限。