在Linux中,我们可以对文件或文件夹设置权限(r,w,x,-)。然而,对文件和文件夹的权限设置,具有不同的意义。下面,通过几个例子来了解一下权限的意义所在。在开始之前,我们需要了解几个修改权限的命令:

备注:在测试环境中,通过两组用户名/用户组来演示。这两组分别为:root/root,Jonathan/Jonathan。此外,下面的例子都是连续的,也就是当前的例子是基于前面的例子。

chgrp - change group,用于修改文件/文件夹的用户组。

现在,/home/Jonathan/JonathanTestFolder下面有一个JonathanFile.txt,先来看一下这个文件的属性,通过ls -l列出:

下面,通过chgrp,将用户组改成root,即:chgrp root JonathanFile.txt

chown - change ownership,使用该命令改变文件/文件夹的owner。其实,也可以通过该命令实现chgrp的功能,下面就通过几个例子来说明:

更改JonathanFile.txt的owner为root:chown root JonathanFile.txt

更改JonathanFile.txt的owner/group为Jonathan/Jonathan:chown Jonathan:Jonathan JonathanFile.txt

更改JonathanFile.txt的group为root:chown :root JonathanFile.txt [其实,这里的冒号(:)也是可以用点(.)代替的,但是我们起用户名的时候,可能也用到来点,所以还是统一用冒号吧]

chmod - change mode,使用该命令改变对文件/文件夹的权限(即rwx-)。改变权限,可以通过下面几种方式:

1. rwx-对应了不同的数值,即r = 4,w = 2,x = 1,- = 0。所以,rwx = 4 + 2 +1 = 7,rw- = 4 + 2 + 0 = 6。那么,表示权限的字符串就可以用相应的数字组合表示。举个例子,现在JonathanFile.txt的权限为:-rw-rw-r--,那么用数值表示就是:-664。现在,我们通过这个命令,改变这个对这个文件的权限为:-rwxrwx---。那么,我们可以执行: chmod 770 JonathanFile.txt (在命令中,第一个字符,也就是表示文件类型的字符不用包括进去)

2. 我们也可以直接用rwx来设置权限。使用这种方式,需要显示制定用户/用户组的权限。在命令中通过ugoa来表示用户/用户组。u代表文件所属着,也就是owner。以此类推:g表示用户组,o表示others。a表示all,所有。上个例子中,我们已经把权限改成了rwx rwx ---,现在我们希望owner的权限依然为rwx,但是用户组权限改为r--,others的权限改为r--,那么我们可以执行:chmod u=rwx,go=r-- JonathanFile.txt

3. 如果我们并不关心当前的权限怎样,我们只是希望所有用户(all)都有x的权限,那么我们可以执行:chmod a+x JonathanFile.txt (+表示增加某种权限,相应的,-表示去除某种权限)

到目前为止,相信我们对chgrp/chown/chmod都有一定的了解了。其实还有很多选项可以和这几个命令组合使用,使用的过程中,就多man吧。那,权限对于文件/文件夹的意义到底是什么呢?

权限对于文件的意义:对于文件而言,权限决定了某个用户可以对一个文件内容可以操纵的程度:对文件可读、可写还是可执行。需要值得注意的是,在Linux中,文件是否可执行并不是通过文件的扩展名控制的,而是看是否具有x权限。我们可能会遇到在网上下载的文件不可执行,那么这种情况可以先检查一下对这个文件是否有x权限。/

权限对于文件夹的意义:其实文件价可以看成一个列表,这个列表里包括来文件价下面的所有文件/文件夹。对于文件夹,r和w都好理解,那么x呢?x代表什么?直接来几个例子吧:

1. 我们修改一下JonathanTestFolder的权限,使得用户Jonathan仅仅具有rw权限,但没有x。那么,ls的时候,我们仅能知道该目录下面有那么一个文件,但详细信息都看不到的。

2. 接着上一个例子,没有x,只有rw,我无法查看该文件夹下面的文件的详细信息,那么我能在这个文件夹下面创建新文件么。答案是否定的,因为我没办法进入到这个文件夹里,就因为没有x

通过以上例子,可以得出x对于文件夹,很重要。即使有rw却没有x,我们也没办法访问文件夹下面的文件。

那么,是不是意味着对文件夹的x权限,都应该给呢?当然不是,当对文件夹有w和x的权限时,我们可以删除文件夹下面的任意文件,即使我们本身对下面的文件没有任何权限。下面来看一个例子:

1. 我们修改一下Jonathan对JonathanTestFolder的权限,使之为rwx

2. 使用root账户在JonathanTestFolder下面建立一个文件rootfile.txt,同时设置权限,使得Jonathan对这个文件没任何权限

3. 使用Jonathan账户,删除rootfile.txt成功!

