Linux文件权限与目录配置

用户与用户组


首先要明白文件的管理者有用户及其对应的用户组。用户组相当于一个家,用户相当于家里的某个成员比如你或者你爸爸或者你妈妈等等。还有其他,就是除了你家的其他人对该文件的权限。以及最后一个拥有对所有用户都有所有权的上帝root。

文件权限的概念


drwxr-xr-x 5 ubuntu ubuntu 4096 Apr 30 19:24 .
文件权限 链接数 文件所有者 文件所属用户组 文件大小 文件最后修改时间 文件名
  • 看到第一列文件权限,一共有十个字符,应该这么看[d][rwx][r-x][r-x],四组数据,第一组表示该文件是什么类型的文件。[d]表示directory目录,[-]表示普通文件,[l]表示linkfile链接文件,[b]表示设备文件里面可供存储的接口设备,[c]表示设备文件里面串行端口设备,例如键盘、鼠标等。接下来的三组分别代表了用户权限,用户组权限,其他人权限。rwx分别表示了read、write、excute,三个权限的相对位置不会发生改变,如果没有该权限则用-来表示,所以这三个字符也可以用三个bit表示,那么r--表示4,-w-表示2,--x表示1,就是二进制表示该值。比如用户权限是rwx时,用二进制表示就是7。.
  • 第二列文件的连接数。这个暂时不展开来说。简单理解,我们用一个文件系统来统管所有的文件,inode索引节点代表了一个实际硬盘中存储的该文件,而目录树中可以有不同路径指向该inode索引节点,那么连接数就是表示目录树中有多少路径指向该文件inode索引节点。
  • 第三列文件所有者就是该文件的所有者帐号。
  • 第四列文件所数用户组,用来用户组内其他用户根据权限进行操作。
  • 第五列文件大小,默认是B为单位所以4096B就是4kb,查看的时候可以在ls -al 后加上-h表示以k单位显示文件大小
  • 第六列文件最后修改时间,显示完整日期可以用 ls -l  --full-time
  • 第七列为文件名,linux操作系统中所有的东西都是一文件,包括了目录、设备等等,所以.表示当前的目录名,..表示上一级的目录文件名。

修改文件权限

chgrp users install.log //修改该文件用户组所有
chown mind install.log //修改该文件所有者为mind这个帐号
chmod 777 .bashrc //修改文件权限,7表示了rwx全允许

chmod u g o a + - = r w x 文件或目录

文件权限

  • read表示该文件可被读取
  • write表示该文件可被修改、增加、编辑。但是不可以删除
  • excute表示该文件可被执行,linux系统中某个文件可执行是由这个权限决定的和文件的扩展名没有关系

目录权限

  • read仅仅表示该目录名可被访问
  • write表示目录下可以进行,增删、重命名、转移文件和目录(无视下级文件中的权限设置)
  • excute表示用户能否进行该目录成为工作目录

操作演示

首先以ubuntu的身份创建testing文件,权限是其他用户只有read权利,以及子目录,其他用户无任何权利

切换到mind用户下访问

查看文件信息,只能查看到名字,切换会ubuntu用户下尝试直接修改用户所有者,发现不可以,原来linux系统是多用户多任务系统,所以只有系统管理者才有权限运行这些命令否则会很混乱。将所有者给到mind后,进入了目录,虽然子目录它没有权限,但是依旧可以删除。

Linux文件种类与扩展名


 

文件种类有多种比如:普通文件、纯文本文件、二进制文件、数据格式文件,目录文件,连接文件,设备与设备文件(通常放置与/dev目录下),套接字,管道等等

值得注意的是linux文件扩展名不同于window,它仅仅是帮助我们来看的,实际一个文件能不能执行与它第一列的10个属性有关,与文件名根本一点关系都没有。只要你权限中有x,那么就是可以被执行。不过可执行与能否成功执行没有必然关系。

Linux目录配置


 

这网上有很多详细的说明,偷懒不写了。贴个地址,自行浏览。

这里只谈谈个人一些觉得有点重要的,我们常看到两种目录,一种是“/”一种是“~”,前者表示整个目录树的根节点,后者表示用户的主文件夹的根节点,当创建一个用户时有指定该用户默认的的主文夹一般就是/home/username了。以及/usr这个容易误解为user其实正确的是UNIX Software Resource就是UNIX操作系统软件资源所放置的位置,系统自带的软件一般放这里,有点像window下c盘的programfiles和windows的目录合体。/var目录一般比较大,用于存放动态性的运行时产生的文件包括了缓存、登录文件等等。

绝对路径和相对路径,其实就是根据实际路径来嘛。比如 /usr/test 和 ./tmp 不就是根目录下usr下test  当前目录下tmp,利用的是每一个目录中的"."和".."这两个目录文件来达到相对路径的概念。

原文地址:https://www.cnblogs.com/GrimReaper/p/8974794.html