Linux学习(2)--文件权限

来源:互联网 发布:linux物理内存分配 编辑:程序博客网 时间:2024/06/05 02:50

由于Linux是一个多用户、多任务的系统,所以考虑到隐私等原因,“文件所有者”这个角色就相当重要。那么Linux的用户和用户组是什么呢?以我自己粗浅的话来说:
用户:就是普通的一个账号,有自己私人的一些文件
用户组:囊括了一些用户的一个整体,用户组里面的每个人都拥有访问属于用户组的公共文件的权力,而外面的则不行。

Linux文件属性

我们在任意位置执行“ls -al”都可以看到类似这样的显示:

[root@VM_174_157_centos etc]# ls -altotal 1476drwxr-xr-x. 72    root     root    4096  Nov 19 13:52  .dr-xr-xr-x. 23    root     root    4096  Nov 19 15:06  ..-rw-------.  1    root     root       0  Jul 10  2015  .pwd.lock-rw-r--r--.  1    root     root    4439  Jul 16  2014  DIR_COLORS-rw-r--r--.  1    root     root    5139  Jul 16  2014  DIR_COLORS.256colordrwxr-xr-x.  3    root     root    4096  Oct 16  2014  NetworkManagerdrwxr-xr-x.  4    root     root    4096  Jul 10  2015  X11drwxr-xr-x.  4    root     root    4096  Jul 10  2015  acpi-rw-r--r--.  1    root     root      45  May 19  2016  adjtime-rw-r--r--.  1    root     root    1512  Jan 12  2010  aliases-rw-r--r--   1    root     root   12288  Mar  3  2016  aliases.db[    1    ] [2]    [3]     [4]     [5]   [    6    ]    [   7   ][   权限  ] [连接][所有者] [用户组] [文件大小] [修改日期]      [文件名]

第一列:第一个字符代表的是这个文件的属性:
[d]表示目录(文件夹)
[-]表示文件
[I]表示连接文件
[b]表示设备文件里面的可供存储的接口设备
[c]表示设备文件里面的串行端口设备,例如:键盘、鼠标等

那么权限中的这一串[drwxr-x—]之类的又是代表什么呢?

linux文件权限

r(read):可读
w(write):可写
x(execute):可执行

第五列:为文件大小,默认单位为B
第六列:为这个文件创建或者最近修改时间
第七列:文件名。特殊之处在于,如果文件名之前有一个“.”,则是隐藏文件

改变文件属性和权限

  • 改变所属用户组:chgrp
    当改变的组名是正确存在的(/etc/group中),那么我们只需要使用chgrp命令即可方便地更改该文件所属用户组。
[root@VM_174_157_centos etc]# chgrp [-R] dirname/filename ...选项与参数-R:进行递归(recursive)的持续更改,即连同子目录下的所有文件、目录都更新为该用户组之属[root@VM_174_157_centos etc]# chgrp users install.log[root@VM_174_157_centos etc]# ls -l-rw-r--r-- 1 root users 68495 Nov 19 16:20 install.log

当更改对象为文件夹的时候,建议使用-R,以免引起各种权限问题。

  • 改变文件所有者:chown
    更改方式和chgrp大同小异,直接看实际操作:
[root@VM_174_157_centos etc]# chown [-R] 账号名称 文件或目录[root@VM_174_157_centos etc]# chown [-R] 账号名称:组名 文件或目录参数:-R:进行递归(recursive)的持续更改,即连同子目录下的所有文件、目录都更改#将install.log的所有者更改为bin这个账号:[root@VM_174_157_centos etc]# chown bin install.log[root@VM_174_157_centos etc]# ls -l-rw-r--r--  1 bin users 68495 Nov 19 16:34 install.log#将install.log所有者与用户组改回为root[root@VM_174_157_centos etc]# chown root:root install.log[root@VM_174_157_centos etc]# ls -l-rw-r--r--  root root 68495 Nov 19 16:41 install.log

事实上chown也可以使用“chown user.group file”,即在所有者与用户间加上小数点,不过由于很多人设置账号喜欢加入小数点,这会造成系统的误判。所有一般使用冒号。

  • 改变权限:chmod
    1.数字类型改变文件权限
    我们将owner、group、others三种身份的权限,按三个三个地分组。并使用数字来代表各个权限,分别是:r:4,w:2,x:1,然后将权限加起来,比如当权限为[-rwxrwx—]时,分数为:
    owner = rwx = 4+2+1=7
    group = rwx = 4+2+1=7
    others = - - - = 0+0+0=0
    2.符号类型改变文件权限
    user(u):拥有者
    group(g):用户组
    others(o):其他用户组
    在更改时,如下面所示
[root@VM_174_157_centos etc]# chmod [-R] filename 文件或目录参数:xyz:就是数字类型的权限属性,为rwx相加-R:进行递归(recursive)的持续更改,即连同子目录下的所有文件、目录都更改#比如,将text.txt这个文件权限设置为-rwxr-xr--#可以计算出,它的分数为7 5 4[root@VM_174_157_centos YXH]# chmod 754 test.txt [root@VM_174_157_centos YXH]# lltotal 4-rwxr-xr-- 1 root root 35 Nov 19 17:28 test.txt#注意u=rwx,go=rx,而且u g o如果权限相同可以连着写[root@VM_174_157_centos YXH]# chmod u=rwx,go=rx test.txt [root@VM_174_157_centos YXH]# lltotal 4-rwxr-xr-x 1 root root 35 Nov 19 17:28 test.txt

目录与文件的权限意义

  • 权限对文件的重要性
    r(read):可读取文件实际内容;
    w(write):可以编辑、新增或者是修改文件内容(不包含删除该文件);
    x(execute):在linux下,文件是否能够被执行,是取决于这个权限的,和文件名是没有绝对关系的。

  • 权限对目录的重要性
    r(read contents in directory):表示具有读取目录结构列表的权限,可以使用ls命令查看;
    w(modify contents in directory):表示具有更改该目录结构列表的权限,也就是[新建],[删除],[重命名],[转移]的权限;
    x(access directory):其实目录也可以执行,那么目录的x代表的是用户能否进入工作目录的用途,也就是说能不能cd进去。

  • Linux文件长度限制

    1. 单一文件或目录的最大容许文件名为255个字符
    2. 包含完整路径名称及目录(/)的完整文件名为4096个字符
  • Linux文件名的限制
    由于Linux在文字界面下的一些命令操作关系,一般来说,在设置文件名的时候应该避免一些特殊字符。例如下面这些: * ? > < ; & ! [ ] | \ ’ ” ` ( ) { }
    因为这些符号在命令行界面是有特殊意义的。同时又由于执行命令中,常常会用到 -option等参数,所以也应该避免用 + 或 - 来命名。

0 0