zoukankan      html  css  js  c++  java
  • linux 如何改变文件属性与权限1

    我们知道档案权限对于一个系统的安全重要性,也知道档案的权限对于使用者与群组的相关性, 那如何修改一个档案的属性与权限呢?

    我们这里介绍几个常用于群组、拥有者、各种身份的权限的指令。如下所示:

    chgrp  :  改变档案所属群组

    chown :  改变档案拥有者

    chmod :  改变档案的权限, SUID, SGID, SBIT等等的特性

    1. 改变所属群组, chgrp

    复制代码
    [root@www ~]# chgrp [-R] dirname/filename ... 
    选项与参数:
    -R :进行递归(recursive)的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录内所有的档案之情况。
    范例:
    [root@www ~]# chgrp users install.log
    [root@www ~]# ls -l
    -rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
    [root@www ~]# chgrp testing install.log
    chgrp: invalid group name `testing' <== 发生错误信息息啰~找不到这个群组名~
    复制代码

    2. 改变档案拥有者, chown

    复制代码
    [root@www ~]# chown [-R] 账号名称 档案或目录 
    [root@www ~]# chown [-R] 账号名称:组名 档案或目录
    选项与参数: 
       -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都变更
    
    范例:将install.log的拥有者改为bin这个账号:
    [root@www ~]# chown bin install.log 
    [root@www ~]# ls -l 
    -rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log 范例:将install.log的拥有者与群组改回为root: [root@www ~]# chown root:root install.log [root@www ~]# ls -l
    -rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
    复制代码

    3. 改变权限, chmod

    权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。

    3.1 数字类型改变档案权限

    Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限

    举例:档案的权限字符为 -rwxrwxrwx  这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

    r:4   w:2   x:1

    每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

    owner = rwx = 4+2+1 = 7

    group = rwx = 4+2+1 = 7

    others= --- = 0+0+0 = 0

    所以我们设定权限的变更时,该档案的权限数字就是770啦!变更权限的指令chmod的语法是这样的:

    [root@www ~]# chmod [-R] xyz 档案或目录 
    选项与参数: 
    xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。 
    -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都会变更

    举例来说,如果要将.bashrc这个档案所有的权限都设定启用,那么就下达:

    [root@www ~]# ls -al .bashrc 
    -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
    [root@www ~]# chmod 777 .bashrc
    [root@www ~]# ls -al .bashrc
    -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

    那如果要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754 啰!所以你需要下达:

    [root@www ~]# chmod 754 filename

    3.2 符号类型改变档案权限

    还有一个改变权限的方法呦!从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user (2)group (3)others三种身份啦!那么我们就可以藉由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x啰!也就是可以使用底下的方式来看:

    来实验一下吧!假如我们要设定一个档案的权限成为『-rwxr-xr-x』时,基本上就是:
    o user (u):具有可读、可写、可执行的权限;
    o group 与 others (g/o):具有可读不执行的权限。

    所以就是:

    [root@www ~]# chmod u=rwx,go=rx .bashrc 
    # 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格符!
    [root@www ~]# ls -al .bashrc
    -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc

    那么假如是『 -rwxr-xr-- 』这样的权限呢?可以使用『 chmod u=rwx,g=rx,o=r filename 』来设定。此外,如果我们知道原先的文件属性,而我只想要增加.bashrc这个档案的每个人均可写入的权限, 那么我就可以使用:

    [root@www ~]# ls -al .bashrc 
    -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
    [root@www ~]# chmod a+w .bashrc
    [root@www ~]# ls -al .bashrc
    -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

    而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

    [root@www ~]# chmod a-x .bashrc 
    [root@www ~]# ls -al .bashrc
    -rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc
  • 相关阅读:
    Azure HPC Pack Cluster添加辅助节点
    Azure HPC Pack 辅助节点模板配置
    Azure HPC Pack配置管理系列(PART6)
    Windows HPC Pack 2012 R2配置
    Azure HPC Pack 节点提升成域控制器
    Azure HPC Pack VM 节点创建和配置
    Azure HPC Pack 部署必要条件准备
    Azure HPC Pack 基础拓扑概述
    Azure VM 性能计数器配置
    Maven私仓配置
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/11436008.html
Copyright © 2011-2022 走看看