1楼:海天盛筵
s是源文件,目标文件做软链接,与只共享可执行文件的快捷方式不同,linux几乎可以通过链接的文件共享任何类型的文件,权限设置方法。
1.首先连接到linux主机并输入linux命令行状态,等待输入指令。
2.通过cd指令输入要设置文件的目录,然后通过ll指令获得当前测试文件的权限状态。
3、输入:专用chmod444测试。txt,然后按回车。
4.最后,输入ll指令以查看属于test.txt的文档的权限是否已变为只读。
2楼:匿名用户
r(read,读取):对文件而言,
具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。
w(write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(execute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
s或s(suid,set uid):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备suid权限的文件,黑客经常利用这种权限,以suid配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。
t或t(sticky):/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。
r,w,x是基本权限 s、t是特殊权限,
3楼:大胆别来送死
sticky讲错了……用户只具有删除自己文件的权限……
4楼:匿名用户
uid,简称为suid,这个uid表示user的id,而user表示这个程序(/usr/bin/passwd)的拥有者(root)。那么,我们就可以知道,当dmtsai用户执行
/usr/bin/passwd时,它就会“暂时”得到文件拥有者root的权限。
suid仅可用在“二进制文件(binary
file)”,suid因为是程序在执行过程中拥有文件拥有者的权限,因此,它仅可用于二进制文件,不能用在批处理文件(shell脚本)上。这是因为
shell脚本只是将很多二进制执行文件调进来执行而已。所以suid的权限部分,还是要看shell脚本调用进来的程序设置,而不是shell脚本本身。当然,suid对目录是无效的。
这点要特别注意。 如若还不明白可以自行查找linux命令介绍,推荐查找**如下图:
5楼:linux百科
特殊suid权限
细节看《linux就该这么学》
6楼:风萧萧驹嗷嗷
推荐的答案把粘滞位讲反了。。。
linux中chmod中的 permission(r,w,x,s,t) 里的s和t代表什么意思呢
7楼:豆菲特
setuid会创建s与t权限,是为了让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限。举例来说,我们知道,账号与密码的存放文件其实是
/etc/passwd与 /etc/shadow.而 /etc/shadow文件的权限是“-r- - - - - - - -
”。它的拥有者是root.在这个权限中,仅有root可以“强制”存储,其他人是连看都不行的。
但是,偏偏笔者使用dmtsai这个一般身份用户去更新自己的密码时,使用的就是
/usr/bin/passwd程序,却可以更新自己的密码。也就是说,dmtsai这个一般身份用户可以存取 /etc/shadow密码文件。这怎么可能?明明
/etc/shadow就是没有dmtsai可存取的权限。这就是因为有s权限的帮助。当s权限在user的x时,也就是类似 -r - s - - x - - x,称为set
uid,简称为suid,这个uid表示user的id,而user表示这个程序(/usr/bin/passwd)的拥有者(root)。那么,我们就可以知道,当dmtsai用户执行
/usr/bin/passwd时,它就会“暂时”得到文件拥有者root的权限。
suid仅可用在“二进制文件(binary
file)”,suid因为是程序在执行过程中拥有文件拥有者的权限,因此,它仅可用于二进制文件,不能用在批处理文件(shell脚本)上。这是因为
shell脚本只是将很多二进制执行文件调进来执行而已。所以suid的权限部分,还是要看shell脚本调用进来的程序设置,而不是shell脚本本身。当然,suid对目录是无效的。
这点要特别注意。
setgid进一步而言,如果s的权限是在用户组,那么就是set
gid,简称为sgid.sgid可以用在两个方面。
文件:如果sgid设置在二进制文件上,则不论用户是谁,在执行该程序的时候,它的有效用户组(effective
group)将会变成该程序的用户组所有者(group
id)。
目录:如果sgid是设置在a目录上,则在该a目录内所建立的文件或目录的用户组,将会是此a目录的用户组。
一般来说,sgid多用在特定的多人团队的项目开发上,在系统中用得较少。
sticky
bit这个sticky bit当前只针对目录有效,对文件没有效果。sbit对目录的作用是:“在具有sbit的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除”。
换句话说:当甲用户在a目录下拥有group或other的项目,且拥有w权限,这表示甲用户对该目录内任何人建立的目录或文件均可进行“删除/重命名/移动”等操作。不过,如果将a目录加上了sticky
bit的权限,则甲只能够针对自己建立的文件或目录进行删除/重命名/移动等操作。
举例来说,/tmp本身的权限是“drwxrwxrwt”,在这样的权限内容下,任何人都可以在
/tmp内新增、修改文件,但仅有该文件/目录的建立者与root能够删除自己的目录或文件。这个特性也很重要。可以这样做个简单测试:
1. 以root登入系统,并且进入 /tmp中。
2. touch
test,并且更改test权限成为777.
3. 以一般用户登入,并进入 /tmp.
4. 尝试删除test文件。
suid/sgid/sbit权限设置
前面介绍过suid与sgid的功能,那么,如何打开文件使其成为具有suid与sgid的权限呢?这就需要使用数字更改权限了。现在应该知道,使用数字更改权限的方式为“3个数字”的组合,那么,如果在这3个数字之前再加上一个数字,最前面的数字就表示这几个属性了(注:
通常我们使用chmod
xyz filename的方式来设置filename的属性时,则是假设没有suid、sgid及sticky
bit)。
4为suid
2为sgid
1为sticky
bit假设要将一个文件属性改为“-rwsr-xr-x”,由于s在用户权限中,所以是suid,因此,在原先的755之前还要加上4,也就是使用
“chmod 4755
filename”来设置。此外,还有大s与大t的产生。参考下面的范例(注意:
下面的范例只是练习而已,所以笔者使用同一个文件来设置,必须知道,suid不是用在目录上,sbit不是用在文件上)。
[root@linux ~]# cd /tmp
[root@linux tmp]# touch test
[root@linux tmp]# chmod 4755 test; ls -l test
-rwsr-xr-x 1 root root 0 jul 20 11:27 test
[root@linux tmp]# chmod 6755 test; ls -l test
-rwsr-sr-x 1 root root 0 jul 20 11:27 test
[root@linux tmp]# chmod 1755 test; ls -l test
-rwxr-xr-t 1 root root 0 jul 20 11:27 test
[root@linux tmp]# chmod 7666 test; ls -l test
-rwsrwsrwt 1 root root 0 jul 20 11:27 test
# 这个例子要特别小心。怎么会出现大写的s与t呢?不都是小写的吗?
# 因为s与t都是取代x参数的,但是,我们是使用
# 7666.也就是说,user、group以及others都没有x这个可执行的标志
# (因为666)。所以,s、t表示“空的”。
# suid是表示“该文件在执行时,具有文件拥有者的权限”,但文件
# 拥有者都无法执行了,**来的权限给其他人使用呢?当然就是空的