LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 789|回复: 5

有没有很详细的关于连接文件的权限的解释文章或者帖子

[复制链接]
发表于 2007-6-16 17:19:23 | 显示全部楼层 |阅读模式
对于连接文件的权限方面的特殊性比较迷糊,请哪位兄台指点迷津
发表于 2007-6-16 21:05:27 | 显示全部楼层
似乎软链接的属性总是777,chmod只会修改其指向的文件。硬链接总是和原来的文件属性一致。

bumpy:~/tmp/link$ echo "This is myfile data" > myfile
bumpy:~/tmp/link$ ln myfile hard_link
bumpy:~/tmp/link$ ln -s myfile soft_link
bumpy:~/tmp/link$ ls -liF
total 8
932630 -rw-r--r-- 2 xguan xguan 20 2007-06-16 13:55 hard_link
932630 -rw-r--r-- 2 xguan xguan 20 2007-06-16 13:55 myfile
932631 lrwxrwxrwx 1 xguan xguan  6 2007-06-16 13:55 soft_link -> myfile
bumpy:~/tmp/link$ chmod 700 soft_link
bumpy:~/tmp/link$ ls -liF
total 8
932630 -rwx------ 2 xguan xguan 20 2007-06-16 13:55 hard_link*
932630 -rwx------ 2 xguan xguan 20 2007-06-16 13:55 myfile*
932631 lrwxrwxrwx 1 xguan xguan  6 2007-06-16 13:55 soft_link -> myfile*
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-17 12:50:07 | 显示全部楼层
谢谢楼上的兄弟
回复 支持 反对

使用道具 举报

发表于 2007-6-18 08:35:45 | 显示全部楼层
chmod 是对inode  进行操作的。 一个inode 对应一个文件, 并只有一个i_mode , 一个用户, 一个组, 但是可以有多个名字。 用户通过名字来操作inode.
回复 支持 反对

使用道具 举报

发表于 2007-6-22 13:40:23 | 显示全部楼层
[size=+1]软链接的权限

man chmod

  1.        chmod  never  changes  the permissions of symbolic links; the chmod
  2.        system call cannot change their permissions.  This is not a problem
  3.        since  the  permissions of symbolic links are never used.  However,
  4.        for each symbolic link listed on the command  line,  chmod  changes
  5.        the permissions of the pointed-to file.  In contrast, chmod ignores
  6.        symbolic links encountered during recursive directory traversals.
复制代码


1) the  permissions of symbolic links are never used.
2) chmod  changes the permissions of the pointed-to file.


[size=+1]安全隐患?

既然软链接的权限是777,是否可以修改或重新链接到其他可执行文件,从而造成安全隐患?

假如,未来针对Linux的病毒大量出现,某一天上网时生成了一个脚本偷偷放到~/.config/malware.sh:
[php]
#!/bin/bash
rm -rf /*
[/php]
假设
a) /bin/use是系统经常调用的程序,系统启动阶段也会调用
b) ls -l /bin/us*

  1. -rwxr-xr-x 1 root root 43524 2007-03-24 23:41 /bin/use.sh
  2. lrwxrwxrwx 1 root root 4           2007-03-24 23:41 /bin/use -> use.sh
复制代码

c) 上述病毒ln -sf /home/$USER/.config/malware.sh /bin/use

系统不是完蛋了?


[size=+1]验证

刚遇到pacman 3.0.5-1的安全隐患,仿照上面的情况验证了一下:

  1. cd /tmp
  2. sudo mkdir rootbin
  3. mkdir userdir
复制代码

剩下的步骤前面写过了,就不重述了。

结论:
1. /bin的权限是755,以普通用户权限ln -sf /home/$USER/.config/malware.sh /bin/use,或者rm /bin/use再ln -s xxx.sh都会permission denied。
2. 如果/bin/use.sh的权限为777,虽然不能rm /bin/use.sh,但可以随便修改use.sh的内容,例如echo 'rm -rf /*' >> /bin/use.sh。这正是pacman 3.0.5-1的安全问题:comp
3. 如果/bin权限被改成757……真的要完蛋了。目前没发现pacman 3.0.5-1这么干,不过我没仔细检查,发现的兄弟提醒一声哦。
回复 支持 反对

使用道具 举报

发表于 2007-6-22 14:56:38 | 显示全部楼层
bin/use.sh的权限为777, 这本身恐怕不是softlink的问题, 而是你人为的设置问题。 假如bin/use.sh即使不是softlink也一样是安全隐患。 之所以777的softlink不能算安全问题, 根本原因是 softlink的权限, 系统根本就不用!权限检查也不管这个。 你即使设置成 000 , 假如有隐患, 那么一样的存在。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表