如何在Linux中管理文件和文件夹的权限?

2014-02-12 10:58 布加迪编译 51CTO 字号:T | T

Linux系统有严格的权限管理制度,操作者权限与文件权限不匹配时将无法对文件进行任何操作。对许多Linux用户来说,习惯于文件的权限和所有权可能有点难度。本文从命令行开始入手,教您在Linux中管理文件和文件夹权限的方法。

AD:51CTO学院:IT精品课程在线看!

【51CTO精选译文】对许多Linux用户来说,习惯于文件的权限和所有权可能有点难度。人们通常认为,想进入到这种使用级别,必须使用命令行。虽然总是可以获得强大得多的功能和灵活性,但是运行貌似复杂的命令并非总是必不可少。借助现有的一些用起来极其方便的桌面界面,你几乎不需要使用什么命令行,就能如愿以偿,哪怕是在管理文件权限和所有权方面。

确实如此,这可能让许多新用户大吃一惊;你可以从文件管理器里面来管理文件和文件夹。但是在我们探讨图形用户界面(GUI)之前,最好对其工作机理有一个深入的了解。所以,我们先从命令行开始入手。

命令行:文件权限

改动文件权限和所有权的两个命令如下:

  • chmod - 更改权限
  • chown - 更改所有权

上面两个命令用起来都不难。不过你要明白,只有用户是当前所有者或根用户,才能够实际更改文件的权限或所有权,这一点很重要。所以,如果你是用户Bethany,要是不借助根权限(或sudo),就无法对用户Jacob拥有的文件和文件夹进行更改。比如说:

数据分区上创建了一个新的文件夹,名为/DATA/SHARE。Bethany和Jacob这两个用户都需要拥有读取和写入该文件夹的访问权限。有许多方法可以实现这一点(其中一个方法是,把两个用户加入到一个特殊的用户组――我们会在另一篇文章中探讨如何管理用户组)。如果Bethany和Jacob是系统上的唯一两个用户(而且你知道自己的网络很安全――这很重要),就可以更改该文件夹的权限,为他们授予访问权。为此,一个方法就是执行该命令。

  1. sudo chmod -R ugo+rw /DATA/SHARE

上面这个命令的详细分解如下:

  • sudo - 这用于为使用sudo的任何系统上的命令获得管理员权限(不然你就得使用'su'以获得根权限,运行不带'sudo'的上面这个命令)
  • chmod - 改动权限的命令
  • -R - 这改动父文件夹及其里面子对象的权限
  • ugo+rw - 这为User(用户)、Group(用户组)及Other(其他对象)授予读取和写入访问权限。

你可能也猜测到了,这个命令完全开放了SHARE文件夹的权限,那样系统上的任何人都能访问该文件夹。正如我在前面提到的那样,一种更安全的方法就是使用用户组。但我们使用这种方法仅仅是为了演示。

权限的详细分解如下:

  • u - 用户
  • g - 用户组
  • o - 其他对象

"其他对象"这个条目是个危险的条目,因为它实际上为每个人赋予了文件夹/文件的权限。你为某文件或文件夹所能赋予的权限如下:

  • r - 读取
  • w- 写入
  • x - 执行

使用-R这个参数选项符很重要。如果你在SHARE目录里面有许多子文件夹和文件,又希望权限从父对象(包含文件夹)应用到子对象(子文件夹和文件),就必须使用-R(递归)这个参数选项符,那样同样的权限就可以一路应用到父文件夹里面包含的最深层文件夹。

命令行:文件所有权

更改文件或文件夹的所有权同样很简单。假设Jacob为Bethany把一个文件夹移入到SHARE目录里面,但是Jacob仍拥有所有权。只要借助一个简单的命令,就可以更改这个所有权:

  1. sudo chown -R bethany /DATA/SHARE

让我们详细分解这个命令。

  • sudo - 必须用到管理员权限,因为我们所处理的是属于另一个用户的文件夹
  • chown - 更改所有权的命令·-R - 这个递归参数选项符确保所有子对象都获得同样的所有权变更。
  • bethany - 文件夹的新所有者
  • /DATA/SHARE - 所要修改的目录

要是Bethany将文件夹发回给Jacob,就需要再次更改所有权(如果使用用户组,同样可以简化这一步)。

GUI:用户权限

我准备在Ubuntu 13.10系统上,使用Nautilus文件管理器,演示如何更改文件权限。

