热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php创建文件夹模式07000777,文件与目录权限

因为以下原因,您没有权限编辑本页:您所请求的操作仅限于该用户组的用户使用:用户您可以查看与复制此页面的源代码。##前言Linux系统下一个

因为以下原因,您没有权限编辑本页:

您所请求的操作仅限于该用户组的用户使用:用户

您可以查看与复制此页面的源代码。

##前言

Linux系统下一个文件的权限包含属主、群组和其他人的权限,并且各个用户对该文件具有单独设置的权限,这是 Linux 权限模型的核心.

##拥有者

###属主

属主即一个文件的拥有者,一般为这个文件的创建者,但是属主可以使用chown命令转移文件的属主.

###群组

Linux下的用户都会属于一个组别.那么这个组别就叫做群组,一个文件的属主所在的群组,该群组除属主以外的所有人都会对该文件具有相同的权限.

###其他人

其他人即为属主和属主所在群组以外的所有人.

##文件与目录权限

###文件权限

####所有文件

举例说明:可以用ls -l列出文件的信息,终端输出为(为了方便解释,分为八组解释):

ls -l /bin/bash

-rwxr-xr-x 1 root wheel 430540 Dec23 18:27 /bin/bash

第一组 第二组 第三组 第四组 第五组 第六组 第七组 第八组

第一组(文件类型和文件权限)

第一组为-rwxr-xr-x,可分-和rwxr-xr-x两个部分.

第一部分的字符指定了该文件的类别,文件类型主要有以下几种:

- 普通文件

d 目录

l 链接文件

b 块特殊设备

c 特殊设备文件

s 套接字文件

p 管道文件

例子文件的字符为-,所以表示该文件为普通文件.

第二部分的的字符表示该文件的权限属主的权限.属组的权限.其他人的权限(顺序不可改变)

属主的权限为:rwx ##可读.可写.可执行

属组的权限为:r-x ##可读,不可写,可执行

其他人的权限为:r-x ##可读,不可写,可执行

注意:读,写.执行权限顺不可改变.

注释:文件权限的两种表达方式:

文件权限的字符模式

r为可读,w为可写,x为可执行,-为没有相关权限.

文件权限的数字模式

使用这个名为数字权限的方式,每一个数字都代表一个权限。以下表格表示各个权限代表不同的数字.

模式数字
rwx7
rw-6
r-x5
r--4
-wx3
-w-2
--x1
---0

如何计算:如果用户有哪个权限,就将其代表的数字相加,最后的和即为该用户的权限第一组第二部分为:rwxr-xr-x,那么:

rwx=4+2+1=7

r-x=4+0+1=5

r-x=4+0+1=5

那么数字模式即为755.

第二组(硬链接数)

第二组的字符表示i节点,即为硬链接数.

例子文件第二组为1,表示只有一个硬链接.

第三组(文件属主)

第三组表示该文件的所有者(属主).

例子文件第三组为root,表示该文件属主为root用户.

第四组(文件属组)

第四组表示该文件的所属组(文件属组).

例子文件第四组为wheel,表示该文件属组为wheel用户组.

第五组(文件大小)

第五组表示该文件的大小,单位为字节.

例子文件第五组为430540,表示该文件有430540字节.

第六组(修改时间)

第六组表示该文件的最近的修改时间,格式为月份+日期+年份,使用英文简写或者中文.

例子文件第六组为Dec23,表示该文件最近修改时间为Dec23(12月份的23号)

注释:

一月简写为:Jan 二月简写:Feb 三月简写为:Mar 四月简写为:Apr

五月简写为:May 六月简写为:Jun 七月简写为:Jul 八月简写为:Aug

九月简写为:Sep 十月简写为:Oct 十一月简写为:Nov 十二月简写为:Dec

第七组(文件或目录名)

第七组表示该文件或目录名.

例子文件第七组为/bin/bash,表示为例子文件为bash,路径为/bin/bash

可执行文件[编辑]

SUID 是Set User ID, SGID 是 Set Group ID的意思。 由于SUID和SGID是在执行程序(程序的可执行位被设置)时起作用,而可执行位只对普通文件和目录文件有意义,所以设置其他种类文件的SUID和SGID位是没有多大意义的。

此小节知识较为深入,需要了解阅读此处:关于UNIX和Linux系统下SUID、SGID的解析

目录权限[编辑]

目录权限的修改和文件权限稍有不同,只是四种权限代表的含义如下:

r:可列出目录中的文件或者是目录情况

w:可在目录中创建、删除和修改命令下的文件或者是目录

x:可以使用cd命令切换到此目录

-:没有任何此目录的所有权限

如果一个用户需要进入一个目录查看文件,最少需要读和执行的权限!

管理文件权限[编辑]

图形管理[编辑]

终端执行:

sudo nautilus

即可打开带root权限的文件管理器(此为鹦鹉螺),右键需要更改权限的文件或者目录的属性,即可以简单的改变文件权限

命令管理[编辑]

改变属主和属组[编辑]

要更改文件拥有者,可使用chown命令或者chgrp命令.

chown命令可修改文件的属主,chgrp命令可修改文件的属组,终端输入:

sudo chown root /etc/passwd ##改变/etc/passwd的属主改为root

sudo chgrp wheel /etc/passwd ##改变/etc/passwd的属组改为wheel

chown命令可同时修改文件的属主和数组,属主和数组之间需要用.来分隔,终端输入:

sudo chown root.wheel /etc/passwd ##改变/etc/passwd的属主改为root,并且改变属组改为wheel

