单个文件名或目录名长度不超过255字符;
文件或目录的绝对路径长度不超过4096字符;
 

一、文件所有者与用户组

 
 
一个文件有很多属性,包括文件类型、文件权限、文件隐藏权限、文件所有者、用户组、文件大小、创建日期、修改日期、访问日期等,比如下面是/etc/inittab文件的属性:
 
1.文件类型
 
(1)d:目录;find / -type d 查询;
(2)-:一般文件;find / -type f 查询;
(3)l:链接文件;find / -type l 查询;
(4)b:块设备,即存储设备,比如/dev/sda;find / -type b 查询;
(5)c:字符设备,即串行端口设备,如键盘,比如/dev/zero;find / -type c 查询;
(6)s:socket,比如/var/run/acpid.socket;find / -type s 查询;
(7)p:pipe文件,比如我们可以通过mknod mypipe p 创建pipe文件;find / -type p 查询;
 
2.文件所有者与用户组
 
首先说明一点:文件所有者与用户组本身没有什么关系,比如用户组可以是root,但是文件所有者为xiazdong;
案例分析:
(1)一个文件的文件所有者为xiazdong,用户组为root,当前登录用户为xiazdong,如果想要让文件的所有者变成root,能成功吗?不能;
(2)一个文件的文件所有者为xiazdong,用户组为root,当前登录用户为root,如果想要让文件的所有者变成root,能成功吗?能;
总结一点:改文件的所有者、用户组应该是root的职责;
 
再说明一点:一个用户总会归属于一个或多个用户组,一个用户组里可以有多个用户,比如root用户归属于root用户组,但是我们也可以创建一个用户xzdong,及归属于group1用户组,又归属于group2用户组;
 
3.文件的mtime、atime、ctime
 
mtime:文件内容修改时间;
atime:文件访问时间;
ctime:文件权限、所有者被修改的时间;
 
ls --time=atime/ctime
 
 
命令
 
chgrp、chown命令用来设置文件的所有者、用户组;
(1)chgrp xiazdong test.txt:将test.txt的文件用户组设置为xiazdong;
(2)chgrp xiazdong dir:将dir的文件用户组设置为xiazdong;
(3)chown xiazdong test.txt:将test.txt的文件所有者设置为xiazdong;
(4)chown xiazdong:root test.txt:将test.txt的文件所有者设置为xiazdong,用户组设置为root;
 
 
二、文件权限
 
 
文件权限规定了文件所有者对文件/目录的权限、文件所属用户组的成员对文件/目录的权限、其他人对于文件/目录的权限;
(1)r:可读权限;
(2)w:可写权限;
(3)x:可执行权限;
 
对于目录和文件来说,这些权限代表的意义是不同的。
对于文件来说:
(1)r:可以读取文件的内容;
(2)w:可以写入文件内容,但是不能删除文件,如果要赋予删除文件的权限,则需要指定目录权限;
(3)x:执行文件,不是每个文件都需要这个权限的,比如txt文件不需要;
 
对于目录来说:
(1)r:可以读取目录下的目录结构,即能够执行ls查看目录下的文件名;
(2)w:能够改变目录的结构,即添加、删除目录下的文件、对文件重命名;
(3)x:能够进入目录,即cd到该目录;
但是请注意:如果目录只有r,但没有x权限,则只能ls出文件名,而不能显示文件属性,如下图所示:
 
 
注:如果dir目录下存在test.txt文件,如果xiazdong用户没有dir的写权限,则就算对test.txt有rwx权限,也不能删除test.txt;
 
最要注意的是:不管文件权限设置成什么样了(此处只讨论一般的权限,特殊权限不算),root都能够对文件或目录rwx;
 
案例:-rwxr--r-- 表示(1)文件所有者能够对该文件可读、可写、可执行;(2)所属用户组能够对该文件可读;(3)其他人能够对该文件可读;
 
命令
 