假设你需要允许每个人都获得读取/写入文件夹TEST的权限。为此,在Nautilus文件管理器里面,采取下面这些步骤:

1.打开Nautilus

2.浏览至目标文件或目标文件夹

3.鼠标右击该文件或文件夹

4.选择Properties(属性)

5.点击Permissions(权限)选项卡

6.点击Others(其他)部分中的Access files(访问文件)

7.选择"Create and delete files"(创建并删除文件)

8.点击Change Permissions for Enclosed Files(更改所附文件的权限)

9.在随后弹出的窗口中,选择Files(文件)下的Read and Write(读取和写入),选择Folders(文件夹)下的Create and delete files(创建并删除文件),见图A。

10.点击Change(更改)。

11.点击Close(关闭)。

498)this.width=498;" onmousewheel="javascript:return big(this)" alt="" src="http://s1.51cto.com/wyfs02/M00/12/24/wKiom1L65p2BxJFCAACc1hqgT7I279.jpg">

如果你需要更改不属于你的文件夹的权限,戏法就会出现。可以实现这一幕,但必须在拥有管理员访问权的前提下启动Nautilus。为此,采取下面这些步骤:

1.打开终端窗口

2.执行命令sudo -i

3.执行命令nautilus

sudo -i命令为你赋予了持久访问sudo的权限,直到你输入exit命令,清除该访问权。一旦Nautilus打开,你可以更改文件夹或文件的权限,如上所述――即便你不是该文件夹或文件的所有者。

注意:如果你所使用的发行版并不使用sudo,就要把上述指令改成如下:

1.打开终端窗口

2.执行命令su

3.键入你的根密码,按回车键

4.执行命令nautilus。

在你完成这项任务之后,关闭Nautilus窗口,然后关闭终端窗口。

GUI:更改所有权

更改文件或文件夹的所有权常常需要使用管理员权限。所以为此,你需要采用上面介绍的方法来启动Nautilus。

想借助Nautilus更改文件夹或文件的所有权,请采取下面这些步骤:

1.在借助管理员权限打开的Nautilus窗口中,找到相应的文件夹或文件

2.鼠标右击该文件夹(或文件)

3.点击Permissions(权限)选项卡

4.从Owner(所有者)下拉框中选择新的所有者(见下图)

5.点击Close(关闭)。

转自:http://os.51cto.com/art/201402/428907.htm

先创建文件夹:
         sudo mkdir /usr/local/fuwushe
   回车后要输密码(就是你登陆密码)再回车。 复制文件:
   U盘的路径不知道在哪里你就可以这样做,先用鼠标操作,打开进入U盘。假如你要复制“file”(可为文件,也可为文件夹)这个文件,就右击它,点复制。然后回到终端,先输入
       "sudo cp -r"(如果file是目录就要加“-r”,不是就不加),
输入完之后再加个空格,然后右击,点“粘贴文件名”,file的路径就补上的,形如: 
        sudo cp -r ' /.../.../.../file ' ,
那个单引号最好不要去掉 ,因为如果你文件名有空格的话,去掉单引号后操作会失败。粘贴文件名后再接着输入
         /usr/local/fuwushe/
这样命令就形如:
        sudo cp -r ' /.../.../.../file ' /usr/local/fuwushe/
(再提醒一次,file是目录就要那个 -r ,是文件就不要),回车即可。 修改权限:
  因为那些文件你是从外部存储设备里拷贝而来,一般用户连读的权限都没有,你不用sudo是不能访问的。因此,还需要修改权限,添加可读权限:
        sudo chmod -R +r /usr/local/fuwushe
回车后即可。如果你复制的文件是可执行文件或者是脚本的话,你还需要添加可执行权限:
        sudo chmod +x /usr/local/fuwushe/.../filename
filename就是可执行文件或脚本的名字,“...”就是省略的文件的部分路径,需要你自己补上。每一个可执行文件或脚本都要这样做一遍。如果你所复制的文件都是可执行文件或脚本的话,也可以一次性批量地操作:
        sudo chmod -R +x /usr/local/fuwushe

