使用 UNIX 权限保护文件

通过 UNIX 文件权限和 ACL 可保证文件安全。带 sticky 位的文件和可执行文件要求特殊的安全措施。

用于查看和保证文件安全的命令

下表介绍了用于监视以及保证文件和目录安全的命令。

表 7-1 保证文件和目录安全的命令

命令

说明

手册页

ls

列出目录中的文件及其有关信息。

chown

更改文件的所有权。

chgrp

更改文件的组所有权。

chmod

更改文件的权限。可以使用符号模式(使用字母和符号)或绝对模式(使用八进制数字)更改文件的权限。

文件和目录的所有权

传统的 UNIX 文件权限可以为三类用户指定所有权:

用户-文件或目录的所有者,通常为创建该文件的用户。文件的所有者可以决定谁拥有读取文件、写入文件(对文件进行更改)或执行文件(如果该文件为命令)的权限。

组-一组用户的成员。

其他用户-所有其他不是文件所有者和组成员的用户。

文件所有者通常可以指定或修改文件权限。此外,root 帐户可以更改文件的所有权。要覆盖系统策略,请参见示例 7-2。

文件可以是七种类型之一。每种类型由一个符号显示:-(减号)

文本或程序

b

块特殊文件

c

字符特殊文件

d

目录

l

符号链接

s

套接字

D

P

命名管道 (FIFO)

UNIX 文件权限

下表列出并说明了可以为文件或目录的每类用户授予的权限。

表 7-2 文件和目录权限

符号

权限

对象

说明

r

文件

指定的用户可以打开和读取文件内容。

目录

指定的用户可以列出目录中的文件。

w

文件

指定的用户可以修改文件的内容或删除该文件。

目录

指定的用户可以在目录中添加文件或链接。这些用户也可以删除目录中的文件或链接。

x

执行

文件

指定的用户可以执行文件(如果该文件为程序或 shell 脚本)。这些用户也可以使用一个 exec(2) 系统调用来运行程序。

目录

指定的用户可以打开或执行目录中的文件。这些用户也可以使该目录以及该目录下的目录成为当前目录。

-

拒绝

文件和目录

指定的用户无法读写或执行文件。

这些文件权限可应用于常规文件,也可应用于特殊文件(如设备、套接字和命名管道 (FIFO))。

对于符号链接,所应用的权限为链接指向的文件权限。

通过对目录设置受限文件权限,可以保护该目录及其子目录中的文件。但是请注意,超级用户有权访问系统中的所有文件和目录。

特殊文件权限(setuid、setgid 和 Sticky 位)

可执行文件和公共目录可以使用三种特殊类型的权限:setuid、setgid 和 sticky 位。设置这些权限之后,运行可执行文件的任何用户都应采用该可执行文件所有者(或组)的 ID。

设置特殊权限时必须非常小心,因为特殊权限会带来安全风险。例如,通过执行将用户 ID (user ID, UID) 设置为 0(root 的 UID)的程序,用户可以获取超级用户功能。此外,所有用户可以为其拥有的文件设置特殊权限,这会带来其他安全问题。

应对系统中未经授权使用 setuid 权限和 setgid 权限获取超级用户功能的情况进行监视。可疑权限为用户而不是 root 或 bin 授予管理程序的所有权。要搜索并列出所有使用此特殊权限的文件,请参见如何查找具有特殊文件权限的文件。

setuid 权限

对可执行文件设置 setuid 权限时,将对运行该文件的进程授予基于文件所有者的访问权限。该访问权限不是基于正在运行可执行文件的用户。使用此特殊权限,用户可以访问通常只有属主才可访问的文件和目录。

例如,passwd 命令的 setuid 权限使用户可以更改口令。具有 setuid 权限的 passwd 命令类似如下:-r-sr-sr-x 3 root sys 28144 Jun 17 12:02 /usr/bin/passwd

此特殊权限会带来安全风险。一些确定的用户甚至可以在 setuid 进程执行完毕后,找到保持由该进程授予他们的权限的方法。

注 -在程序中使用具有保留 UID (0–100) 的 setuid 权限可能无法正确设置有效的 UID。请使用 shell 脚本或避免将保留的 UID 用于 setuid

权限。

setgid 权限

setgid 权限与 setuid 权限类似。可将进程的有效组 ID (group ID, GID) 更改为拥有该文件的组,并基于授予该组的权限对用户授予访问权限。/usr/bin/mail 命令具有 setgid 权限:-r-x--s--x 1 root mail 67504 Jun 17 12:01 /usr/bin/mail

