linux下的隐藏文件的首字符是,Linux之文件(目录)默认权限、特殊权限与隐藏权限...

文件默认权限

从Linux之用户组、文件权限详解了解到文件与目录的基本权限管理,文件在创建时如果不指定具体的权限,那么系统会给它分配一个默认的权限,这个默认权限就是umask。

vbird@Ubuntu1604:~$ umask //我们可以使用umask命令来查看默认权限

第1个0是特殊默认权限,可以先不用管。后面002就是我们创建文件/目录的默认权限。由于普通文件默认没有可执行权限,即只有r、w权限,所以权限最大为666(-rw-rw-rw-)。目录需要进入访问权限,需要有r、w、x权限,所以权限最大为777(drwxrwxrwx)。而umask是该默认值需要减去的权限,此时,umask为002(第1个0先不管),普通文件默认权限=(-rw-rw-rw-)-(--------w-)=664(-rw-rw-r--),目录默认权限=(drwxrwxrwx)-(--------w-)=775(drwxrwxr-x)。

vbird@Ubuntu1604:~$ touch aa

vbird@Ubuntu1604:~$ mkdir bb

vbird@Ubuntu1604:~$ ls -l

total

-rw-rw-r-- vbird vbird 9月 : aa

drwxrwxr-x vbird vbird 9月 : bb

刚才使用umask查看到默认权限是0002,linux中除了常见的读(r)、写(w)、执行(x)权限以外,还有3个特殊的权限,分别是setuid、setgid和stick bit,就对应着第1个0值。

文件特殊权限:SUID、SGID、SBIT

setuid:SUID,全称为set UID,在高位起第三位上表现为s。

当我们普通用户使用passwd进行修改密码的时候,passwd会去访问/etc/shadow,但是普通用户根本没有读写的权限,那怎么办呢?linux在我们运行passwd修改密码的时候,会暂时获取/etc/shadow文件拥有者root的权限,然后对/etc/shadow进行读写访问,访问完之后释放文件拥有者的权限。这就是setuid的魅力。简单来说就是,使用者暂时获取文件(目录)拥有者的权限,使用完再释放。

setgid:SGID和SUID类似,在高起第六位上表现为s。

SGID改变的是执行者的所属组,可以对可执行文件和目录设置。通过对目录设置SGID属性,可以使得访问在该目录下创建的所有文件的所有权,都继承原目录的所有者,而非创建者。因为一旦有用户进入到该目录下,由于具有SGID权限,进入目录后的用户就会变成该目录的所有者,在该目录下创建的所有文件,都以该目录的所有者的身份创建。

利用好这个权限位在很多团队合作的项目上更加方便管理。比如一个共同维护的数据文件夹,为了方便管理,只允许管理员对里面的数据具有改变和删除的权利,但是却有很多用户需要有在该目录下添加数据文件的权利,利用SGID可以很好的解决这一点。

stick bit:SBID权限同样只对目录有效,在权限位的最低位表现为t。

通过对目录设置SBID权限,并且该目录的权限为777,则所有用户可以在该目录下都可以创建文件,并且文件所有者是自己。但是在SBID权限的目录下,只有root和文件的所有者才能删除该文件,即使文件的属性为777也不能被其他用户删除。这个权限在共享过程中非常实用。共享的文件任何人都有读写的权利,但是只有文件的所有者才能删除该文件。

SUID/SGID/SBIT权限设置

SUID数值为4,SGID数值为2,SBIT数值为1,umask中默认权限中的从左往右第1个值为SUID/SGID/SBIT权限。

文件隐藏权限

除了以上权限外,linux还提供了一套隐藏权限机制。需要使用chattr设置隐藏权限,lsattr查看隐藏权限。

命令功能:

查看文件的隐藏权限

命令格式:

lsattr [ -RVadv ] [ files... ]

命令参数:

-R  递归查看目录下文件

-V  显示程序的版本

-a  不忽略以“.”开头的隐藏文件

-v  列出文件的版本号和生成号

命令实例:

见chattr

命令功能:

查看文件的隐藏权限

命令格式:

chattr [ -RVf ] [ -v version ] [ mode ] files...

命令参数:

+-= :分别为 [+ 增加] [- 减少] [= 设定] 属性的意思

A  :当设定了 A 这个属性时,这个档案(或目录)的访问时间atime (access) 将不可被修改, 可避免例如手提式计算机容易有磁盘 I/O 错误的情况发生!

S  :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!可以有效的避免数据流失!

a  :当设定 a 之后,这个档案将只能增加数据,而不能删除,只有 root 才能设定这个属性。

c  :这个属性设定之后,将会自动的将此档案压缩,在读取的时候将会自动解压缩出来,但是在储存的时候,将会先进行压缩之后再储存(看来对于大档案似乎蛮有用的!)

d  :当 dump (备份)程序被执行的时候,设定 d 属性将可使该档案(或目录)具有 dump 功效!

i  :这个 i 可就很厉害了!他可以让一个档案不能被删除、改名、设定连结也无法写入或新增数据!对于系统安全性有相当大的帮助! (只有root才能设置)

j  :当使用 ext3 这个档案系统格式时,设定 j 属性将会使档案在写入时先记录在 journal 中! 但是当 filesystem 设定参数为 data=journalled 时,由于已经设定了日志了,所以这个属性无效!

