如何在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. BZOJ4888 [Tjoi2017]异或和 FFT或树状数组+二进制拆位

    题面 戳这里 简要题解 做法一 因为所有数的和才100w,所以我们可以直接求出所有区间和. 直接把前缀和存到一个权值数组,再倒着存一遍,大力卷积一波. 这样做在bzoj目前还过不了,但是luogu开O ...

  2. 为何IT开发人员如此辛苦?

    一个本来挺简单的功能,硬是让PM(产品经理)设计的非常复杂,各种逻辑切换.这样不但用户体验不好,还容易出各种bug.为了让用户学会使用产品,用了各种引导图,什么手势引导,按钮点击引导,提示弹窗都用上了 ...

  3. ArcGIS教程:曲率

    摘要 计算栅格表面的曲率,包括剖面曲率和平面曲率. 用法 · 主要输出结果为每个像元的表面曲率,该值通过将该像元与八个相邻像元拟合而得.曲率是表面的二阶导数,或者可称之为坡度的坡度.可供选择的输出曲率 ...

  4. linux 启动 Oracle 实例

    启动数据库实例,分为两步:第一步,启动监听:第二步,启动数据库实例. 一.如何启动数据库实例 1.进入到sqlplus启动实例 --“切换到oracle用户” su - oracle --“打开监听” ...

  5. java实现在线浏览zip文件及文件下载

    应用背景:我们知道压缩文件中某一个文件的名字,只想下载这个文件而不下载整个压缩文件. 先来看一上QQ邮箱的附件浏览: 以下是我们第一个版本的: 业务逻辑中还要判读用户是否有此文件的防问权限 2017- ...

  6. [C#]手把手教你打造Socket的TCP通讯连接(一)

    本文章将讲解基于TCP连接的Socket通讯,使用Socket异步功能,并且无粘包现象,通过事件驱动使用. 在编写Socket代码之前,我们得要定义一下Socket的基本功能. 作为一个TCP连接,不 ...

  7. Java:大文件拆分工具

    java大文件拆分工具(过滤掉表头) import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...

  8. SpringMVC项目配置欢迎页面为index.html

    一.问题 在web.xml中添加如下配置无效 <welcome-file-list> <welcome-file>index.html</welcome-file> ...

  9. EF6 DbModelBuilder

    protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Produc ...

  10. java command line error opening registry key 'Software\JavaSoft\Java Runtime Environment' java.dll

    C:\Users\huxxxxchan>javaError: opening registry key 'Software\JavaSoft\Java Runtime Environment'E ...