SUID含义:文件的该位被设置为1,在该文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来
SGID含义:运行者将具有文件所有组的权限。
粘合位: 要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映像,这样做是为了节省大
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只对文件有效)
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
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)
rwxrwsrw- 表示有setgid标志 (rwxrwxrw-:rwxrwsrw-)
rwxrw-rwt 表示有sticky标志 (rwxrw-rwx:rwxrw-rwt)
理解文件权限
所谓的文件权限,是指对文件的访问权限,包括对文件的读、写、删除、执行。Linux 是一个多用户操作系统,它允许多个用户同时登录和工作。因此 Linux 将一个文件或目录与一个用户和组联系起来。请看下面的例子:
文件标志
|
文件类型
|
例子
|
–
|
普通文件
|
数据文件、
ASCII 纯文本文件、程序 |
d
|
目录
|
/bin
|
b
|
块设备
|
/dev/hda(第一个 IDE 硬盘)
|
c
|
字符设备
|
/dev/ttyS1(与 DOS 种的串口 2 等同)
|
s
|
套接字
|
/dev/log
|
p
|
命名管道
|
/dev/initctl(与“|”等同)
|
l
|
符号链接
|
/dev/modem->/dev/ttyS1
|
修改文件权限
chmod a+r,u+w,u+x,g+w a.txt