chmod命令可以设置文件的权限;
注意:我们可以通过数字或符号设置权限;
如果是数字,则4代表r,2代表w,1代表x,如果是5代表r-x,6代表rw-,7代表rwx;
如果是符号,则a代表全部人,u代表owner,g代表group,o代表others,r就是r,w就是w,x就是x,什么都不写表示一个权限都没有;
(1)chmod 755 test.txt:赋予test.txt rwxr-xr-x
(2)chmod u=rwx,go=r test.txt:赋予test.txt  rwxr--r--
(3)chmod a=r test.txt:赋予test.txt  r--r--r--
(4)chmod a+x test.txt:给test.txt全部的人添加x权限;
(5)chmod a-x test.txt:给test.txt全部的人删除x权限;
(6)chmod u=rwx,go= test.txt:赋予test.txt  rwx------
 
以下的部分均为ext文件系统专属特性
 
 
三、文件隐藏属性
 
 
(1)a:文件只能添加,不能修改、删除;常用于日志文件;
(2) i:文件不能修改、删除,即使root也不行,用于固定不变的文件;
 
 
命令
 
1、lsattr
list attribute,即列出文件或目录的隐藏属性;
 
lsattr file:列出文件的隐藏属性;
lsattr -d dir:列出目录的隐藏属性;
 
2、chattr
 
change attribute,即修改文件或目录的隐藏属性;
(1)i:如果设置了此属性,则目录或文件不能被修改(即使root也不能修改或删除他)。
(2)a:如果设置了此属性,只能添加内容,而不能修改或删除内容;
 
chattr +ai file:添加属性;
chattr -ai file:删除属性;
chattr =a file:设置属性;
 
 
四、文件特殊权限
 
 
文件有3个特殊属性:
(1)SUID:在用户所有者的x权限位置为“s”,如/usr/bin/passwd;
(2)SGID:在用户组的x权限位置为“s”,如/usr/bin/locate;
(3)SBIT:在其他的x权限位置为“t”,如/tmp;
 
 
SUID
 
SUID只能赋予二进制文件,并且用户对该文件具有x权限时,赋予SUID才有效果;
SUID效果:当一般用户对二进制文件b有x权限,并且b文件已经设有SUID权限,当一般用户执行b时,则此用户会具有文件所有者的权限;
 
SGID
 
SGID能够赋予目录或文件,执行者必须具备x权限;
SGID用途:团队开发,并且一个目录是团队的共享目录,任何人在此目录中创建文件,文件的用户组都是团队,而不是个人用户组;
SGID效果:
(1)当赋予文件SGID时:当执行者执行时,此执行者会有用户组的权限;
(2)当赋予目录SGID时:执行者进入目录后,有效用户组为目录的用户组,比如用户创建一个文件,则此文件的用户组为目录的用户组;
比如创建chmodtest目录,权限为drwxrwsrwx,则用xiazdong进入该目录后创建test.txt,则test.txt的文件所有者为xiazdong,但是用户组为root;
 
 
SBIT
 
只能赋予目录,如果对目录赋予SBIT之后,则用户A在此目录下创建的文件或目录只有root和用户A能删除,其他人不能删除;
 
命令
 
设置SUID、SGID、SBIT,通过chmod设置;
 
SUID:4
SGID:2
SBIT:1
 
 
(1)-rwsrw-r--:
数字表示 :chmod 4764 file,第一个数字4就是设置了SUID;
符号表示:chmod u=rwxs,g=rw,o=r file
(2)-rwxrwsr--:
数字表示 :chmod 2764 file,第一个数字2就是设置了SGID;
符号表示:chmod u=rwx,g=rwxs,o=r file
(3)-rwxrwxr-t:
数字表示 :chmod 1764 file,第一个数字1就是设置了SBIT;
符号表示:chmod u=rwx,g=rwx,o=rt file
 
u+s:加上SUID;
g+s:加上SGID;
o+t:加上SBIT;
 
http://blog.csdn.net/xiazdong/article/details/7926672