将 setgid 权限应用于目录时,该目录中已创建的文件将属于该目录所属于的组。这些文件不属于创建进程所属于的组。在目录中拥有写和执行权限的任何用户都可以在其中创建文件。但是,文件将属于拥有该目录的组,而不是用户所属于的组。

应对系统中未经授权使用 setgid 权限获取超级用户功能的情况进行监视。可疑权限为非常规组而不是 root 或 bin 授予对此类程序的组访问权限。要搜索并列出所有使用此权限的文件,请参见如何查找具有特殊文件权限的文件。

Sticky 位

sticky 位是保护目录中文件的权限位。如果对目录设置了 sticky 位,则只有文件所有者、目录所有者或特权用户才可以删除文件。root 用户是特权用户的一个示例。sticky 位禁止用户从公共目录(如 /tmp)中删除其他用户的文件:drwxrwxrwt 7 root sys 400 Sep 3 13:37 tmp

在 TMPFS 文件系统中设置公共目录时,务必手动设置 sticky 位。有关说明,请参见示例 7-5。

缺省 umask 值

创建文件或目录时,将使用一组缺省权限进行创建。系统缺省值为空。文本文件具有 666 权限,该权限对所有用户授予读写权限。目录和可执行文件具有 777 权限,该权限对所有用户授予读写和执行权限。通常,用户会覆盖其 shell 初始化文件(如 .bashrc 和 .kshrc.user)中的系统缺省值。管理员还可以设置 /etc/profile 文件中的缺省值。

由 umask 命令指定的值将从缺省值中减去。此进程的作用是以 chmod 命令授予权限的相同方式拒绝这些权限。例如,chmod 022 命令对组和其他用户授予写权限。umask 022 命令拒绝组和其他用户的写权限。

下表显示了一些典型 umask 值及其对可执行文件的影响。

表 7-3 不同安全级别的 umask 设置

安全级别

umask 设置

禁用的权限

许可 (744)

022

w(组和其他用户)

中等 (740)

027

w(组),rwx(其他用户)

中等 (741)

026

w(组),rw(其他用户)

严重 (700)

077

rwx(组和其他用户)

有关设置 umask 值的更多信息,请参见 umask(1) 手册页。

文件权限模式

使用 chmod 命令,可以更改文件的权限。您必须是超级用户或是文件或目录的所有者,才能更改其权限。

可以使用 chmod 命令按照以下两种模式之一设置权限:

绝对模式-使用数字表示文件权限。使用绝对模式更改权限时,由八进制模式数字表示每个三元字节权限。绝对模式是设置权限的最常用方法。

符号模式-使用字母和符号的组合来添加或删除权限。

下表列出了在绝对模式下设置文件权限的八进制值。可按顺序以三个一组的形式,使用这些数字来设置所有者、组和其他用户的权限。例如,值 644 为所有者设置读写权限,为组和其他用户设置只读权限。

表 7-4 在绝对模式下设置文件权限

八进制值

设置文件权限

权限说明

0

---

无权限

1

--x

仅执行权限

2

-w-

只写权限

3

-wx

写和执行权限

4

r--

只读权限

5

r-x

读和执行权限

6

rw-

读写权限

7

rwx

读写和执行权限

下表列出了用于在符号模式下设置文件权限的符号。符号可以指定要设置或更改其权限的用户、要执行的操作,以及要指定或更改的权限。

表 7-5 在符号模式下设置文件权限

符号

功能

说明

u

who

用户(所有者)

g

who

o

who

其他用户

a

who

All(全部)

=

operator

赋值

+

operator

新增

-

operator

删除

r

permissions

w

permissions

x

permissions

执行

l

permissions

强制锁定,setgid 位打开,组执行位关闭

s

permissions

setuid 或 setgid 位打开

t

permissions

Sticky 位打开,对于其他用户,执行位打开

功能列中的名称 who operator permissions 指定用于更改文件或目录的权限的符号。who

指定要更改其权限的用户。

operator

指定要执行的操作。

permissions

指定要更改的权限。

可以在绝对模式或符号模式下设置文件的特殊权限。但是,必须使用符号模式设置或删除目录的 setuid 权限。在绝对模式下,通过在权限三元字节的左侧添加新的八进制值,可设置特殊权限。下表列出了用于对文件设置特殊权限的八进制值。

表 7-6 在绝对模式下设置特殊文件权限

八进制值

特殊文件权限

1

Sticky 位

2

setgid

4

setuid

