Linux学习笔记(八)权限

1. 在Linux中,权限一般为读、写、执行三种,而且进程的权限与用户的权限一样。

2. X对于目录而言,表示可以查看目录的内容,因此目录必须具有X(执行)权限,否则无法查看其内容;

    对于文件而言,形容该文件可作为执行文件。

3. Linux权限基于UGO模型进行控制。U代表用户user,G代表组Group,O代表其他Other,权限三个一组(rwx),对应UGO分别设置。每一个文件拥有一个所属用户和所属组(对应UG),不属于该文件所属用户和所属组的使用O权限。

一般格式为:drwxr-xr--,其中d表示文件类型,前三个rwx表示U权限,中间三个r-x表示G权限,最后三个r--表示O权限。

4. 修改文件所属用户和所属组

命令chown(change owner)用于改变文件的所属用户,格式为:chown 新用户 文件/文件夹,如:chown user_su linux

参数:-R表示递归修改目录下的所有文件的所属用户

chgrp(change group)用于修改文件的所属组,格式为:chgrp 新组 文件/文件夹

参数:-R表示递归修改目录下的所有文件的所属组

5. 修改权限

命令chmod用于修改文件的权限,格式为:chmod 模式 文件,模式指:

(1)  u、g、o分表代表用户、组和其他

(2) a可指代ugo三个全部

(3) +、-代表加入或删除对应权限,或者是一个“=”,表示只有指定的权限可用,其它所有的权限被删除

(4) r、w、x代表三种权限

示例:chmod  u+rw  tempchmod  g-x  temp

   chmod  go+r  rempchmod  a-x  temp

参数:-R 表示递归修改文件夹下的所有文件的权限

chmod也支持以数字方式修改权限,三个权限分别对应三个数字:-r = 4-w = 2 -x = 1

使用数字方式表示权限时,每组权限分别对应着三者的数字之后,示例如下:

chmod  660 temp== rw-rw----

chmod 755 temp== rwxr-xr-x

6. 实际情况示例:

用户
traininglilei
bob
marketalice
john
managesteve
david

现要求为各部门、员工建立相应的工作文件夹,要求如下:
(1) 所有目录、文件保存在统一的文件夹下
(2) 每个部门拥有一个独立的文件夹
(3) 不同部门之间不可访问各自文件夹
(4) 每个员工在所在部门文件夹下拥有一个所属的文件夹
(5)同部门不同员工可以查看各自文件夹内容,但不可修改,用户仅能够修改自己的内容
步骤如下:
//创建用户和组
groupadd training
groupadd market
groupadd manage
useradd -G training lilei
useradd -G training bob
useradd -G market alice
useradd -G market john
useradd -G manage steve
useradd -G training david
//所有目录、文件保存在统一的文件夹下,因此在根目录" / "下创建文件夹company
cd /
mkdir company
//每个部门拥有一个独立的文件夹,因此在company下创建文件夹training、market、manage
mkdir training
mkdir market
mkdir manage
//查看三个文件夹的属性,将所属组改为各自对应的组
ll
chgrp training training
chgrp market market
chgrp manage manage
//不同部门之间不可访问各自文件夹
chmod o-rx training
chmod 650 market
chmod o-rx manage
//每个员工在所在部门文件夹下拥有一个所属的文件夹,分别在training、market、manage三个文件夹下创建各自员工的文件夹
//在training文件夹下
mkdir lilei
mkdir bob
//在market文件夹下
mkdir alice 
mkdir john
//在manage文件夹下
mkdir steve
mkdir david
//同部门不同员工可以查看各自文件夹内容,但不可修改,用户仅能够修改自己的内容,因此设置文件夹的所属用户和所属组
chown lilei lilei
chgrp training lilei
chmod o-rx lilei

chown bob bob
chgrp training bob
chmod o-rx bob

chown alice alice
chgrp market alice
chmod o-rx alice

chown john john
chgrp market john
chmod o-rx john

chown steve steve
chgrp nanage steve
chmod o-rx steve

chown david david
chgrp manage david
chmod o-rx david
7. 默认权限:每一个终端都有一个umask属性来确定新建文件/文件夹的默认权限。umask使用数字权限方式表示,普通用户的默认umask为002root用户的默认umask为022.
目录的默认权限为:777-umask
文件的默认权限为:666-umask
因此,对于普通用户:创建新文件的权限为:666-002=664,创建新目录的权限为:777-022=755.
umask命令可以查看设置umask的值,并且umask+num命令可以改变umask的默认值。

8. 特殊权限:
(1) suid:对于文件的影响---以文件的所属用户身份执行,而非执行文件的用户,即为用户提供权限,实现它原本没有的权限所执行的功能,一般都为可执行文件进行设置,如:passwd与shadow;对于目录来说没有影响。
当应用到一个可执行文件时,它把有效用户 ID从真正的用户(实际运行程序的用户)设置成程序所有者的 ID。这种操作通常会应用到一些由超级用户所拥有的程序。当一个普通用户运行一个程序,这个程序由根用户(root)所有,并且设置了 setuid 位,这个程序运行时具有超级用户的特权,这样程序就可以访问普通用户禁止访问的文件和目录。很明显,因为这会引起安全方面的问题,所有可以设置 setuid 位的程序个数,必须控制在绝对小的范围内。
(2) sgid:对于文件的影响---以文件所属组身份执行(一般很少使用);对于目录的影响---在该目录中创建的任意新文件的所属组 都与该目录的所属组相同
这个相似于 setuid 位,把有效用户组 ID 从真正的用户组 ID 更改为文件所有者的组 ID。如果设置了一个目录的 setgid 位,则目录中新创建的文件具有这个目录用户组的所有权,而不是文件创建者所属用户组的所有权。对于共享目录来说,当一个普通用户组中的成员,需要访问共享目录中的所有文件,而不管文件所有者的主用户组时,那么设置 setgid 位很有用处。
(3) sticky:对于文件没有影响,对于目录的影响---对目录拥有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户所拥有的文件。
它可能把一个可执行文件标志为“不可交换的”。在 Linux 中,会忽略文件的 sticky 位,但是如果一个目录设置了 sticky 位,那么它能阻止用户删除或重命名文件,除非用户是这个目录的所有者,或者是文件所有者,或是超级用户。这个经常用来控制访问共享目录,比方说/tmp。
9. 设置特殊权限,之前的x将变为s
(1) suid u+s temp
(2) sgid g+s temp
(3) sticky o+t temp
10. 数字方式:-SUID = 4 -SGID = 2   -sticky = 1
chmod 4755 temp
11. 常见的文件类型



  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mengrennwpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值