linux特殊权限(二)

  在上文基本权限中讲述了rwx的作用。但是或许有人在权限蓝栏看到了一个s符号,这个就是特殊权限。

文件的特殊权限包括:SUID、SGID、SBIT。

  1.SUID,借出程序所有者的权限

[email protected]:/home$ ll /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 3月  29  2016 /usr/bin/passwd*   #拥有SUID权限,第一组rwx中的x改为s

  passwd命令为修改用户的密码,根据权限可以得知同一用户组或其他人都可以调用改命令。但是passwd命令需要修改/etc/shadow文件,此文件存储账号的密码。

[email protected]:/home$ ll /etc/shadow
-rw-r----- 1 root shadow 1517 11月 26 20:08 /etc/shadow
[email protected]:/home$ 

  可以看到,这个被passwd所修改的文件,权限仅仅允许root用户修改。那么问题来了~

  其他用户虽然可以调用passwd命令,但是不能修改/etc/shadow这个文件啊,那么密码怎么存储?

  这就是SUID的作用,你不是没有权利修改/etc/shadow文件吗?我(程序所有者)给你啊。也就是说,在这个时候,其他用户调用passwd命令已经暂时获得root用户的权限,这时去修改/etc/shadow是利用root用户的权限去修改。

  • SUID权限仅限二进制程序有效
  • 执行者需要有x权限
  • 执行者获得该程序所有者的权限
  • 仅在本程序执行中拥有改权限

  简单来说,这个s权限,会将程序所有者拥有的权限暂时借给其他人使用,前提是其他人拥有这个程序的x权限。

  2. SGID,借出用户组的权限

[email protected]:/home$ ll
drwxr-xr-x 23 hang hang 4096 11月 27 18:47 hang/
drwxr-xr-x  2 zncu zncu 4096 11月 25 20:47 zncu/
drwxrws---  2 root znha 4096 11月 25 20:48 znha/

  简单来说,SGID和SUID一个是把用户组的权限暂时借出一个是把所有者的权限暂时借出。

  • SGID对二进制程序依然有效
  • 程序执行者需要具有x权限
  • 执行者在执行过程中暂时获得用户组的权限

  但是,SGID也可以针对目录或者文件使用,上面的例子就是对目录的使用。

那么它有什么作用那?

  • 用户(hang)对此目录(znha)具有r与x权限时,该用户可以进入此目录。
  • 用户在此目录下的有效用户组将变成该目录的用户组。
  • 若用户对此目录具有w权限时,那么用户创建的文件的用户组将为此目录的用户组。
[email protected]:/home$ groups hang  #hang用户在znha用户组里,所以具有进入znha目录的权限
hang : hang znha

在此目录创建文件,观察该文件所在用户组

[email protected]:/home/znha$ touch test
[email protected]:/home/znha$ ll
-rw-rw-r-- 1 hang znha    0 11月 27 20:54 test  #hang用户在具有SGID的目录里创建文件,该文件的用户组为znha(该目录所在用户组)[email protected]:~$ cd hang/[email protected]:~/hang$ touch test           #在其他目录里创建文件,文件的用户组为hang(用户的主用户组)     [email protected]:~/hang$ ll-rw-rw-r--  1 hang hang    0 11月 27 20:56 test

可以看到,该文件的用户组问znha,而不是hang。这种特性可以使在同一用户组的多个用户拥有共同的目录,在创建文件时该用户组的所有用户都有相同的权利操作文件。

3. SBIT,对目录有效

  •  当用户对于此目录具有w、x权限时,即具有写入的权限
  •  用户在此目录创建文件时,只有自己和root才有权利删除(以及其他w相关操作)该文件
  •  用户不允许对其他用户的文件操作
drwxrwxrwt  15 root root  4096 11月 27 21:06 tmp/  #具有SBIT权限,最后一个字母t标示。

  特殊权限的设置:

  SUID:4

  SGID:2

  SBIT:1

  chmod 4777  test ,添加SUID权限。

http://www.cnblogs.com/yuhanghzsd/p/6107362.html

时间: 2024-10-25 20:42:36

linux特殊权限(二)的相关文章

Linux题目(二)

有重复内容,但肯定是重点 Linux面试((二) 一.Linux操作系统知识 1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块? 答:RHEL.CentOS.乌班图.红旗.debian等.我是从centos6.6打基础的,www.centos.org.(7月4号我去面试,面试官问我:"你对Linux内核哪部分最熟悉?",我一时懵逼答的进程管理.我特么哪块都不擅长啊!下次再被问到说iptables) ##类Unix有:FreeBSD .HP-UX

手把手带你自制Linux系统之二 简易Linux制作

手把手带你自制Linux系统之二 简易Linux制作 本文利用CentOS5.5自带内核制作一个Mini Linux. 打开准备工作中创建的CentOS,为另一个虚拟机MiniLinux添加一个最小Linux所需要的文件. 1. 创建分区 为准备好的磁盘创建两个主分区,大小分别为20M和512M. 使用fdisk命令创建分区详细过程: fdisk /dev/hda 创建第一个20M分区依次输入: n --> p --> 1 --> <Enter> --> +20M 这几

linux 用户权限设置

# useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录). 假设当前用户是sam,则下面的命令修改该用户自己的口令: # passwd Old password:****** New password:******* Re-enter new password:******* 如果是超级用户,可以用下列形式指定任何用户的口令: # passwd sam New

修改linux文件权限命令

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

Linux文件权限学习总结

一.用户对文件或目录都有哪些权限? 四种:读.写.执行.没有权限 二.如何表示这四种权限? 如果用十进制数字表示,分别为:4.2.1.0:如果用字符表示,分别为:r.w.x.-.个人觉得,使用chmod命令更改文件或目录权限时,数字表示法显然比字符表示法简洁明快 三.对于文件和目录而言,这四种权限是否具有同样的含义? 并非如此,如下所示: ---------------------------------------------------------------------------    

攻城狮在路上(叁)Linux(十二)--- Linux的目录与路径

一.相对路径与绝对路径: A.绝对路径:由根目录/开始写起的路径,例如 /usr/share/doc B.相对路径:不是由根目录/开始写起的路径. 二.目录的相关操作: 1.cd: 目录切换 cd ~vbird; cd ~;<==切换到当前用户的工作目录 cd ..;<==返回到上一级目录 cd -;(回到上一个目录) cd /usr/share; cd share; 2.pwd:显示当前所在的目录 pwd -p; <== 显示出实际的目录,而非仅是连接文件本身的目录名. 3.mkdir

修改linux文件权限

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

修改linux文件权限命令:chmod

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

linux系统权限大全

linux系统权限大全 一. 文件的归属: 文件所有者(owner).用户组(group).其它人(others) 二.查看 linux文件权限以及归属 ls 命令  ls -al  查看文件详细权限和属性 权限  r  w  x 三.设置文件目录的权限 1. 修改权限的命令  有  chmod   chown  chgrp 四.默认权限 1 .查看默认权限  umask   umask  -s 2 .更改默认权限  umask   xxx  直接接数字 五.文件或目录的隐藏属性 1. 设置文件