unix中的file permissions (read write execute)

最近,学习computer security art and science, 频繁见到读,写,执行,特别是在模型中总感觉许多论文没有分清read ,write, execute. 本人就忍不住 google 了一下。看到了Unix 中的read, write, execute. 不知道有没有帮助,先借个地方做个总结,发现最近突然爱上了电脑做笔记。 /偷笑,好懒。
大多数是翻译原文的。原文在tutorialspoint

Unix ownership 是Unix中的重要组成。每个Unix文件有以下三种属性。
owner permissions:  文件拥有者可以执行的操作;
group permissions:  用户组的成员的执行的操作;
other(world) permissions: 所用其他用户可以执行的操作,全局允许执行操作。

the permission Indicators. 在unix中使用ls -l 命令查询相关permission info。

这里写图片描述

这里写图片描述

查询结果的第一列表示三种permissions的值。按照owner, group, world的顺序依次排列。permission中的值由 r,w,x(execute)依次组成,若没有就用-表示。比如第一行的结果中的-rwxr-xr–表示owner可以执行read ,write, execute(x), group可以执行read,execute,other users 可以执行read.

File Access Modes .文件访问允许是unix系统安全的第一道防线,而permissions组成是read, write , execute permissions.

    read: 授予读的能力,也就是说看文件的内容。
    write: 授予修改,和移除文件内容的能力。
    execute: 拥有execute的用户可以把一个文件当做一个可执行程序执行。

Directory Access Modes 与文件基本一致。

    read: 用户可以读目录内的文件名
    write: 可以删除,添加文件
    execute: 几乎不产生实际意义,只是移过来的东西。但是用户必须有bin的execute mode, 才可以执行ls和cd 命令。

实际到这儿来,我就差不多,我觉得我是没有理解system 的memory abstraction 和 file system. 因为按这儿的说法,电脑除了静态的文件,(包括可执行文件),就是动态的正在运行的进程(i.e. execute a file as a program)。那么这三个权限已经具有了完备性,在限制权限方面。

但是原文中还讲到了change permissions.(chmod)的用法,change oweners and groups。 挺有用的忍不住看完了。

chmode 有两种使用模式,一种是symbolic mode, 一种是absolute mode.实际就是在使用chmod 修改命令时 ,添加修改参数的不同方法(“语法”)。
这里写图片描述

其中一种是直接用[0/u/g][+/-/=][wrx]+表示

这里写图片描述

一种是用数字表示参数,也就是三个数字分别表示修改后的三种权限。

change owners and groups. 当用户在unix上创建账户时,它分配一个拥有者id,和一个group id给每一个用户,所有的上面提到的permission都是基于拥有者和组的。
也就是每一种权限,都是针对某个特定的用户和特定的组而言的。而用chown和chgrp可以改变文件的拥有者和组拥有者。超级用户root拥有改变任何文件持有者的能力。普通用户只能改变自己拥有文件的拥有者能力(衰减规则)。

这里写图片描述testfile文件的拥有者变成了一个叫amrood的用户。

SUID and SGID File permission. 当一个命令执行时,必须有特定权限才能执行命令并完成任务。e.g. 当你改密码时,需要访问 /etc/shadow,密码存在这里。你就必须登录密码程序(passwd program ),他给你additional permission 能够写这个文件。普通用户是没有权限读,写这个文件的。而passwd program 通过suid 和guid bits (suid ,guid 比特位,在程序运行过程中的进程信息里包含。)的机制授予额外的权限。
当你执行拥有suid 比特位激活的程序,你也得到了程序拥有者的权限。而没有激活的程序只拥有调用这个程序的用户的权限。suid 的位置与用户的执行权限在用户的execute 比特位上。当时小s时表示拥有suid ,当时大S表示没有suid. 同样使用与Set groud ID.(guid).

这里写图片描述
查询方式和修改方式与execute 一致。
最后举个例子:
这里写图片描述
(the stick bit)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值