频道栏目
首页 > 资讯 > linux > 正文

饭客精通Linux第五课文件属性

09-05-09        来源:[db:作者]  
收藏   我要投稿

请注意:该动画内所含广告与本站无任何关系,为作者个人宣传,网络交易风险自负
学习目标
(一)回顾路径和查看档案初步认识
(二)Linux用户及其群组的概念
(三)文件安全
(四)实战权限设定
----------------------------------------------------------------------------------------------------------------
(一)回顾路径和查看档案初步认识

1)在教程之前请 首先明确 绝对路径和相对路径:
绝对路径:路径的写法『一定由根目录 / 写起』,例如: /usr/share/doc 这个目录。
相对路径:路径的写法『不是由 / 写起』,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 『cd ../man』这就是相对路径的写法!相对路径意指『相对于目前工作目录的路径!』
2)我们都知道磁碟分割完毕后还需要进行格式化(format),之后作业系统才能够使用这个分割槽。 为什么需要进行『格式化』呢?这是因为每种作业系统所设定的档桉属性/权限并不相同, 为了存放这些档桉所需的资料,因此就需要将分割槽进行格式化,以成为作业系统能够利用的『档桉系统格式(filesystem)』。
由此我们也能够知道,每种作业系统能够使用的档桉系统并不相同。 举例来说,windows 98 以前的微软作业系统主要利用的档桉系统是 FAT (或 FAT16),windows 2000 以后的版本有所谓的 NTFS 档桉系统,至于 Linux 的正统档桉系统则为 Ext3 (Linux second extended file system, )这一个。此外,在预设的情况下,windows 作业系统是不会认识 Linux 的 Ext3 的。
传统的磁碟与档桉系统之应用中,一个分割槽就是只能够被格式化成为一个档桉系统,所以我们可以说一个 filesystem 就是一个 partition。但是由于新技术的利用,例如我们常听到的LVM与软体磁碟阵列(software raid), 这些技术可以将一个分割槽格式化为多个档桉系统(例如LVM),也能够将多个分割槽合成一个档桉系统(LVM, RAID)! 所以说,目前我们在格式化时已经不再说成针对 partition 来格式化了, 通常我们可以称呼一个可被挂载的资料为一个档桉系统而不是一个分割槽!
(二)Linux用户及其群组的概念

1.建立档案
touch命令
注意多个档案的一次性建立
2.建立目录
mkdir
注意多个目录的建立,以及递归创建(-p)

3)列表方式显示的意义(ll命令查看)

drwxr-xr-x  4  root root 1024 Feb 13 11:08 boot
1   2     3   4   5    6       7         8
1.验证文件为目录或者档案,一般有以下类型:
)“d”目录,   “-”档案
)“l”链接档, “p”数据传输文件
)“b”硬件设备 “c”串口或者并口
2.文件的权限属性
3.链接(确定里面有多少个下一级子目录)
4.文件拥有者(不是建立者)
5.文件归属组
6.文件大小
7.修改日期
8.文件名称(注意前面带“.”的为隐藏文件)

(三)文件安全
1)UMASK
[root@www ~]# umask  022  修改我们的umask 值
[root@www ~]# umask  查看umask值
0022             <==与一般权限有关的是后面三个数字!
[root@www ~]# umask -S
u=rwx,g=rx,o=rx

--------------------规律总结---------------------

root 用户建立的档案属性默认为:644
root 用户建立的目录属性默认为:755
普通 用户建立的档案属性默认为:664
普通 用户建立的目录属性默认为:775
root  的umask值为: 0022
普通用户的umask为:0002
--------------------------------------------------
 2)chattr  lsattr
 范例:请尝试到/tmp底下建立档桉,并加入 i 的参数,尝试删除看看。
 [root@www ~]# cd /tmp
 [root@www tmp]# touch attrtest     <==建立一个空档桉
 [root@www tmp]# chattr +i attrtest <==给予 i 的属性
 [root@www tmp]# rm attrtest        <==尝试删除看看
 rm: remove write-protected regular empty file `attrtest? y
 rm: cannot remove `attrtest: Operation not permitted  <==操作不许可
 # 看到了吗?连 root 也没有办法将这个档桉删除呢!我们来解除设定!
 
 范例:请将该档桉的 i 属性取消!
 [root@www tmp]# chattr -i attrtest
(四)实战权限设置

1.)常规权限
Linux档桉的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先複习一下刚刚上面提到的资料:档桉的权限字元为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
r  -->读 w -->写 x  -->执行 -  -->没有权限
在Linux中,为方便记忆,通常采用数字表示权限,
r  -4->读 w -2->写 x -1->执行
chgrp :改变档桉所属群组
chown :改变档桉拥有者 (同时可以改变拥有组)
chmod :改变档桉的权限, SUID, SGID, SBIT等等的特性
 实战测试!
1,先用root的身份建立所需要的档桉与目录环境
我们用root的身份在所有人都可以工作的/tmp目录中建立一个名为testing的目录, 该目录的权限为744且目录拥有者为root。另外,在testing目录下在建立一个空的档桉, 档名亦为testing。建立目录可用mkdir(make directory),建立空档桉可用touch。所以过程如下所示:

[root@www ~]# cd /tmp                     <==切换工作目录到/tmp
[root@www tmp]# mkdir test            <==建立新目录
[root@www tmp]# chmod 744 test        <==变更权限
[root@www tmp]# touch testing/test1    <==建立空的档桉
[root@www tmp]# chmod 600 test/test1<==变更权限
[root@www tmp]# ls -ald testing test/test1
drwxr--r-- 2 root root 4096 Sep 19 16:01 test
-rw------- 1 root root    0 Sep 19 16:01 test/test1
# 仔细看一下,目录的权限是 744 ,且所属群组与使用者均是 root
# 那么在这样的情况底下,一般身份使用者对这个目录/档桉的权限为何?
 

