最近想学习下Linux的知识,就看了鸟哥的Linux私房菜-基础篇这本书,觉得这些知识挺有用的就记录下来。
文件属性
在Linux shell下使用ls -al命令可以显示出该目录下所有的文件详细的权限与属性 ( 包含隐藏文件, 就是文件名第一个字符为“ . ”的文件) 。
文件类型
当为[ d ]则是目录, 例如上表文件名为“.config”的那一行;
当为[ - ]则是文件, 例如上表文件名为“initial-setup-ks.cfg”那一行;
文件权限R、W、X
接下来的字符中, 以三个为一组, 且均为“rwx” 的三个参数的组合。 其中, [ r ]代表可读( read) 、 [ w ]代表可写( write) 、 [ x ]代表可执行( execute) 。 要注意的是, 这三个权限的位置不会改变, 如果没有权限, 就会出现减号[ - ]而已。
文件所属用户
第一组为“文件拥有者可具备的权限”, 以“initial-setup-ks.cfg”那个文件为
例, 该文件的拥有者可以读写, 但不可执行;
第二组为“加入此群组之帐号的权限”;
第三组为“非本人且没有加入本群组之其他帐号的权限”。
目录、文件权限的更改
chown :改变文件的所有者
chgrp:改变文件的所属组
chmod:改变文件的权限
数字类型改变文件权限
每个用户所属的三个权限中,每个权限都可以用一个数字来代表。如下
r:4
w:2
x:1
每种用户( owner/group/others) 各自的三个权限的( r/w/x) 分数需要累加就是该用户的权限
参数-R:加入-R 参数,就可以将读写权限传递给子文件夹,不加就只改变单个文件的权限
例如:chmod -R 777 /home/mypackage
那么mypackage 文件夹和它下面的所有zhi子文件夹的属性都变成了777,也就是文件的所有者、所有组、其他用户都拥有了读、写、执行这三种权限。
符号类型改变文件权限
基本上就九个权限分别是( 1) user ( 2) group ( 3) others三种用户! 那么我们就可以借由u, g, o来代表三种用户的权限! 此外, a 则代表 all 亦即全部的用户!所以设置文件的权限可以这样设置:
要设置一个文件的权限成为“-rwxr-xr-x”时,可以使用“ chmod u=rwx,g=rx,o=r filename
”来设置。此外, 如果你不知道原先的文件属性, 而我只想要增加filename这个文件的每个人均可写入的权限, 那么我就可以使用:chmod a+x filename这个命令来实现。
目录权限的作用
文件是存放实际数据的所在, 那么目录主要是记录文件名清单, 文件名与目录有强烈的关连, 所以如果是针对目录时, r, w, x对目录的意义如下:
R:表示具有读取目录结构清单的权限, 所以当你具有读取( r) 一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
W:这个可写入的权限对目录来说, 是很了不起的! 因为他表示你具有异动该目录结构清单的权限, 也就是下面这些权限:
创建新的文件与目录;
删除已经存在的文件与目录( 不论该文件的权限为何! )
将已存在的文件或目录进行更名;
搬移该目录内的文件、 目录位置。
X:目录的x代表的是使用者能否进入该目录成为工作目录,所谓的工作目录( work directory) 就是你目前所在的目录。而进入一个目录使其成为工作目录使用的命令就是cd这个命令。所以如果你没有目录的X权限,你是无法进入到改目录的,但如果你有R权限你还是可以读取该目录下的文件列表。