热门标签 | 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的解析



推荐阅读
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 在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命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
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社区 版权所有