分类: Linux2012-05-09 03:18 7456人阅读 评论(1) 收藏 举报

linux下为目录和文件设置权限,包括子目录的循环递归设置

chmod  命令可以改变所有子目录的权限,下面有2种方法 
改变一个文件的权限: chmod mode file|dir 
改变所有子目录的权限: chmod mode dir -R                  注意后面加了个-R参数 
参数就是权限模式 mode = 777 or 752 ,666,,, 
mode 的三个数字,分别表示owner,group,others所具有的权限。 
1 = x 执行 2 = w 写 4 = r 读,比如owner具有所有权限,1+2+4=7, 
又比如group 具有读 和执行权限 1+4 = 5

把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。 
    $ chown –R wang.users /his

上传了个 Wordpress,在线解压后发现文件没有写入权限, 于是用了 chmod 777 
filename 
但只改了该文件, 文件内的文件还是没有写入权限, 网上查了一下, 
修改linux文件权限命令:chmod 
用法:chmod XXX filename

×××(所有者\组用户\其他用户)

×=4 读的权限 
×=2 写的权限 
×=1 执行的权限

常用修改权限的命令:

sudo chmod 600 ××× (只有所有者有读和写的权限) 
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限) 
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)

sudo chmod 666 ××× (每个人都有读和写的权限)

sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

例如: 
    - rw- r–r–

普通文件 文件主组用户其他用户 
    是文件sobsrc.tgz 的访问权限,表示sobsrc.tgz是一个普通文件;sobsrc.tgz 
的属主有读写权限;与sobsrc.tgz属主同组的用户只有读权限;其他用户也只有读权限。 
    确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod命令来重新设 
定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者。利用chgrp

命令来更改某个文件或目录的用户组。 
    下面分别对这些命令加以介绍。 
    chmod 命令

chmod 命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目

录的访问权限。 
    该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字 
的数字设定法。 
    1. 文字设定法 
    chmod  [who] [+ | –| =] [mode]文件名?

命令中各选项的含义为: 
    操作对象who可是下述字母中的任一个或者它们的组合: 
    u 表示”用户(user)”,即文件或目录的所有者。 
    g 表示”同组(group)用户”,即与文件属主有相同组ID的所有用户。 
    o 表示”其他(others)用户”。 
    a 表示”所有(all)用户”。它是系统默认值。

操作符号可以是: 
    + 添加某个权限。 
    - 取消某个权限。 
    = 赋予给定权限并取消其他所有权限(如果有的话)。 
    设置mode所表示的权限可用下述字母的任意组合: 
    r 可读。 
    w 可写。 
    x 可执行。 
    X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。 
    s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式”u+s”设置文件 
的用户ID位,”g+s”设置组ID位。 
    t 保存程序的文本到交换设备上。 
    u 与文件属主拥有一样的权限。 
    g 与和文件属主同组的用户拥有一样的权限。 
    o 与其他用户拥有一样的权限。

文件名:以空格分开的要改变权限的文件列表,支持通配符。 
    在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r 
example 
    使同组和其他用户对文件example 有读权限。 
    2. 数字设定法 
    我们必须首先了解用数字表示的属性的含义:0 表示没有权限,1 表示可执行权限,2 
表示可写权限,4 表示可读权限,然后将其相加。所以数字属性的格式应为3个从0 到7 
的八进制数,其顺序是(u)(g)(o)。 
    例如,如果想让某个文件的属主有”读/写”二种权限,需要把4 (可读)+2 (可写) 
=6 (读/写)。

数字设定法的一般形式为: 
    chmod  [mode]文件名?

例子: 
     (1)文字设定法: 
    例1:$ chmod a+x sort 
    即设定文件sort 的属性为: 
    文件属主(u)增加执行权限

与文件属主同组用户(g)增加执行权限 
    其他用户(o)增加执行权限 
    例2:$ chmod ug+w,o-x text 
    即设定文件text的属性为: 
    文件属主(u)增加写权限 
    与文件属主同组用户(g)增加写权限 
    其他用户(o)删除执行权限 
    例3:$ chmod u+s a.out 
    假设执行chmod后a.out 的权限为(可以用ls –l a.out命令来看): 
    -rws–x–x 1 inin users 7192 Nov 4 14:22 a.out 
    并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为”-rw——-”,

即该文件只有其属主具有读写权限。 
    当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod 
