免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wingger
打印 上一主题 下一主题

类UNIX系统基础:文件安全与权限 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
21 [报告]
发表于 2004-11-02 15:16 |只看该作者

类UNIX系统基础:文件安全与权限

原帖由 "sunsroad" 发表:

同时在这里我想强调一下自个的一个观点:希望各位在整理自个的心得的时候,能够尽量本着负责的态度,将确定正确的资料整理出来。因为在bbs上的影响是比较广泛的,特别是象CU这样的论坛,一个错误的观点一旦散布出去,造成的影响是很大的,这一点我在很多地方都有很深的体会。


明白,呵呵,我这也是从其它地方来的资料,想不到这么多错,汗!!!一定更正

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
22 [报告]
发表于 2004-11-02 16:10 |只看该作者

类UNIX系统基础:文件安全与权限

已改正,欢迎XDJM们来一起讨论,呵呵

论坛徽章:
0
23 [报告]
发表于 2004-11-02 22:27 |只看该作者

类UNIX系统基础:文件安全与权限

原帖由 "wingger" 发表:


明白,呵呵,我这也是从其它地方来的资料,想不到这么多错,汗!!!一定更正


绝对没有针对谁的意思,我只是就这种现象的一种建议。

补充一下:
[quote]这个规则也适合于目录,不过不会出现为0的目录,即使是空目录。[/quote]
对于空目录及所有入口占用的空间小于一个block的目录来说,他的空间以一个block的大小来计算。

另外,在-rwxrwxrwx中,红色的一组是指属于文件所有者组的用户对文件所拥有的权限,但是这个组并不必蓝色的权限中文件的所有者所在的组。它们可以是一个,也可以是不同的,甚至可以和这个文件的所有者没有任何的关系。譬如说你新建一个test组,而让root用户不属于test这个组的话,你照样可以用chown :test filename这个命令让该文件的所有者组为test组,一切的访问照样合用。

最后对于文件的访问你还可以利用setfacl来进行更加详细的限定,这种情况下,文件将占用2个inode,这是跟以前的内容有所区别的地方。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
24 [报告]
发表于 2004-11-02 22:39 |只看该作者

类UNIX系统基础:文件安全与权限

-rwxrwxrwx

9个权限位换成这样是不是更容易理解呢?

如:

  1. -rwxrw-r-- 1 root admin 34890 10月 19 20:17 httpd.conf
复制代码

  1. 前三位:rwx:它的所有者是root,即就是文件所有者,它对httpd.conf这个文件的权限是读写执行;
  2. 中间三位:rw-:表示admin组对这个文件的权限是读写
  3. 后面位:r--:就是即不是所有者,也不是属组的对文件的权限是读
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
25 [报告]
发表于 2004-11-02 22:54 |只看该作者

类UNIX系统基础:文件安全与权限

看来前面还是有错误,明天再来改了     

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
26 [报告]
发表于 2004-11-07 22:11 |只看该作者

类UNIX系统基础:文件安全与权限

suid/guid


1、为什么要使用这种类型的脚本?

例如有几个着几个大型的数据库系统,对它们进行备份需要有系统管理权限。可以写几个脚本,并设置了它们的g u i d,这样就可以指定的一些用户来执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,他们可以完成数据库备份及其他管理任务,但是在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。


2、查找suid/guid命令

有相当一些U N I X命令也设置了s u i d和g u i d。如果想找出这些命令,可以进入/ b i n或/ s b i n目录,执行下面的命令:

  1. $ ls -l | grep '^...s'
复制代码

上面的命令是用来查找s u i d文件的;

  1. $ ls -l | grep '^...s..s'
复制代码

上面的命令是用来查找s u i d和g u i d的。


3、设置UID

  1. 设置s u i d:将相应的权限位之前的那一位设置为4;
  2. 设置g u i d:将相应的权限位之前的那一位设置为2;
  3. 两者都置位:将相应的权限位之前的那一位设置为4+2=6。
复制代码


设置了这一位后x的位置将由s代替。
记住:在设置s u i d或g u i d的同时,相应的执行权限位必须要被设置。
例如,如果希望设置g u i d,那么必须要让该用户组具有执行权限。

如果想要对文件l o g i n[它当前所具有的权限为rwx rw- r-- (741)]设置s u i d,,可在使用c h m o d命令时在该权限数字的前面加上一个4,即chmod 4741,这将使该文件的权限变为r w s rw- r - -。

  1. $ chmod 4741 login
复制代码


设置suid/guid的例子

  1.       命令          结果        含义
  2. chmod 4755   rws r-x r- x   文件被设置了s u i d,文件属主具有读、写和执行的权限,其他用户具有读和执行的权限
  3. chmod 6711   rws --s --x    文件被设置了s u i d和g u i d,文件属主具有读、写和执行的权限,其他用户具有执行的权限
  4. chmod 4764   rws rw- r- -   文件被设置了s u i d,文件属主具有读、写和执行的权限,属组用户具有读和执行的权限,用户具有读权限
复制代码