修改Linux下的文件以及文件夹的权限的更多相关文章

  1. Linux下 两台机器文件/文件夹 相互拷贝

    Linux下 两台机器文件/文件夹 相互拷贝 设有两台机器 :A:*.101及 B:*.102. 把A下的.temp/var/a.txt拷贝到B机器的/text/目录下: 进入B机器:scp root ...

  2. linux下php上传文件注意

    linux下php上传文件注意1.修改上传目录权限linux 修改某目录下所有所有子目录权限chmod -R 777 html修改某目录为任何用户都用写读执行权限chmod a+rwx html2.设 ...

  3. linux下生成core dump文件方法及设置

    linux下生成core dump文件方法及设置    from:http://www.cppblog.com/kongque/archive/2011/03/07/141262.html core ...

  4. Linux 下 Vi 配置文件 .vimrc 文件

    Linux 下 Vi 配置文件 .vimrc 文件 配置 vim 的方法是在用户主目录下建立个.vimrc文件,我一般使用root帐户,所以就在/root/下建立一个.vimrc文件:vi /root ...

  5. linux下为目录和文件设置权限

    摘:linux下为目录和文件设置权限 分类: Linux2012-05-09 03:18 7456人阅读 评论(1) 收藏 举报 linuxwordpressweb数据库serverfile linu ...

  6. linux下恢复误删除的文件方法(ext2及ext3)

     linux下恢复误删除的文件方法(ext2及ext3) 2009-12-19 15:23:47 分类: LINUX 如果是ext2文件系统的,直接用debugfs是可以恢复出来的,但对于ext3,d ...

  7. linux下分卷tar.bz文件的合并并解压缩

    linux下分卷tar.bz文件的合并并解压缩 例: linux.tar.bz2.001;linux.tar.bz2.002;linux.tar.bz2.003; 首先 cat linux.tar.b ...

  8. Linux下遍历目录及文件,更改权限

    Linux下遍历目录及文件,更改权限 引言: 我在Linux下搭建android时,将eclipse及sdk复制到/usr/下时,总会出现无法读,无法写写样的问题. 解决方案: 有两个方案: 一.将复 ...

  9. 恢复Linux下被误删除的文件(笔记)

    恢复Linux下被误删除的文件 [root@xuegod63 ~]# mount /dev/cdrom /mnt/ 分一个区:sda4  查找:extundelete 分一个区:sda4  [root ...

  10. linux下java调用.so文件的方法1: JNI

    摘自http://blog.163.com/squall_smile/blog/static/6034984020129296931793/ https://my.oschina.net/simabe ...

随机推荐

  1. GCC&&GDB在OI中的介绍

    序言 这本来是用Word写的,但是后来我换了系统所以只能用markdown迁移然后写了...... $\qquad$本文主要投食给那些在Windows下活了很久然后考试时发现需要用命令行来操作时困惑万 ...

  2. android studio git 将项目分享到github,推送到其他平台 码云 等。

    android studio git 将项目分享到github,推送到其他平台 码云 等. 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E- ...

  3. java后端发送请求

    package com.ty.mapapisystem.util; import java.io.BufferedReader;import java.io.FileInputStream;impor ...

  4. [模板][P3377]左偏树

    Description: 一开始有N个小根堆,每个堆包含且仅包含一个数.接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数 ...

  5. Java开发笔记(九十一)IO流处理简单的数据压缩

    前面介绍的文件I/O,不管是写入文本还是写入对象,文件中的数据基本是原来的模样,用记事本之类的文本编辑软件都能浏览个大概.这么存储数据,要说方便确实方便,只是不够经济划算,原因有二:其一,写入的数据可 ...

  6. BZOJ2759一个动态树好题 LCT

    题如其名啊 昨天晚上写了一发忘保存 只好今天又码一遍了 将题目中怕$p[i]$看做$i$的$father$ 可以发现每个联通块都是一个基环树 我们对每个基环删掉环上一条边 就可以得到一个森林了 可以用 ...

  7. 报错:[__NSArrayI objectAtIndex:]: index 5 beyond bounds [0 .. 4]'

    报错内容:如下 分析: 遇到这种情况,说明超出了数组的范围 如要插入某组数据,但是这组数据只有10条:但是这里设置为20条.当第11个cell填充数据时就会报错, [__NSArrayI object ...

  8. reac-native环境搭建

    转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/react-native%E7%8E%AF%E5%A2%83%E6%90% ...

  9. python: 序列化/反序列化及对象的深拷贝/浅拷贝

    一.序列化/反序列化 python中内置了很多序列化/反序列化的方式,最常用的有json.pickle.marshal这三种,示例用法如下: import json import pickle imp ...

  10. copy unicode HTML to clipboard

    How to copy unicode HTML code to the clipboard in html format, so it can be pasted into Writer, Word ...