递归所有权更改

chown命令和chgrp命令都有一个-R选项来使其对于一个目录树来实现递归更改。例如终端输入:

sudo chown -R root /home/drobbins ##改变/home/drobbins目录下所有文件的属主为root

sudo chgrp -R wheel /home/drobbins ##改变/home/drobbins目录下所有文件的属组为wheel

改变文件权限[编辑]

更改文件权限[编辑]

你可以使用chmod命令去改变文件与目录的权限,设置方式可以使用字符或数字两种方式。 使用语法:

chmod [-cfvR] [--help] [--version] mode file...

权限范围的表示法如下:

u:User,即文件或目录的拥有者。

g:Group,即文件或目录的所属群组。

o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。

a:All,即全部的用户,包含拥有者,所属群组以及其他用户。

权限代号表示法如下:

r:读取权限,数字代号为"4"。

w:写入权限,数字代号为"2"。

x:执行或切换权限,数字代号为"1"。

-:不具任何权限,数字代号为"0"。

s:特殊?b>功能说明:变更文件或目录的权限。

更多选项请看man文档,终端输入 man chmod

例子解释:

范例一 :

chmod ugo+r file1.txt ##将文件file1.txt 设为所有人皆可读取

chmod a+r file1.txt  ##将文件file1.txt 设为所有人皆可读取

chmod ug+w,o-w file1.txt file2.txt ##将文件file1.txt与file2.txt设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入

chmod u+x ex1   ##将ex1.设定为只有该档案拥有者可以执行

chmod -R a+r *   ##将目前目录下的所有文件与子目录皆设为任何人可读取

chmod u+s sqlplus  ##当其他用户执行oracle的sqlplus这个程序时,他的身份因这个程序暂时变成oracle

注释:语法为:chmod abc file,chmod也可以用数字来表示权限如 chmod 777 file,其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

范例二:

chmod a=rwx file 等于 chmod 777 file

chmod ug=rwx,o=x file 等于 chmod 771 file

chmod 4755 filename ##可使filename程序具有root的权限

范例三:

如果在终端输入:

cd /media/amasun/java/develop/array

chmod 777 ./

是将本目录(即/media/amasun/java/develop/array)设为任何人可读,写,执行,如果是管理员也就是常说的ROOT用户的话,基本上有可以查看所有文件的权力.

重设文件权限[编辑]

chmod命令可以重设权限,使用=算符,我们可以告诉 chmod 我们只想要指定的权限: 例子解释:

字符方式:

chmod =rx scriptfile.sh 设置scriptfile.sh文件具有读与执行的权限,取消写入权限

设定重设特定的用户的权限,终端输入:

chmod u=rx scriptfile.sh ##设置scriptfile.sh文件的属主具有具有读与执行的权限,取消写入权限

数字方式

在你想要为某个文件指定权限时,数字权限句法尤其有用,如下面的例子:

chmod 0755 scriptfile.sh

ls -l scriptfile.sh

-rwxr-xr-x 1 drobbins drobbins 0 Jan 9 17:44 scriptfile.sh

在本例中,我们使用了模式0755,展开为 rwxr-xr-x 的权限设置。

系统默认文件权限[编辑]

umask介绍[编辑]

当一进程创建一个新文件,它指定了给新文件的权限。这个模式经常为0666(所有用户可读写),这个权限非常不安全,但是Linux会在一文件创建时查询一个叫做umask的东西。 系统使用umask值来使原指定权限更合理安全。你可以在命令行键入umask来查看当前的umask设置,终端输入:

umask

0022

在Linux系统上umask通常默认为0022,umask会有4组数字:

第一组(0)是特殊权限用的,可以先不理会

第二组(022)是正常用户使用的,我们具体解说此处

那么在系统默认的umask下:

我们创建的文件的权限为0666(最大权限)-umask(0022)=0644,所以我们创建的文件夹的权限为0777-0022=0755。

我们创建的文件的权限为0777(最大权限)-umask(0022)=0755,所以我们创建的文件夹的权限为0777-0022=0755。

注释:

若用户建立为文件则默认没有可执行(x)项目”,即只有rw这两个项目,也就是最大为0666,默认属性为:-rw-rw-rw-

若用户建立为目录,则由于x与是否可以进入此目录有关,因此默认为所有权限均开放,即为0777,默认属性为:drwxrwxrwx

umask设置[编辑]

为使新文件更安全,我们更改umask设置为0077,终端输入:

umask 0077

此时umask对文件则为0066,对文件夹则为0077,那么设置完成后: 我们创建的文件的权限为0600 我们创建的文件夹的权限为0700

参考链接[编辑]

鸟哥的 Linux 私房菜 -- Linux 的文件权限与目录配置

Gentoo百科:The Linux permissions model

关于UNIX和Linux系统下SUID、SGID的解析



推荐阅读
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • LeetCode笔记:剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)
    本文介绍了LeetCode剑指Offer 41题的解题思路和代码实现,主要涉及了Java中的优先队列和堆排序的知识点。优先队列是Queue接口的实现,可以对其中的元素进行排序,采用小顶堆的方式进行排序。本文还介绍了Java中queue的offer、poll、add、remove、element、peek等方法的区别和用法。 ... [详细]
  • 给定一个二维平面上的一些点,通过计算曼哈顿距离,求连接所有点的最小总费用。只有任意两点之间有且仅有一条简单路径时,才认为所有点都已连接。给出了几个示例并给出了对应的输出。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
author-avatar
雨之夜惊恐_136
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有