所以,设置权限,一定要慎重哦!(本文完)

菜鸟学Linux - 设置文件/文件夹的权限的更多相关文章

  1. 菜鸟学Linux - 文件/文件夹的隐藏属性

    文件/文件夹居然还有隐藏属性?没错,隐藏属性对于文件/文件夹的安全很重要.好比如说,我们需要使用”鉴定符“来揭开装备的隐藏属性:在Linux中chattr/lsattr就是“鉴定符”. chattr基 ...

  2. 菜鸟学Linux命令:chmod命令和数字文件权限

    chmod是一条在Unix系统中用于控制用户对文件的权限的命令(change mode单词前缀的组合)和函数.只有文件所有者和超级用户可以修改文件或目录的权限.可以使用绝对模式,符号模式指定文件的权限 ...

  3. 菜鸟学Linux命令:cat命令 查看文件内容

    cat命令的用途是连接文件或标准输入并打印. 这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. Linux下查看文件内容的方式很多:vi ...

  4. 菜鸟学Linux命令:grep配合ls等使用

    linux grep命令 (global search regular expression(RE) and print out the line )是一种强大的文本搜索工具,它能使用正则表达式搜索文 ...

  5. 菜鸟学Linux - Linux文件属性

    在Linux中,文件的属性是一个很重要的概念,用户或者用户组对一个文件所拥有的权限,都可以从文件的属性得知. 我们可以通过ls -al命令,列出某个文件夹下面的所有文件(包括以.开头的隐藏文件).下面 ...

  6. Linux设置普通用户无密码sudo权限

    配置普通用户无密码sudo权限: root用户进入到Linux系统的/etc目录下 cd /etc 将sudoers文件赋予写的权限 chmod u+w /etc/sudoers 编辑sudoers文 ...

  7. 【菜鸟学Linux】Cron Job定期删除Log(日志)文件

    以前一直做Windows开发,近期的项目中要求使用Linux.作为小菜鸟一枚,赶紧买了一本经典书<鸟哥的Linux私房菜>学习.最近刚好有一个小任务 - 由于产品产生的Log很多,而且增长 ...

  8. 菜鸟学Linux命令:find命令 查找文件

    find命令是Linux下最常用的命令之一,灵活的使用find命令,你会发现查找文件变得十分简单. 命令格式 find [指定查找目录]  [查找规则(选项)]  [查找完后执行的动作] 参数规则 - ...

  9. 菜鸟学Linux命令:lsof命令 查找指定用户、进程、端口打开的文件

    lsof,list open files, 是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件. 命令格式:ls ...

随机推荐

  1. javascript 获取dom书的下一个节点。

    利用javascript 写一个在页面点击加减按钮实现数字的累加.. 简略的html大概如此.看得懂就好不要在意这些细节啊 <input type="button" valu ...

  2. 输入网址调用第三方接口获取结果_java

    最近公司给了一个第三方服务的网址,要我调用后返回需要用到的信息 具体网址:http://www.xxxx.com/xxx-api/xxxx/getXxxByUserId?userId=" + ...

  3. Git 常用基本命令汇总

    安装git yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install -y gi ...

  4. javascript中call()、apply()、bind()的用法理解

    一.bind的用法 第一个:obj.showInfo('arg','arg_18');中传的2个参数通过showInfo方法改变的是obj下中的name和age 第二个:obj.showInfo.bi ...

  5. jQuery_2_常规选择器-进阶选择器

    进阶选择器: 1. 群组选择器     $("span,em,#box")   获取多个选择器的DOM对象 <div id="d1">div< ...

  6. ubuntu常见错误

    ubuntu常见错误--Could not get lock /var/lib/dpkg/lock解决 ubuntu常见错误--Could not get lock /var/lib/dpkg/loc ...

  7. UOJ#210. 【UER #6】寻找罪犯 2-sat

    #210. [UER #6]寻找罪犯 链接:http://uoj.ac/problem/210 想法:2-sat模型.每个人拆点,分别表示为犯人.非犯人.每个句供词拆点,分别表示真话.假话.供词与对应 ...

  8. IOS 模仿有storyboard的项目控制器的创建

    ● 先加载storyboard文件(Test是storyboard的文件名) UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@ ...

  9. java生成excel文档

    要做一个后台自动化,要先预先生成一份文档,以下内容生成了文档 首先下载jxl.jar包,下载地址:http://download.csdn.net/detail/prstaxy/4469935 1.生 ...

  10. bzoj3887: [Usaco2015 Jan]Grass Cownoisseur

    题意: 给一个有向图,然后选一条路径起点终点都为1的路径出来,有一次机会可以沿某条边逆方向走,问最多有多少个点可以被经过?(一个点在路径中无论出现多少正整数次对答案的贡献均为1) =>有向图我们 ...