命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为 
其他人不具备任何权限),这就是s 的功能。 
    因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非必 
要)这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵。 
    例4:$ chmod a-x mm.txt 
    $ chmod -x mm.txt 
    $ chmod ugo-x mm.txt 
    以上这三个命令都是将文件mm.txt 的执行权限删除,它设定的对象为所有使用者。 
     (2)数字设定法: 
    例1:$ chmod 644 mm.txt 
    $ ls -l 
    即设定文件mm.txt的属性为: 
    -rw-r–r–1 inin users 1155 Nov 5 11:22 mm.txt 
    文件属主(u)inin 拥有读、写权限 
    与文件属主同组人用户(g)拥有读权限 
    其他人(o)拥有读权限 
    例2:$ chmod 750 wch.txt 
    $ ls -l 
    -rwxr-x— 1 inin users 44137 Nov 12 9:22 wchtxt 
    即设定wchtxt这个文件的属性为: 
    文件主本人(u)inin 可读/可写/可执行权 
    与文件主同组人(g)可读/可执行权 
    其他人(o)没有任何权限 
    chgrp命令

功能:改变文件或目录所属的组。 
    语法:chgrp  [选项]group filename? 
    该命令改变指定指定文件所属的用户组。其中 group 可以是用户组 ID,也可以是 
/etc/group 文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持

通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。 
    该命令的各选项含义为: 
    - R 递归式地改变指定目录及其下的所有子目录和文件的属组。

例1:$ chgrp –R book /opt/local /book 
    改变/opt/local /book/及其子目录下的所有文件的属组为book。 
    chown 命令 
    功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己 
的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件 
的属主设为xu,否则,用户xu无法存取这个文件。 
    语法:chown  [选项]用户或组文件 
    说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。 
组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。

该命令的各选项含义如下: 
    - R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。 
    - v 显示chown命令所做的工作。 
    例1:把文件shiyan.c 的所有者改为wang。 
    $ chown wang shiyan.c 
    例2:把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。 
    $ chown –R wang.users /his

Linux下Web 目录和文件安全权限设置 
在Linux下,web 目录和文件权限必须从整体上考虑系统的安全。一般情况下,对目录, 
需要设置r(读取)和x(执行)权限,有的目录同时还需要w(写入权限);对文件,需要r(读 
取),有的文件需要w(写入)权限或x(执行)权限。 
在 Linux 系统中,使用命令umask 设置创建文件或目录的默认rwx 权限,系统默认的 
umask 设置是022,这个权限的计算相当于文件、目录权限的掩码,例如此时创建的目录 
权限755 (rwxr-xr-x),那么其umask权限相当于相对777 的掩码022;而此时创建 
的文件权限为644 (rw-r–r–),其umask权限相当于相对666的掩码022。 
当然,这样的权限设置很不安全,同一台server上的不同用户(可能相同也可能不同用户 
组)/虚拟主机用户能够互相窥探到对方的源码,umask值必须修改的比较严格,以使得除 
root权限之外,不能随意互相窥探其他人的源码、数据库资料等。 
设置方法是:去掉同用户组和其他用户组的 r(读取)权限,具体做法是设置目录权限为 
500(读取+执行)同时文件权限为400(读取),此时umask应设置为277,设置目录权限 
为700(读取+写入+执行)同时文件权限为500(读取+执行),此时umask应设置为177。 
例如对于后者,我们可以使用命令 umask 177 设置当前对话下的默认目录、文件创建权 
限,如果要永久设置,就要修改/root/.bash_profile 以及所有用户home 的录下 
的.bash_profile文件,将其中的umask 022改为umask 177。

从以上可以看出,如果要设置较为安全的目录、文件权限,几个基本原则就是:

1、尽可能减少web路径下可写入目录的数量。 
2、文件的写入和执行权限只能选择其一,避免同时出现写入和执行权限。