Linux入门:文件权限、用户、用户组(比较清楚)的更多相关文章

  1. linux修改文件权限和用户组管理小结

    如何在linux下修改组权限 chmod g+r path/file 加读权限 当前目录 chmod -R g+r path/file 加读权限 当前目录以及子目录 g-r 减读权限g+w 加写权限g ...

  2. linux之文件权限+用户权限

    chmod 文件权限命令: 文件权限: r是否能查看文件内容 w是否能修改文件的内容,需要与r权限配合使用   只有w的时候vim强制修改文件内容,会导致源文件内容清空 x是否能运行命令或脚本权限,需 ...

  3. linux修改文件所属的用户组以及用户

    linux修改文件所属的用户组以及用户 将文件夹从A用户(huangxf)目录复制B用户(zhenglf)目录,其中B没有sudo权限.将A的Downloads文件夹下的所有文件,复制到B的Docum ...

  4. 全面解析Linux数字文件权限

    全面解析Linux数字文件权限 来源:   时间:2013-09-04 20:35:13   阅读数:11433 分享到:0 [导读] 在刚开始接触Linux时对于文件权限的理解并不是很透彻,这里详细 ...

  5. [转]Linux中文件权限目录权限的意义及权限对文件目录的意义

    转自:http://www.jb51.net/article/77458.htm linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括 ...

  6. 第六章、Linux 的文件权限与目录配置

    第六章.Linux 的文件权限与目录配置 1. 使用者与群组 2. Linux文件权限概念 2.1 Linux文件属性 2.2 如何改变文件属性与权限: chgrp, chown, chmod 2.3 ...

  7. linux初学者-文件权限

    linux初学者-文件权限 lunix系统都是以文件的形式存在,自然而然的就会要求不同的用户拥有不同的权限,这也是系统能够运行的根本保证,下文将对文件的权限管理进行简要的介绍. 1.文件属性的查看 - ...

  8. Linux下文件权限(一)用户ID和用户组ID

    最近在读<unix环境高级编程>,看到文件权限这里比较糊涂,主要设计多个用户ID和用户组ID,包括下面两个: (1)实际用户ID和实际用户组ID:这一部分表示我们究竟是谁.这两个字段在登录 ...

  9. linux中文件权限格式与chmod命令以及用户和用户组的管理

    简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [<权限范围><符号><权限代码>] - ...

  10. linux 更改文件所属用户及用户组

      在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户.该文件用户可以修改该文件的拥有者及用户组,当然root用户可以修改任何文件的拥有者及用户组.在Linux中,对于文件的权限(rw ...

随机推荐

  1. 升级到iis7 的web.config配置

    经典模式或集成模式都识别system.webServers节点 aspnet的isapi分32位和64位 不存在时会报404或403

  2. 报错:loaded the "" nib but didn't get a UITableView

    在加载OpenPosition界面的时候报错:loaded the "" nib but didn't get a UITableView 原因: If you have a NI ...

  3. QT 遍历目录查找指定文件(比较简单)

    QString FindFile(const QString &strFilePath, const QString &strNameFilters){ if (strFilePath ...

  4. android串行化getSerializable、getSerializableExtra

    android串行化getSerializable.getSerializableExtra 传参 总结 案例1 不用 Bundle 封装数据 提交activity lst.setOnItemClic ...

  5. i++和++i以及左值,右值

    左值(LValue)和右值(RValue)的一个快捷记法是赋值运算,左值是赋值运算左边的值,右值就是右边(=,=废话).例如: int a = 5; a就是左值,5就是右值. 当然,如果真是这么个含义 ...

  6. perl学习(2) 基本数据类型等

    1.1.数字 所有数字格式内部一致,全部是double 7.25e45   == 7.25 * 1045 5.25 6.00 5.1-2.4          #5.1-2.4,2.7 10/3    ...

  7. Phonegap-----Media

    Everything in the code: <!DOCTYPE html> <html> <head> <title>Media Example&l ...

  8. 第一篇:NSOperation的概念

    一.说明 NSOperation的作口:配合使用NSOperation和NSOperationQueue也能实现多线程 NSOperation和NSOperationQueue实现多线程的具体步骤: ...

  9. iOS创建本地通知和删除对应的通知,工作日通知

    本文的代码主要是:创建本地通知,删除对应的本地通知,创建工作日闹钟 直接上代码: // // ViewController.m // LocalNSNotification // // Created ...

  10. BZOJ 1026: [SCOI2009]windy数( dp )

    dp..dp(x, t) 表示共x位, 第x位为t有多少个windy数. 对答案差分, 我们只需统计1 ~ l-1和1 ~ r的windy数数量. 考虑如何计算[1, n]的答案 : 从最高位到最低位 ...