Linux笔记 (8)

Linux笔记 (8)

标签(空格分隔): Linux


文件与目录的预设权限与隐藏权限

1.文件预设权限:umask

  • umask就是指定目前使用者在建立文件或目录时候的权限预设值。
  • 预设情况下:
    (1)文件的权限为【-rw-rw-rw-】
    (2)目录的权限为【drwxrwxrwx】
  • 查阅方式:
    (1)直接输入【umask】,可以看到数字形式的权限设定分数,如0022。该分数指的是预设值需要减掉的权限。
    (2)输入【umask -S】(Symbolic),就会以符号形式显示出权限,如u=rwx,g=rx,o=rx。
  • 例如:
    使用者umask=>0022
    则其建立文件时,属性为【-rw-rw-rw-】-【-----w--w-】
    =【-rw-r--r--】;
    建立目录时,属性为【drwxrwxrwx】-【-----w--w-】===【drw-r-xr-x】。
  • 设定umask,直接在umask后面输入数字,如:umask 002。
  • ll -d test[34],中括号[]代表中间有指定的字元,而不是任意字元的意思。
  • root的umask一般问022,一般身份者的属性通常为002。

2.文件的隐藏属性

(1)chattr(设定文件隐藏属性)

  • chattr [+-=][ASacdistu] 文件或目录
  • xfs系统仅支持AadiS
选项 参数
+ 增加某一个特殊参数,其他原本存在参数则不动
- 移除某一个特殊参数,其他原本存在参数则不动
= 设定一定,且仅有后面接的参数
属性 内容
A 当设定了 A 这个属性时,若你有存取此文件(或目录)时,他的访问时间 atime 将不会被修改, 可避免 I/O 较慢的机器过度的存取磁盘。(目前建议使用文件系统挂载参数处理这个项目)
S 一般文件是异步写入磁盘的,如果加上 S 这个属性时, 当你进行任何文件的修改,该更动会『同步』写入磁盘中
a 当设定 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root 才能设定这属性
c 这个属性设定之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩, 但是在储存的时候,将会先进行压缩后再储存
d 当 dump 程序被执行的时候,设定 d 属性将可使该文件(或目录)不会被 dump 备份
i 可以让一个文件『不能被删除、改名、设定连结也无法写入或新增数据』 对于系统安全性有相当大的帮助!只有 root 能设定此属性
s 当文件设定了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘空间, 所以如果误删了,完全无法救回来了。
u 与 s 相反的,当使用 u 来配置文件时,如果该文件被删除了,则数据内容其实还存在磁盘中, 可以使用来救援该文件

(2)lsattr(显示文件隐藏属性)

  • lsattr [-adR] 文件或目录
选项 参数
-a 显示隐藏文件的属性
-d 如果接的是目录,仅列出目录本身的属性而非目录内的文件名
-R 连同子目录的资料也一并列出来

(3)文件特殊权限:SUID,SGID,SBIT

Set UID

  • 当s这个标志出现在文件拥有者的x权限上时,例如【-rwsr-xr-x】,此时就被称为Set UID,简称为SUID的特殊权限。

SUID的限制与功能:

  • SUID权限仅对于二进制程式(binary program)有效,不能用在shell script上,对目录也是无效的;
  • 执行者对于该程式需要具有x的可执行权限;
  • 本权限仅在执行该程式的过程中有效;
  • 执行者将具有该程式拥有者(owner)的权限。

Set GID

  • 当s标志在文件拥有者的x项目为SUID,那s在群组的x时则称为Set GID。

SUID的功能:

  • SGID可以针对文件或目录来设定;
  • SGID对二进制程式有用;
  • 程式执行者对于该程式来说,需具备x的权限;
  • 执行者在执行的过程中将会获得该程式群组的支持。

当目录设定了SGID的权限后,具备的功能如下:

  • 使用者若对此目录具有r与x的权限时,该使用者能够进入此目录;
  • 使用者在此目录下的有效群组(effective group)将会变成该目录的群组;
  • 用途:若使用者在此目录下具有w的权限(可以新建文件),则使用者所建立的新文件的群组与此目录的群组相同。

Sticky Bit

  • 目前只针对目录有效,对文件无效。

对目录的作用:

  • 当使用者对此目录具有w,x权限,即具有写入的权限时;
  • 当使用者在该目录下建立文件或目录时,仅有自己与root才有权力删除该文件。

(4)SUID/SGID/SBIT权限设定

a.在【三个数字】组合前再加上一个数字,这个数字就代表如下几个权限:

  • 4 为 SUID
  • 2 为 SGID
  • 1 为 SBIT

b.通过符号法:

  • SUID 为 u+s
  • SGID 为 g+s
  • SBIT 为 o+t

  • 要将一个文件权限改为【-rwsr-xr-x】:【chmod 4755 filename】
  • 要将一个文件权限改为【-rws--x--x】:【chmod u=rwxs,go=x filename】
  • 要将一个文件权限改为【-rws--s--t】:【chmod g+s,o+t filename】

3.观察文件的类型:file

想要知道文件的类型是属于ASCII、data或者binary,且其中有没有用到动态函式库(share library),就可以利用file指令。


[root@study ~]# file ~/.bashrc
/root/.bashrc: ASCII text
[root@study ~]# file /var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db: data

posted @ 2018-04-24 23:31  Y_momo  阅读(60)  评论(0)    收藏  举报