linux下为目录和文件设置权限的更多相关文章

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

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

  2. linux下有的目录有可执行权限

    在linux里面,目录也是一个文件.权限设置方法与普通文件一样.目录的可执行权限:目录无所谓执行不执行,目录只能否被开启(也称作“遍历”或“搜索”)对目录的执行权限不仅意味着查看目录下文件名还允许查看 ...

  3. linux系统更改目录和文件的权限总结

    对于属于你的文件,可以按照自己的需要改变其权限位的设置.在改变文件权限位设置之前,要仔细地想一想有哪些用户需要访问你的文件(包括你的目录).可以使用c h m o d命令来改变文件权限位的设置.这一命 ...

  4. linux下实现目录即文件的完整删除

    功能: 1.删除目录 2.删除文件 3.删除不为空的目录即下属文件 #ifndef _DELETE_FILE #define _DELETE_FILE #include <sys/stat.h& ...

  5. linux chmod 给目录或文件赋权限 可读可写可执行

    前提:  mode权限设定字串,格式:[ugoa...][[+-=][rwxX]...][,...] 其中u表示拥有者(user),g表示与拥有者属于同一个群体(group),o表示其他以外的人(ot ...

  6. Linux下mysql创建用户并设置权限,设置远程连接

    为了安全考虑,OneinStack仅允许云主机本机(localhost)连接数据库,如果需要远程连接数据库,需要如下操作:打开iptables 3306端口 # iptables -I INPUT 4 ...

  7. 【ARM-Linux开发】Linux下更改目录下所有文件的所有者及其权限

    [ARM-Linux开发]Linux下更改目录下所有文件的所有者及其权限 chown 更换所有者: chmod 改变权限: 想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参 ...

  8. Linux—用户新建目录和文件的默认权限设置:umask详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   我们有没有思考过一个问题,在登录Linux系统后,我们创建的目录或者文件的权限,为什么每次创建都是统一的?我们做以下实验:新建一 ...

  9. Linux目录与文件的权限

    零.Linux中的权限为什么重要? 权限直接关系数据安全! 一.用户基础概念: 所有者(owner):拥有这个文件的用户.一般拥有目录或文件的所有权限. 用户组(group):几个用户组成一个用户组, ...

随机推荐

  1. 算法进阶面试题04——平衡二叉搜索树、AVL/红黑/SB树、删除和调整平衡的方法、输出大楼轮廓、累加和等于num的最长数组、滴滴Xor

    接着第三课的内容和讲了第四课的部分内容 1.介绍二叉搜索树 在二叉树上,何为一个节点的后继节点? 何为搜索二叉树? 如何实现搜索二叉树的查找?插入?删除? 二叉树的概念上衍生出的. 任何一个节点,左比 ...

  2. 破解百度云盘MAC下载限速问题

    由于电脑更新问题,所以把电脑上的所有东西清除了.突然发现自己以前的东西还都在百度云盘上,但由于MAC 下载百度云盘上的东西只有几K或者几十K,这个网速对于小文件还能忍受,但如果是大文件就无法容忍了. ...

  3. Python3Numpy——相关性协方差应用

    基本理论 Correlation Are there correlations between variables? Correlation measures the strength of the ...

  4. php urlencode函数 (中文字符转换为十六进制)

    urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%. urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其 ...

  5. Linux中日期的加减运算

    Linux中日期的加减运算 目录 在显示方面 在设定时间方面 时间的加减 正文 date命令本身提供了日期的加减运算. date 可以用来显示或设定系统的日期与时间. 回到顶部 在显示方面 使用者可以 ...

  6. ASP.NET MVC 4 中的JSON数据交互

    前台Ajax请求很多时候需要从后台获取JSON格式数据,一般有以下方式: 拼接字符串 return Content("{\"id\":\"1\",\& ...

  7. UEditor实现前后端分离时单图上传

    首先,需要下载部署ueditor相关代码,可以参考一篇简单的博客,这里不再赘述: 环境搭建好后,我们先简单使用一下,启动http://web.yucong.com:8080/ueditor/index ...

  8. Chrome RenderText分析(1)

      先从一些基础的类开始 1.Range // A Range contains two integer values that represent a numeric range, like the ...

  9. GoDaddy账户间域名转移PUSH以及ACCEPT接受域名过户方法

    GoDaddy账户之间的域名进行过户PUSH.以及接受ACCEPT一般发生在我们有要求代购.交易域名账户之间的处理.一般的海外域名注册商账户之间是直接可以用户交易过户的,不需要经过商家允许,但是不同的 ...

  10. Linux终端记录神器

    我们在调试程序的时候,免不了要去抓一些 log ,然后进行分析.如果 log 量不是很大的话,那很简单,只需简单的复制粘贴就好.但是如果做一些压力测试,产生大量 log ,而且系统内存又比较小(比如嵌 ...