2,一般用户的读写权限为何?
在上面的例子中,虽然目录是744的权限设定,一般用户应该能有 r 的权限,我们通过su -sweet 用普通用户尝试读取该文件内容

[root@www tmp]# su - swwet <==切换身份成为 sweet !
[sweet@www ~]$ cd /tmp     <==看一下,身份变了!提示字元也变成 $ 了!
[sweet@www tmp]$ ls -l test/
?--------- ? ? ? ?             ? test
# 因为具有 r 的权限可以查询档名。不过权限不足(没有x),所以会有一堆问号。
[sweet@www tmp]$ cd testi/
-bash: cd: test/: Permdeny
# 因为不具有 x ,当然没有进入的权限,没有被执行程序的权限!
 

如果该目录属于用户本身,会有什么状况?
上面的练习我们知道了只有r确实可以让使用者读取目录的档名列表,不过详细的资讯却还是读不到的, 同时也不能将该目录变成工作目录(用 cd 进入该目录之意)。那如果我们让该目录变成使用者的, 那么使用者在这个目录底下是否能够删除档桉呢?底下的练习做看看:

[sweet@www tmp]$ exit               <==让 sweet 变回原本的 root 身份喔!
[root@www tmp]# chown sweet test <==修改权限,让sweet拥有此目录
[root@www tmp]# su - sweet         <==再次变成sweet来操作
[sweet@www ~]$ cd /tmp/test      <==可以进入目录了呢!
[sweet@www testing]$ ls -l
-rw------- 1 root root 0 Sep 19 16:01 testing  <==档桉不是vbird的!
[sweet@www testing]$ rm test     <==尝试杀掉这个档桉看看!
rm: remove write-protected regular empty file `test? y
# 竟然可以删除!
 
透过上面这个简单的步骤,你就可以清楚的知道, x 在目录当中是与『能否进入该目录』有关, 至于那个 w 则具有相当重要的权限,因为他可以让使用者删除、增加内容、新建档桉或目录

2)补充权限
  suid          数字表示  4   用于表示“x”  小写“s”代表有“x”位
SUID 权限仅对二进位程式(binary program)有效;
执行者对于该程式需要具有 x 的可执行权限;
本权限仅在执行该程序的过程中有效 (run-time);
执行者将具有该程序拥有者 (owner) 的权限
 cat 不具有 SUID 的权限
实例:
vbird 对于 /usr/bin/passwd 这个程式来说是具有 x 权限的,表示 vbird 能执行 passwd;
passwd 的拥有者是 root 这个帐号;
vbird 执行 passwd 的过程中,会『暂时』获得 root 的权限;
/etc/shadow 就可以被 vbird 所执行的 passwd 所修改。
但如果 vbird 使用 cat 去读取 /etc/shadow 时,他能够读取吗?因为 cat 不具有 SUID 的权限,所以 vbird 执行 『cat /etc/shadow』 时,是不能读取 /etc/shadow 的。我们用一张示意图来说明如下:
 

  sgid          数字表示  2    用于表示“x”       小写“s”代表有“x”位
SGID 对二进位程式有用;
程式执行者对于该程式来说,需具备 x 的权限;
执行者在执行的过程中将会获得该程式群组的支援!
需要注意的是,在我们SGID中:
使用者若对于此目录具有 r 与 x 的权限时,该使用者能够进入此目录;
使用者在此目录下的有效群组(effective group)将会变成该目录的群组;
用途:若使用者在此目录下具有 w 的权限(可以新建档桉),则使用者所建立的新档桉,该档桉的群组与此目录的群组相同。

  sticky bit       数字表示 1   用于表示“x”       小写“t”代表有“x”位
当使用者对于此目录具有 w, x 权限,亦即具有写入的权限时;
当使用者在该目录下建立档桉或目录时,仅有自己与 root 才有权力删除该档桉
也就是说:甲这个使用者于 A 目录是具有群组或其他人的身份,并且拥有该目录 w 的权限, 这表示『甲使用者对该目录内任何人建立的目录或档桉均可进行 "删除/更名/移动" 等动作。』 不过,如果将 A 目录加上了 SBIT 的权限项目时, 则甲只能够针对自己建立的档桉或目录进行删除/更名/移动等动作,而无法删除他人的档桉。
以上概念我个人认为在公司以及企业可以用到
如何设置补充权限?
[root@www ~]# cd /tmp
[root@www tmp]# touch test             <==建立一个测试用空档案
[root@www tmp]# chmod 4755 test; ls -l test <==加入具有 SUID 的权限
-rwsr-xr-x 1 root root 0 Sep 29 03:06 test
[root@www tmp]# chmod 6755 test; ls -l test <==加入具有 SUID/SGID 的权限
-rwsr-sr-x 1 root root 0 Sep 29 03:06 test
[root@www tmp]# chmod 1755 test; ls -l test <==加入 SBIT 的功能!
-rwxr-xr-t 1 root root 0 Sep 29 03:06 test
[root@www tmp]# chmod 7666 test; ls -l test <==具有空的 SUID/SGID 权限
-rwSrwSrwT 1 root root 0 Sep 29 03:06 test

 

相关TAG标签
上一篇:熙雅网站脚本木马检测
下一篇:饭客精通Linux第四课用户管理
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站