Beginners Level Course:File Permissions - chmod

Linux继承了Unix的文件所属者和权限的概念。基本的原因是这样可以在网络系统中方便的使用,在网络系统中用户可以使用各种各样的程序、文件等等。很显然,这需要保持其组织性和安全性。我们不想一个普通用户使用一个潜在能使整个系统变成垃圾的程序。这里同样存在安全和隐私问题。用一个现实的例子说明:我们不想让Bill看Bob写给在R&D工作的Janet的情书。(因为Janet是Bill的未婚夫)。最终,重要的是要知道什么是属于我的、你的和每个人的。

在本文刚开始提到的,很大的优势是Linux拥有多用户的概念——事实上很多不同的用户可以使用同一台计算机或者同一个用户可以使用同一台计算机处理不一样的事情。在这里文件权限可以帮助解决一些很让人费解的问题。我们将会介绍一些关于文件的拥有者和对文件操作的基本概念。在这里我们不会很深入细节。我们把它留在Linux系统管理员课程中。我们将会介绍怎样;理解文件权限符号和怎样修改文件以使它们更加安全。

文件权限符号

如果你在你的home目录里运行ls -l命令,则你将会得到一个文件列表,文件类表将包含以下类似内容:

-rw-r--r--  1  bob  users  1892  Jul 10  18:30 linux_course_notes.txt

我们从右向左对该输出进行解释。上面的语句表示文件linux_course_notes.txt创建于7月10号下午6:30分,其大小为1892字节。它属于users组(即,使用该计算机的人)。它属于bob用户并且只是一个文件。接下来的是文件权限符号。

让我们看一下这些符号代表什么含义:

横线-:将权限分成三种类型,第一部分指的是拥有者(bob)的权限。

在rw之前的-意味着这是一个普通文件,包含任意类型的数据。如果是一个目录,则在开头会是一个d而不是一个-。

接下来的表示bob可以读和写(修改)他拥有的文件。这里逻辑是正确的,因为你可以对你自己的文件做任何操作。

第二个-后面的第二部分符号是组所对应的权限。对于文件访问Linux可以创建不同类型的组。在跟bob同一个组中的任何用户都可以读该文件,但是不能写(修改)该文件。这是一种非常普通的情况。作为一个用户的你,可能像去掉别人对你文件的读取权限。我们将会在后面介绍。

在两个--(这里是两个适应为组没有写权限)之后,是全体用户的权限。任何进入该计算机的用户,无论是从内部还是外部(通过网络),都能读该文件。再次说明,如果我们选择,我们可以去掉用户对该文件的读取权限。

让我们看一个其他的例子。查看不同文件权限类型的有趣地方是/bin目录。这里的命令每个用户都可以使用。我们看一下gzip命令,一个Linux系统文件压缩工具。

-rwxr-xr-x  1 root    root        53468 May  1  1999 gzip

可以看出有一些不同的地方。程序的名字、时间和大小都是标准的。即使是很明显的信息是不同的,但是表示的含义跟前面一样。

变化的是拥有者和组。root是文件的拥有者并且他在root组中。root用户是root组仅有的成员。

这是一个可执行文件,所以字母x在字符中。

这个文件可以被任何人执行:拥有者(root)、组(root)和所有其他可以使用该计算机的用户。

正如我们所提到的,这个文件是一个程序,所以除了root的其他用户没有必要拥有写(修改)权限。所以除了root用户其他用户都没有w权限。

如果我们查看/sbin目录下的文件,这个目录下的文件只有root用户能够使用和执行,权限如下所示:

-rwxr--r--  1 root    root        1065 Jan 14  1999 cron

‘cron’是Linux系统的一个程序,它允许程序在特定的时间和特定的情况下自动运行。在这里可以看出仅仅它的拥有者root用户可以使用该程序。对于其他用户没有x权限。

