linux 文件夹权限 bit,linux特殊文件权限 suid、sgid和sticky-bit的作用

linux特殊文件权限 suid、sgid和sticky-bit的作用

三种特殊权限简介

SUID

当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。

如果所有者是 root 的话,那么执行人就有超级用户的特权了。

SGID

当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权, 任意存取整个组所能使用的系统资源。

若一个目录设置了SGID,则所有被复制到这个目录下的文件, 其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p (preserve,保留文件属性)的参数,才能保留原来所属的群组设置。

sticky-bit

对一个文件设置了sticky-bit之后,尽管其他用户有写权限, 也必须由属主执行删除、移动等操作。

对一个目录设置了sticky-bit之后,存放在该目录的文件仅准许其属主执行删除、 移动等操作。

特殊权限的数值表示

三种特殊权限可以用单独的一位8进制数值表示

SUID、SGID和sticky-bit的数值表示

SUID SGID sticky 二进制 八进制 说明

- - - 000 0 不设置特殊权限

- - t 001 1 只设置sticky

- s - 010 2 只设置SGID

- s t 011 3 只设置SGID和sticky

s - - 100 4 只设置SUID

s - t 101 5 只设置SUID和sticky

s s - 110 6 只设置SUID和SGID

s s t 111 7 设置三种特殊权限

我们知道了文件的权限可以用三个八进制数字表示。其实文件的权限应该用四个八进制来表示,不过用 ls -l 命令时,只显示三个罢了。那个没有显示的八进制数字其实是第一个,它用来设定一些特殊权限。这个八进制数字的三个位是:

SUID SGID sticky-bit

它们的含义是:

SUID

当设置了SUID 位的文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。如果所有者是 root 的话,那么执行人就有超级用户的特权了。这时该位将变成一个安全漏洞,因此不要轻易设置该位。

SGID

与上面的内容类似。文件运行时,运行者将具有所属组的特权。

sticky-bit

sticky 位要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映象。这样做是为了节省大型程序的启动时间。但是会占用系统资源。因此设置该位,不如把程序写好。

set uid ;set gid;sticky bit区别

每一个文件有所有者及组编号,set uid ;set gid可以改变用户对文件具有的权限:写和执行.

setuid: 在执行时具有文件所有者的权限.

setgid: 设置目录. 一个目录被标上setgid位,此目录下创建的文件继承该目录的属性.

sticky bit: 该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除文件。

如何设置:

操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,

1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效,U=用户)

chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效,g=组名)

chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)

2) 采用八进制方式. 这一组八进制数字三位的意义如下,

abc

a - setuid位, 如果该位为1, 则表示设置setuid

b - setgid位, 如果该位为1, 则表示设置setgid

c - sticky位, 如果该位为1, 则表示设置sticky

设置后, 可以用 ls -l 来查看. 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)

如:

rwsrw-r-- 表示有setuid标志 (rwxrw-r--:rwsrw-r--)

rwxrwsrw- 表示有setgid标志 (rwxrwxrw-:rwxrwsrw-)

rwxrw-rwt 表示有sticky标志 (rwxrw-rwx:rwxrw-rwt)

如何设置suid和guid

第一种:chmod u[g]+u[U] +filename

suid是在u的x位用s/S设定suid,当x位本身就设定了执行权限,则用小s表示;当x没有设定执行权限,则用大S表示;

eg:file:-rwx r-x r-x

dire:drw- r– r–

—–>

file:-rws(S) r-x r-x

dire:drwS(s) r– r–

guid是在g的x位用s/S设定guid,当x位本身就设定了执行权限,则用小s表示;当x没有设定执行权限,则用大S表示;

第二种:chmod +4位遵循权限设置的数字 +filename

(1)如果希望设置suid,那么就将权限位最前面(第一个短横线_所占据的)的那一位设置为4;

(2)如果希望设置guid,那么就将权限位最前面的那一位设置为2;

(3)如果希望两者都置位,那么将权限位最前面的那一位设置为4+2。

下面给出几个例子:

chmod 4755 filename–>rws r-x r- x文件被设置了suid,文件属主具有读、写和执行的权限,所有其他用户具有读和执行的权限

chmod 6711 filename–>rws –s –x 文件被设置了suid和guid,文件属主具有读、写和执行的权限,所有其他用户具有执行的权限

chmod 4764 filename–>rws rw- r- – 文件被设置了suid,文件属主具有读、写和执行的权限,同组用户具有读和执行的权限,其他用户具有读权限

©著作权归作者所有:来自51CTO博客作者crazylinuxming的原创作品,如需转载,请注明出处,否则将追究法律责任

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值