限制对包含有数据的文件的访问
当你建立登陆限制之后,下一步就是控制对系统上数据的访问控制。当然,一些用户需要能够读不同的文件,其他拥护需要改变或者删除文件的权限,并且一些文件不能被用户访问。
将需要共享文件的用户放入一个组中。
决定用户组的成员
groups命令可以为用户显示组的成员
#groups (列本组成员)
or
#groups 用户组名 (该用户组成员列表)
定义用户帐号
使用id命令可以更多的鉴别用户。可以列出他们的UID,用户名,GID和组名。当解决用户的文件访问问题时,这个命令比较有用。
Id命令返回的是有效的UID和用户名。如果user1登陆入系统,然后使用su命令变更为user4,那么id命令返回的是user4的信息。
如果要看到指定用户的所有帐号信息。使用-a选项。
使用chown命令改变文件的所有者
当需要改变一个文件或者目录的所有者时,就要用chown命令。默认的,只有root才能够改变任何文件或者目录的所有者。
命令格式
chown [option(s)] user_name filename(s)
or
chown [option(s)] UID filename(s)
改变目录所有者
-R选项使目录包括目录中的所有子目录和文件都改变了所有者。
使用chgrp改变文件的所有者(组)
命令格式
chgrp groupname filename(s)
chgrp GID filename(s)
指定文件许可
有三种类型的特定许可应用于可执行文件和公共目录,他们包括
。setuid许可
。setgid许可
。Sticky Bit许可
setuid许可
当setuid设置在一个可执行文件上的时候,运行这个可执行文件的用户或者进程就被替换为启动这个可执行文件的用户的所属文件的访问权限。(通常是root)
我的理解:当一个普通用户,访问一些设置了setuid的可执行文件的时候,系统就把普通用户的UID保存起来,改用这个文件的所有者的权限来执行这个可执行文件。然后返回给保存了的普通用户的UID。
Setuid的标志在用户执行权限位置是一个“s”
Root用户和所有者可以利用chmod命令和8进制数值4000设置setuid许可在一个可执行文件上
例子:
#chmod 4555 executable_file
查找已经设置了setuid许可的文件的全路径,执行下面的命令
#find / -perm –4000
setgid 许可
setgid许可与setuid是类似的除了有效的用户GID或者进程是改变文件的所有组。同样,分配到其他组的反问许可也是基于所有组的。
Setgid许可显示一个“s”在组执行权限的位置。
Root用户和所有者可以使用chmod命令和8进制数值2000设置setgid许可在一个可执行文件上
例子:
#chmod 2555 executable_file
共享目录
setgid在建立共享目录时是非常有用的。
当setgid许可应用到一个目录时,文件建立在属于该组所属的目录。
如果一个用户在目录中可写并且在那建立了一个文件。那个文件属于相同的组被看作一个目录,并且没有用户组。
建立一个共享目录,必须建立setgid
#chmod g+s share_directory
搜索已经存在了setgid的文件和目录
#find / -perm –2000
Sticky Bit许可
Sticky Bit是在公共可写目录中保护文件的特殊许可。
如果一个目录有sticky Bit设置,一个仅仅可以被文件的所有者,目录的所有者或者root删除。这可以防止一个用户在公共可写目录中删除其他用户的文件。
Sticky Bit显示是一个“t”在other的执行区域。
Root用户和所有者可以使用chmod命令和8进制数值1000设置Sticky Bit许可在目录上
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 笔记 读书 文件 用户 目录 许可 一个 执行 命令 回复 |
注册
个人空间