4、还可以使用符号方式来设置s u i d / g u i d。如果某个文件具有这样的权限: rwx r-x r- x,那么可以这样设置其s u i d:

  1. chmod u+s <filename>;
复制代码


于是该文件的权限将变为: rws r-x r-x

在查找设置了s u i d的文件时,没准会看到具有这样权限的文件:rwS r-x r- x,其中S为大写。
它表示相应的执行权限位并未被设置,这是一种没有什么用处的s u i d设置,可以忽略它的存在。

注意,c h m o d命令不进行必要的完整性检查,可以给某一个没用的文件赋予任何权限,但chmod 命令并不会对所设置的权限组合做什么检查。因此,不要看到一个文件具有执行权限,就认为它一定是一个程序或脚本。

论坛徽章:
0
27 [报告]
发表于 2004-11-08 00:08 |只看该作者

类UNIX系统基础:文件安全与权限

原帖由 "wingger" 发表:


    

目录和文件有一点点不同,明天继续


这些知识还8错,鼓励....

目录可以到7,文件最高到6...

这个在计算umask的时候有些不同...

btw:我怎么觉得你这些资料都是Linux/Unix shell编程指南里的一样,似曾相识

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
28 [报告]
发表于 2004-11-08 08:37 |只看该作者

类UNIX系统基础:文件安全与权限

原帖由 "双眼皮的猪" 发表:


这些知识还8错,鼓励....

目录可以到7,文件最高到6...

这个在计算umask的时候有些不同...

btw:我怎么觉得你这些资料都是Linux/Unix shell编程指南里的一样,似曾相识


好像是叫这个,书我下了N年了,前几天才开始看,我觉得做成贴子,更容易查找和学习,这本错误不少,

是否需要把某些失误的地方一一指出来呢???

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
29 [报告]
发表于 2004-11-08 15:12 |只看该作者

类UNIX系统基础:文件安全与权限

chown和chgrp

当你创建一个文件时,你就是该文件的属主。一旦你拥有某个文件,就可以改变它的所有权,把它的所有权交给另外一个/ e t c / p a s s w d文件中存在的合法用户。可以使用用户名或用户I D号来完成这一操作。

在改变一个文件的所有权时,相应的s u i d也将被清除,这是出于安全性的考虑。只有文件的属主和系统管理员可以改变文件的所有权。一旦将文件的所有权交给另外一个用户,就无法再重新收回它的所有权。如果真的需要这样做,那么就只有求助于系统管理员了。

1、c h o w n命令的一般形式为:

  1. chmod -R -h owner file
复制代码

- R选项意味着对所有子目录下的文件也都进行同样的操作。
- h选项意味着在改变符号链接文件的属主时不影响该链接所指向的目标文件。


2、chown举例

  1. 如:
  2. # ls -l
  3. drwxrwxr-x    2 sam      sam          4096 10月 26 19:48 sam
  4. # chown gem sam
  5. # ls -l
  6. drwxrwxr-x    2 gem      sam          4096 10月 26 19:48 sam
复制代码


文件sam的所有权现在由用户sam交给了用户gem。


3、chgrp举例

c h g r p命令和c h o w n命令的格式差不多,下面给出一个例子。


  1. # ls -l
  2. drwxrwxr-x    2 gem      sam          4096 10月 26 19:48 sam
  3. # chgrp group sam
  4. # ls -l
  5. drwxrwxr-x    2 gem      group        4096 10月 26 19:48 sam
复制代码


现在把该文件sam所属的组由sam变为group。


4、找出你所属于的用户组

如果你希望知道自己属于哪些用户组,可以用ID这个命令:

  1. # su sam
  2. $ id
  3. uid=506(sam) gid=4(adm) groups=4(adm)
复制代码



5、找出其他用户所属于的组


  1. # id
  2. uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
  3. 查看当前用户所属组

  4. # id gem
  5. uid=507(gem) gid=507(group) groups=507(group),0(root),4(adm)
  6. 查看其它用户所用组:#id 用户名

  7. # su sam
  8. $ id gem
  9. uid=507(gem) gid=507(group) groups=507(group),0(root),4(adm)
  10. 查看其它用户所属组
复制代码


这里书上用group,但我试过不能使
BTW:可以用#cat /etc/passwd和#cat /etc/group直接查看用户和组

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
30 [报告]
发表于 2004-11-08 22:08 |只看该作者

类UNIX系统基础:文件安全与权限

umask

当最初登录到系统中时, u m a s k命令确定了你创建文件的缺省模式。这一命令实际上和c h m o d命令正好相反。你的系统管理员必须要为你设置一个合理的u m a s k值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。

在已经登录之后,可以按照个人的偏好使用u m a s k命令来改变文件创建的缺省权限。相应的改变直到退出该s h e l l或使用另外的u m a s k命令之前一直有效。

一般来说,u m a s k命令是在/ e t c / p r o f i l e文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的u m a s k,可以在该文件中加入相应的条目。如果希望永久性地设置自己的u m a s k值,那么就把它放在自己$ H O M E目录下的. p r o f i l e或. b a s h _ p r o f i l e文件中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP