Linux特殊权限

有三种:SUID,SGID,Sticky

SUID :运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者。
   当我们希望某个普通用户能够运行管理员能运行的命令时,可以给该命令SUID权限,危险的权限,不要乱给。
给文件SUID权限:
[[email protected] ~]# chmod u+s /bin/cat
[[email protected] ~]# chmod u-s /bin/cat
如果文件本身原来就有执行权限,则SUID显示为s(小s),否则显示S(大S)。
    例如:文件权限如下:
[[email protected] ~]# ll /bin/cat
-rwxr-xr-x. 1 root root 48568 Nov 22  2013 /bin/cat
[[email protected] ~]# ll /etc/shadow
----------. 1 root root 1532 Nov 18 17:32 /etc/shadow

当某个普通用户执行cat /etc/shadow命令时,结果如下:
[[email protected] ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied    (没有权限)

[[email protected] ~]# chmod u+s /bin/cat         (给cat特殊权限)
[[email protected] ~]# ll /bin/cat       
-rwsr-xr-x. 1 root root 48568 Nov 22  2013 /bin/cat

[[email protected] ~]$ cat /etc/shadow              (可以执行该命令了)
root:$6$ywmofjJsEJYHh7xr$fbqAyFiYzlrEeZpAnH5QXN63zuOPd3NW9ZUDzOwqalm7Mg5Fg0rStYBnoiVbuLmCAnOAYZLEhiMN.kG7IAiJj.:16324:0:99999:7:::
bin:*:15980:0:99999:7:::

由于passwd需要普通用户执行,所以默认具有s权限:
[[email protected] ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Feb 22  2012 /usr/bin/passwd

SGID : 运行某程序时,相应进程的属组是程序文件自身的属主,而不是启动者。
[[email protected] ~]# chmod g+s pjort
[[email protected] ~]# chmod g-s pjort
当我们有个目录,需要让一个组用户在这里随意编写各自创建的文件,给这个目录SGID权限,用户所创建的文件属组会和目录一样:
[[email protected] ~]# grep "it" /etc/group
rtkit:x:497:
it:x:505:zhang2,dwzhang,zhang1       (it组有dwzhang和zhang1,zang2)

[[email protected] ~]# chown -R :it pjort/
[[email protected] ~]# ll -d pjort/       
drwxr-xr-x. 2 root it 4096 Nov 20 10:01 pjort/    (文件属组为it)

此时普通用户执行:
[[email protected] ~]$ touch a.txt
touch: cannot touch `a.txt‘: Permission denied    (没有权限)

在这时。如果我们给pjort文件属组w权限:
[[email protected] ~]# chmod g+w pjort/
[[email protected] ~]# ll -d pjort/    
drwxrwxr-x. 2 root it 4096 Nov 20 10:01 pjort/     (组给个w权限)

此时普通用户执行:
[[email protected] ~]$ cd /tmp/pjort/
[[email protected] ~]$ touch dwzhang
[[email protected] ~]$ ll
total 0
-rw-rw-r--. 1 dwzhang dwzhang 0 Nov 20 10:08 dwzhang  (此时可以有权限创建)

但是在这里文件属性是自己,别人不能够编辑另一个人创建的文件:
[[email protected] ~]$ ll
total 4
-rw-rw-r--. 1 dwzhang dwzhang    0 Nov 20 10:08 dwzhang
drwxrwxr-x. 2 zhang1  zhang1  4096 Nov 20 10:14 erp
-rw-rw-r--. 1 zhang1  zhang1     0 Nov 20 10:10 zhang1
[[email protected] ~]$ echo "i am dwzhang" >> zhang1
-bash: zhang1: Permission denied         (没有权限)

在这时,可以给pjort这个目录特殊权限g:
[[email protected] ~]# chmod g+s pjort/
[[email protected] ~]# ll -d pjort/    
drwxrwsr-x. 3 root it 4096 Nov 20 10:14 pjort/

在用普通用户试试:   (在新建个文件测试)
[[email protected] ~]$ ll
total 0
-rw-rw-r--. 1 dwzhang dwzhang 0 Nov 20 10:08 dwzhang
-rw-rw-r--. 1 zhang1  it      0 Nov 20 10:17 erp (新建的文件属组会是it)   
-rw-rw-r--. 1 zhang1  zhang1  0 Nov 20 10:10 zhang1
[[email protected] ~]$ echo "i am dwzhang" >> erp    (有了写权限)
[[email protected] ~]$ cat erp
i am dwzhang

注意:此时用户会具有编辑,查看,删除权限。
如果想这些用户不能够有删除权限就需要Sticky特殊权限了。

Sticky :在一个公共目录,每个用户都可以创建文件,删除自己的文件,但是不能够删除别人的文件。
[[email protected] ~]# chmod o+t pjort/
[[email protected] ~]# chmod o-t pjort/

接上面,自己可以删除自己的,不能删除别人的:
[[email protected] ~]# chmod o+t pjort/
[[email protected] ~]# ll -d pjort/    
drwxrwsr-t. 2 root it 4096 Nov 20 10:17 pjort/

普通用户执行:
[[email protected] ~]$ rm erp
rm: cannot remove `erp‘: Operation not permitted   (没有权限)

数字表示:
1 :Sticky
chmod 1755 /test
3 :SGID
chmod 3755 /test
5 :SUID
chmod 5755 /test

这就是为什么umask是4位了:
[[email protected] ~]# umask
0022

时间: 2024-11-04 20:35:24

Linux特殊权限的相关文章

Linux 文件权限总结

在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(www.lampbrother.net). 但不要以为理解文件权限需要长时间的学习.事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们. 基础概念 你要明白的第一件事是文件权限可以用来干什么.当你设置一个分组的权限时发生了什么?让我们将其展开来说,这个

【CentOS】Linux sudo权限集中管理案例

目的 使得公司的Linux系统权限管理更规范,让每个用户拥有自己所该有的权限,防止因为某些用户的权限过大后的一些误操作,导致服务器的不正常运行. 操作 1.编辑Linux系统中的sudoers文件 [[email protected] ~]# vim /etc/sudoers #Edit by root User_Alias NETMAN = net01, net02 #用户别名 User_Alias ADMIN = admin01, admin02 User_Alias SA = %sa #定

linux特殊权限SUID、SGID、SBIT

linux特殊权限SUID.SGID.SBIT 一.SUID 我们先来看一个文件,如下: [[email protected] ~]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd 可以看到/usr/bin/passwd这个文件状态是"-rwsr-xr-x",而不是我们平时所熟悉的"-rwxr-xr-x",那么当s出现在文件拥有者的x权限上时,此时就被称为SE

linux的权限管理

linux的权限管理命令主要有chown,chgrp,chmod. linux权限 linux的权限有:r,w,x. 对于文件而言:r表示可读,即可以用cat等命令查看:w表示可写,可以编辑或者删除此文件:x,表示可执行,可以再命令提示符下提交给内核执行(linux创建文件默认是不具有执行权限的). 对于目录而言:r表示可对此目录执行ls列出 内部的所有文件:w表示可以在此目录创建文件:x,表示可以cd到此目录,并且使用ls -l列出详细信息(linux目录一般都有x). linux的特殊权限有

Linux文件权限表示

属主,属组,其他用户 Linux下一个文件的权限包含属主.群组和其他人的权限,并且各个用户对该文件具有单独设置的权限,这是 Linux 权限模型的核心. 那么什么是属主,属组,其他用户呢? 属主: 属主即一个文件的拥有者,一般为这个文件的创建者 属组: Linux下的每个用户都会属于一个组别.那么这个组别就叫做属组 其他用户: 其他用户即为属主和属主所在属组以外的所有人, 例如:有个用户A,用户名是 A,他的属组名称也是 A ,还有一个用户B,用户名是B 他的属组名称也是B 这个时候用户A 创建

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之权限

基础权限 文件权限修改工具(chmod) chmod 修改文件权限位 chmod [OPTIONS] MODE[,MODE] FILES OPTIONS: -R 递归更新 --reference=RFILE 引用指定文件的权限位 MODE表示方法: 字母表示法 rwxrwxrwx 数字表示法 777 作用对象: 属主,使用'u'表示 属组,使用'g'表示 其他人,使用'o'表示 所有人,使用'a'表示 操作符号: + 添加权限位 - 删除权限位 = 左侧作用对象,右侧指定MODE(两侧留空为00

Linux的权限的管理

(1) Linux下用户的创建和删除 创建用户的命令: useradd jfedu 执行这个命令后,会为用户创建: <1> 为用户创建一个家目录  /home /jfedu <2> 建立一个和用户同名的组 删除用户的命令: userdel jfedu (保留用户的家目录) userdel -r jfedu (删除用户和家目录) (2) Linux用户的切换 将root用户切换到jfedu用户下 [[email protected] ~ #] su jfedu          [[

修改linux文件权限命令

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

Linux文件权限详解

在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变为任何他想指定的权限.一个文件也许只有读权限