s  :当档案设定了 s 参数时,他将会被完全的移除出这个硬盘空间。

u  :与 s 相反的,当使用 u 来设定档案时,则数据内容其实还存在磁盘中,可以使用来找回该文件。

-R  递归查看目录下文件

-V  显示程序的版本

-v  列出文件的版本号和生成号

备注:chattr命令很多设置必须root才能设置

命令实例:

1.新建1个文件aa,然后设置隐藏权限i使之不能被删除。(只有root才能执行此操作)

root@Ubuntu1604:/home/vbird# touch aa

root@Ubuntu1604:/home/vbird# lsattr aa

-------------e-- aa

root@Ubuntu1604:/home/vbird# chattr +i aa

root@Ubuntu1604:/home/vbird# lsattr aa

----i--------e-- aa

root@Ubuntu1604:/home/vbird# rm aa

rm: cannot remove 'aa': Operation not permitted

root@Ubuntu1604:/home/vbird# chattr -i aa

root@Ubuntu1604:/home/vbird# rm aa

root@Ubuntu1604:/home/vbird# ls aa

ls: cannot access 'aa': No such file or directory

Linux的文件/目录的权限

文件类型 权限 属主 属组 目录名/文件名drwx------ 2 alice girls 4096 9月 25 11:33 alicedrwx------ 2 rose girls 4096 9月 ...

linux:文件/目录权限设置

一.权限修改命令:     chmod [OPTION]... MODE[,MODE]... FILE...二.文件/目录MODE指定方式: 1).八进制(r=4,w=2,x=1) [root@pin ...

Linux统计文件/目录数量ls -l | grep "^-" | wc -l匹配开头和结尾

Linux统计文件数量 ls -l | grep "^-" | wc -l “^-”  一般文件 “^d” 目录文件 shell/vim中^表示开头 cat repatterns ...

Linux的文件/目录访问权限

一直以为对这个概念非常懂,但这次还是犯了眼高手低的毛病. 配置服务器遇到了一个问题,对某个WEB目录(例如"/bin"),有两个用户要对其进行读写操作: 首先apache服务器要对 ...

linux普通文件权限和系统目录权限的实践及结论

测试结论:linux普通文件的读.写.执行权限说明 1.可读r:表示具有读取\阅读文件内容的权限 2.可写w:表示具有新增.修改文件内容的权限 1)如果没有r配合,那么vi编辑文件会提示无法编辑(但可 ...

linux:文件及文件夹管理

http://blog.csdn.net/pipisorry/article/details/39854265 查看用户的信息 pika:~$id pikauid=1000(pika) gid=100 ...

linux下创建文件与目录时默认被赋予了什么样的权限?

当我们创建一个新的文件或目录的时候,他的默认权限是什么? umask--指定当前使用者在创建文件或目录的时候默认的权限值 [root@iZ288fgkcpkZ default]# umask [roo ...

Linux学习之CentOS(九)-----文件与目录的默认权限与隐藏权限

文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

随机推荐

一个有趣的回答(摘自http://www.51testing.com/html/03/n-860703.html)

假设这有一个各种字母组成的字符串,假设这还有另外一个字符串,而且这个字符串里的字母数相对少一些.从算法上讲,什么方法能最快的查出所有小字符串里的字母在大字符串里都有? 比如,如果是下面两个字符串: S ...

XE8 (RTM) Android SDK 更新安装

适用:XE8 Android 平台 问题:安装 XE8 RTM 时,如果勾选了 Android SDK 5.0.1 (API 21) 及 Android NDK (android-ndk-r9c) , ...

BOM与DOM

通常情况下,页面中的JavaScript代码都有一系列可以访问的对象,它们可以分为两组: 当前载入页面所拥有的对象(页面有时也可以叫做文档). 页面以外的事物所拥有的对象(即浏览器窗口和桌面屏幕). ...

2013年的一些常用PHP資源整理下載

這些資源基本上都是一些免積分或只需要1個積分就能下載的資源,經過整理篩選最後分享給大家,希望大家喜歡: PHP手册(chm) http://download.csdn.net/detail/u0118 ...

MatLab GUI Use Command for Debug 界面调试的一些方法

在MatLab的GUI界面编程,我们在调试的时候需要打印出一些变量,那么介绍下我用到的两种调试方法: 第一种,使用弹出对话框来打印变量,要注意的是打印的东西必须是string类型的,所以其他类型的变量 ...

how to build a paper's architecture?

1. problem? what's the problem? then do some extension of the problem. 2. related works ,which means ...

Java多线程中的单例模式

一.在多线程环境下创建单例 方式一: package com.ietree.multithread.sync; public class Singletion { private static cla ...

如何提升JavaScript的任务效率?学会后教给你同事

本文由云+社区发表 一.概述 JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事.前面的任务没做完,后面的任务只能等着.随着电脑计算能力的增强,尤其 ...

scanperiod 不生效

注意:要改 target 目录下的,真正运行时加载的 logback-spring.xml

kbengine:简单介绍

之前想分析一个开源服务器很久了,思前想后,还是选择了kbengine. KBEngine的服务端底层框架使用c++编写,游戏逻辑层使用Python(支持热更新).现在服务器大多数是用C++做的,pyt ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值