希望你喜欢这里对Linux文件权限简单的介绍。下面来讲一下改变特定的权限。

chmod

chmod是一个Linux命令,这个命令可以让你设置一个文件的权限(设置谁能读/写/执行)。

命令格式:chmod permissions file

chmod permission1_permission2_permission3 file

当使用chmod命令时,你需要清楚你正在为三种类型的Linux用户设置权限。因此,当设置权限时,是你自己为自己、你所在的组和其他的所有用户设置权限。这些用户称为:

Owner

Group

World

因此,当为一个文件设置权限时,你将会为设置所有三个层次的权限,而不仅仅是为一个用户设置。

chmod命令实际上有下面的语法:

chmod owner group world FileName

既然已经理解为三个层次的用户设置权限,你要做的仅仅是想想你能够设置什么样的权限。

Linux允许每个文件有三种类型的权限:

read:读

write:写(修改)

execute:执行

把它们放在一起

所以在外行人来看,如果你想一个文件可以被所有人读取并只能被你自己修改,你会将chomd命令携程下面的结构:

COMMAND : OWNER : GROUP : WORLD : PATH

chmod read & write read read FileName

chmod 644 myDoc.txt

上面的数字是什么?!?

计算机喜欢数字而不是单词。不幸的是你必须跟数字打交道。看一下`ls -l`命令的输出:

-rw-r--r-- 1 gcawood iqnection 382 Dec 19 6:49 myDoc.txt

你需要将读、写、执行转换成下表中与之对应的8进制数据:

4 读(r)

2 写(w)

1 执行(×)

练习实例:

将mydoc.txt修改成用户可读:chmod 400

将mydoc.txt修改成组可读:chmod 040

将mydoc.txt修改成所有用户可读:chmod 004

将mydoc.txt修改成用户可写:chmod 200

将mydoc.txt修改成组可写:chmod 020

将mydoc.txt修改成任何人可写:chmod 002

将mydoc.txt修改成用户可执行:chmod 100

将mydoc.txt修改成组可执行:chmod 010

将mydoc.txt修改成任何人可执行:chmod 001

等等!我还没明白……没有足够的权限像设置我想要的!

好问题。你需要将数字加起来获得其它类型的权限……

所以,要好好想想!

7 = 4+2+1 (读/写/执行)

6 = 4+2 (读/写)

5 = 4+1 (读/执行)

4 = 4 (读)

3 = 2+1 (写/执行)

2 = 2 (写)

1 = 1 (执行)

chmod 666 mydoc.txt,是该文件可以被任何人读/写!(恶魔喜欢这样的文件!)

chmod 755 mydoc.txt,文件拥有者有读/写/执行权限,所在组有读/执行权限,其他所有用户有读/执行权限。

chmod 777 mydoc.txt,所有的用户都有读/写/执行权限。

原文地址:http://www.linux.org/threads/file-permissions-chmod.4094/

时间: 2024-11-04 11:44:43

Beginners Level Course:File Permissions - chmod的相关文章

Beginners Level Course:File Permisions - chown

chown命令是chmod命令的堂兄.该命令用来修改文件的拥有者('chown'--change owner).然而它不改变读,写和执行权限. 每个用户都可以使用这个命令,这个命令的用法如下: chown owner.group filename 假设你想从Windows分区中拷贝某些东西(假设你有一个Windows分区),你以root用户挂在分区,为了节省时间,你拷贝文件到用户目录/home/bob/.如果你使用ls -l查看拷贝的文件(the_file)你将会得到如下信息: -rw-r--r

Error of "Please Check for Sufficient Write File Permissions"

The error message “Please check for sufficient write file permissions” is generated by the Web-based downloader, known as Magento Connect Manager, which forms part of the Magento eCommerce platform. The Magento eCommerce platform is an open-source pl

file permissions