oracle删除本地文件权限,使用 UNIX 权限保护文件相关推荐

  1. 查看、删除本地电脑,连接过的共有文件夹(盘符) 「net use」

    ■前言 我们访问过的共有盘符(带有密码的), 即使在连接时,不选择保存密码, 只要不logoff,就一直能访问. https://blog.csdn.net/sxzlc/article/details ...

  2. veracrypt取消加密卷_VeraCrypt如何创建文件型加密卷?保护文件资料安全

    平时整理电脑文件,因为担心文件随意被修改或者阅读,很多人习惯将重要的文件统一归类到某个磁盘并将这些文件隐藏起来.可是,这样做安全性始终不高,为了解决这一问题,我们可以用VeraCrypt创建文件型加密 ...

  3. ipython使用oracle,python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  4. Win10系统删除文件需提供管理员权限-- 解决方案

    Win10系统删除文件需提供管理员权限-- 解决方案 参考文章: (1)Win10系统删除文件需提供管理员权限-- 解决方案 (2)https://www.cnblogs.com/yanjunfeng ...

  5. 如何在 Windows XP 中设置、查看、更改或删除文件和文件夹的特殊权限

    为什么80%的码农都做不了架构师?>>>    文章编号: 308419 - 最后修改: 2005年10月24日 - 修订: 3.1 如何在 Windows XP 中设置.查看.更改 ...

  6. 计算机怎么解除c盘用户权限,电脑c盘文件夹拒绝访问怎么办 删除c盘文件如何获得管理员权限...

    c盘是我们系统文件存储的关键位置,当我们想要查看c盘的时候,出现拒绝访问的情况怎么解决呢?其实很简单,下面小编为大家带来打开c盘文件夹拒绝访问的详细解决方法,大家可以直接按照下面的步骤即可解决. 电脑 ...

  7. php unlink权限设置,php中删除文件用unlink函数权限判断

    unlink函数在php中就是删除文件的,但我们可以通过判断文件是否有删除权限,下面我来给大家简单介绍一下unlink函数用法与权限判断. unlink($file) 例1 代码如下 复制代码 有时会 ...

  8. windows 无法删除文件,没有操作权限,右键文件属性查看安全-不可用

    在命令行输入2个小写的L,ll查看文件权限,发现rwx中没有x的权限, 在文件上面右键,查看安全选项卡,发现-请求的安全信息不可用或无法显示. 新建一个del.txt文件,复制以下内容到文件中 del ...

  9. win10 删除文件夹需要管理员权限无法删除的方法

    win10 删除文件夹需要管理员权限无法删除的方法 当我们删除某个文件夹时,经常会遇到以下情况需要管理员权限 方法: 1.打开cmd, 2.点击以管理员身份运行 3.跳到要删除文件夹的父目录 4.执行 ...

最新文章

  1. UITextField 详解
  2. ALSA声卡笔记3--ASoC驱动重要结构体关系图
  3. osg着色语言着色_探索数字着色
  4. 飞鸽传书已经写了5年,还是老样子。
  5. php成品网站安装,PHPweb成品网站安装环境要求和安装方法
  6. el-option传两个值_俗话说买房看地段,买窗看K值:如何区分K值、U值和R值
  7. 2015年C语言组混搭 C/C++
  8. python学习之re库
  9. 一键修改分辨率bat_设置分辨率的批处理 | 学步园
  10. 某处发现百分百恢复覆盖的分区数据恢复方法(掌握)
  11. flash android 5.0,Adobe Flash Player
  12. 微信小程序 - requestSubscribeMessage:fail can only be invoked by user TAP gesture.
  13. PureMVC游戏框架解析 理解其中包含的设计模式
  14. linux gre配置,Linux设置gre 隧道
  15. 【python】为啥别人都能抢到票?因为他有这个抢票程序
  16. 读万卷书,写万行代码
  17. ENCODYAv1.1 英科迪亚 免费下载
  18. 数据科学 6 参数估计与统计推断(概念)
  19. 300条物流术语翻译
  20. 2023阿里云学生服务器权益,含Clouder认证:云服务器ECS答案

热门文章

  1. php实现文件留言,PHP文件操作及实例:留言板
  2. c语言中有12个球,数学老师做不出来的一道逻辑推理题
  3. 解决adb调试显示 Connected Device ************** [null]
  4. 校园春色关不住,怎奈何唯有花枝俏,不见赏花人?
  5. Android之用adb命令快速获取手机IP方法总结
  6. Android面试题总结加强版(二)
  7. 【iVX 初级工程师培训教程 10篇文拿证】05 画布及飞机大战游戏制作
  8. mysql为什么添加索引_当我添加新索引时,为什么MySQL中索引的基数保持不变?
  9. java idea 模块_idea 多模块项目依赖父工程class找不到问题的方法
  10. java黄油刀_一篇文章玩转ButterKnife,让代码更简洁