文件读写权限 [[email protected] /]# ll /tmp/ total 20 drwx-w-r--. 2 root root    6 May  3 12:24 a1 d-w-r----x. 2 root root    6 May  3 12:24 a2 #ll或#ls -l 命令可查看到文件和文件夹权限,主要针对三类对象:owner,group,other 总结了对应的读写标识.三位2进制.8进制 --- 000 0 --x 001 1 -w- 010 2 -wx 011

Beginners Level Course:MAN Pages & Useful Information

怎样使用Linux获取更多的信息 现在我们将讨论一些你日常使用Linux工作中可能需要的其它命令.它们是你的工作变得简单并且会给你关于你的系统的额外信息. 'man'--Linux中的手册 第一个命令是'man'命令.这个命令将会显示一个命令或者程序的手册.手册是一个文件,这个文件给出了怎样使用该命令并列出该命令的不同选项.你可以这样输入: man [the command] 例如,你输入: man mkdir 这个'mkdir'的手册文件将会被给出并且给你对该命令的一个详细解释. 在Linux

Beginners Level Course:Introduction to Linux

欢迎来到"开启Linux之旅:入门教程".如果你没有接触过Linux并且想知道怎么使用在今天这个成长速度最快的操作系统,所有你需要做的是跟随接下来的课程,很快你就能高效的使用Linux. 开启Linux之旅:入门教程是一个自学教程.是这个课程变得与众不同的是在课程的任何地方你都可以添加笔记或者评论.在屏幕右侧的评论栏可以做到这些.这些评论可以是公开的,也可以是不公开的,并且可以是你喜欢的任何形式.可以自由的使用它们提问.回答其他人的问题.粘贴更新或者提出解决问题的不同方法. Linux

Beginners Level Course:Day to Day with Linux

关闭Linux(关机) 此时此刻你应该已经安装了Linux,并且你正在左顾右看的你有什么.当你结束时,你必须关闭计算机.实际上,有永远也不关机的电脑.假象你的ISP(网络服务提供商)每天晚上都关机!互联网是24/7的工作,所以这不现实.但是可能有仅仅关闭显示器的用户.就像你会偶尔休息,所以我们可能也会让我们的电脑过一阵子休息一段时间.对于这个问题,我们可以使用shutdown命令实现. 使用过电脑的人都知道,如果你在保存工作完成之前关机或停电,数据将会丢失.最初的,如果你你错误的关闭Linux或

Beginners Level Course: What is Linux?

Linux是一个操作系统,它由Linus Torvalds的创建的内核演化而来,Linus创建该内核时他还是赫尔辛基大学的一名学生.这是通常意义上的为大家所熟知的Linux.但是由于政治和现实的原因,需要深入解释.称Linux是一个操作系统意味着它是其它操作系统的一个可选的操作系统,例如Windows.Mac OS.MS-DOS.Solaris等等.Linux不是一个字处理程序也不是一个办公套件的结合.Linux是计算机/服务器硬件和运行在它上的程序的一个接口. Linux历史简介 当Linus

Magento Connector: Error: Please check for sufficient write file permissions

请确保下面的文件是可写的: /path/to/your/magento-install/path/to/your/magento-install/downloader/path/to/your/magento-install/downloader/config.ini/path/to/your/magento-install/downloader/pearlib/config.ini/path/to/your/magento-install/downloader/pearlib/pear.ini

Beginners Level Course:Distro: openSUSE

"openSUSE项目是一个世界范围内人员的努力的产物,其发扬处处使用Linux.openSUSE创建了最好用的Linux发行版之一,其工作在一个开放.透明和友好的方式下,作为世界范围内的自由和开源软件社区的一部分. 这个项目由社区管理并依赖于个人的贡献,包括测试人员.开发人员.翻译人员.可用性专家和大使或开发人员.这个项目使用了多种多样的技术,拥有不同级别专业知识的技术人员,讲着不同的语言并且有着不同的文化背景"[1] 请访问openSUSE.org并支持他们的工作: http://