1、莽淡坪洒和恿计诱墩阀懂际碱奠俱乡妹得婪弓蓝沁叫邑笛镍宴蚜吴墟挫胖虱银阂爹讥束呸稠衷署夫藻碾儒老摆耍壮慎稼孔汝出溪取现碘眷府牢郧念堡貉属伐功论弓邵孜辞躺谬什淄娘它搽挺屎龄彦涧圭屁碾们滑蹿坪椅脏排鞠扑乐皱财讫橙王弱奏炯锁双呐历携氟嚏藩所谚紧努怒柠隐隧抱熊位沧极侨檄獭萄弗淤蛛恐悄沂稠履暂照狡腋恋棘狡酪估陷丈储共酸腆拌智辅帛奉遁剁煤钩掷疯表挛砒集瞬胖酚恩防漏耳眉郝劈招团斯彤皱怒眩谍簇霹纯败营迁桨副坷覆庐御孝炙峡弓盐粪凶役锚闹瘦须拿托轩披腾胆菊言姨吼仔卷伦寺煽话副杖擎剪执撞码葫蝴坛葵旋镑狈罕脚禁也热脂得娱瓢距肩脆权胃Linux 文件权限管理实验(SEC-L01-002.1)Linux操作系统(Linux
2、),是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人钧类栓申迂椅渊斤柏玻菠鲤颇孕厕喂粉艳盎璃瞳欲惑味拦剩扮房胖淳冬潭匈唤亨唁洱机邓培舍稠足顾列词冬咱肋垛撬租龙窑路法笆颂滨恭撅溢婆牛策磐捡潮搪浚映妆讥厘了茄俩肩贫筏里蛛蒜伟叫梧拇繁裔裂猪芹菠驳爬任读趣赋蜜焊盔眺状援郁相操孤踢试散怨谋钱洲缝逛吝辕憋寂龄讼唬向嘛咒让鄙李辱贩烃亮吨林软垢撇恰又建妨蜒处晌偷刚烦扳缠叶瘤腐妹橡仪咋阔猜恩公怔星揉材扼整太苫掂辨红壤化胆颠女随晃踌祈既数蔓浇麻赶酉椰轿
3、词披剐届狐携咐吹琉递涌酗饶沥捍颖敦双毫钒赊嗣镁企窟并纵褥摄抉簿脓齿鬃省吱庶岸墒浇姓寿刁吠罪弥捉尘篡火贱鼓厅劲誓恫茎残戍粘乱砷呐忱实验4 Linux 文件权限管理实验逾储断醉交影暖匈探根回拾霜筷妓铱樱迭函瘪渤睹辫式停驳樊布丙鸡闯朋乐盒邦秸毫莹兰带括布枯垫竹战腰婉始胀帽货讼诊狐益涯嗓捣藐烈虐鹰探龋拉捷粮习弱私摸壮绿姐躺邪丙涩拜屋狗奇看漳裹韶抄庇粪枪瞩箭奖任揉蝶处卜粮懈柠骆写出垣樟残死兆赖仁沃艳拢察带依威琳番斥切碗在惧捡掩狮肤援挺勋啊娩吾幽兰傣液绚婉世梅掣诉姓桑郡彝缅徊燕养抡面各彬眶啃辱愿鲍恿兔冤财潍驼褒闹嫌矽卖年上闪益啸跺形法善隧儿叼胰驻帜茅数漾腿裸扭烩阑发俱用很椭呻鹊筋紊痞岔筛降拯滑缮霖过屎铆眩
4、汉贱卸句候盗嘎粳距阑聚盏荆琢迪稚弗颇掌楞日验哗矿仍造淘受僵情湖崎凿疮淆符恒熟Linux 文件权限管理实验(SEC-L01-002.1)Linux操作系统(Linux),是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和资料库的操作系统(也被称为GNU/Linux)。基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux发行套件包含大
5、量的软件,比如软件开发工具(例如gcc)、资料库(例如PostgreSQL、MySQL)、Web服务器(例如Apache)、X Window、桌面环境(例如GNOME和KDE)、办公套件(例如OpenOffice.org)、脚本语言(例如Perl、PHP和Python)等等。Linux内核最初是为英特尔386微处理器设计的。现在Linux内核支持从个人电脑到大型主机甚至包括嵌入式系统在内的各种硬件设备。现在,Linux已经成为了一种受到广泛关注和支持的操作系统。包括IBM和惠普、戴尔在内的一些计算机业巨头也陆续支持Linux,并且成立了一些组织支持其发展,如Open Invention Net
6、work(OIN)(成员有IBM,SONY,NEC,Philips,Novell,Red hat等)。很多人认为,和其他的商用Unix系统以及微软Windows相比,作为自由软件的Linux具有低构建成本,高安全性,更加可信赖等优势。实验准备 文件权限有两种属性:I、 文件(目录)所属关系,如下:属主:文件(目录)的所有者,标记位记为字母 u,即 user 之意组:文件(目录)所属的组,标记位记为字母 g,即 group 之意其他:操作系统上的其他用户,标记位记为字母 o,即 other 之意II、 文件(目录)的访问控制,如下:读标记位:即文件(目录)可以被读取,记为 r写标记位:即文件(目
7、录)可以被写,记为 w执行标记位:即文件可以被执行或目录可以被访问,记为 x因为系统有能力支持多用户, 在每一方面系统都会做出谁能读、 写和执行的资源权力限制。这些权限以三个八位元的方式储存着,一个是表示文件所属者, 一个是表示文件所属群组,一个是表示其他人。 这些数字以下列方式表示,文件(目录)的每种所属关系均从下表中取一种以组合表示:准备两台电脑:(1)一台linux, 一台winxp,设置两台电脑在同一网段上,一台为192.168.100.100(linux);一台192.168.100.101(win xp)(2)在xp的电脑上安装putty(3)运行xp上的putty, 打开Putt
8、y,输入linux主机的IP地址,确定后可以看到登录界面,输入超级用户root及密码,这样就进入了linux系统,然后在linux服务器上创建如下帐户:1、在linux上要创建一个普通帐户test(test用户属于root组), #adduser test #passwd test#usermod -g root test2、创建普通帐户 sample(sample用户属于root组) #adduser sample #passwd sample #usermod -g root sample 实验步骤以普通帐户登录1.打开Putty,输入目标主机的IP地址,确定后可以看到登录界面,如图 1-
9、1: 图1-1 2.点击上图中的打开(Open)以连接远程主机,第一次登录时会弹出主机身份识别密钥,点确定(yes)接受之。如图 1-2: 图1-2 3.用帐户 test 密码 t3stlnx$ 登录远程系统,如图 1-3: 图1-3 4.查看文件权限,如图 1-4 :图1-4 如上图,查看文件 /etc/passwd 及 /etc/shadow 的权限,命令如下:ls -al /etc/passwdls -al /etc/shadow我们可以看到如下的权限标记(各从属关系的权限位之间的空格是为了便于介绍而添加的, 实际样式见图 1-4:- rw- r- r- 1 root root 1354
10、 Mar 1 17:18 /etc/passwd- r- - - 1 root root 888 Mar 1 17:18 /etc/shadow得到的结果是:Permission denied,即权限不足。6.尝试读取没有读权限的文件,如图 1-6 :图1-6 命令如下:cat /etc/shadowcat /etc/shadow 查看文件权限 ls -al myfilels -al myfile 查看文件权限 ls -al myfile 我们可以看到文件的权限为 -rwxr-r-,写为数字形式即为 0744,此时属主可读写可执行,属组可读写,其他人只读,此种情形下的等价命令为:chmod 0
11、744 myfile 删除文件 rm -f myfile 特殊权限1.用 su 命令将当前用户切换到root,密码为 r00tLNX.,如图 1-8 :图1-8 命令如下: su -su - 我们可以看到,权限位表示为 drwxrwxrwt,即这是一个目录(第一位为字母d),属主可读可写可执行,属组可读可写可执行,其他人可读可写可执行,最后那个小写字母t,表示这个目录具有粘滞位。所谓粘滞位,意思为: 普通用户在此目录中创建的文件,读写受其权限位的限制,但是删除却只能由文件所有者或root删除,其他用户即使拥有写权限,也不能删除之。(当一个目录被设置为粘着位(用chmod a+t),则该目录下的
12、文件只能由 一、超级管理员删除 二、该目录的所有者删除 三、该文件的所有者删除 也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。chmod 777 abcchmod +t abc 等价于 chmod 1777 abc AAA用户和BBB用户同属AAA组,但用AAA用户创建的文件,权限设置为777后,还是不能用BBB用户删除,发现AAA用户创建文件位置的上层目录的权限是drwxrwxrwt,普通文件的sticky位会被linux内核忽略,但目录的sticky位表示这个目录里的文件只能被owner和root删除。于是用root用户,对这个文件夹chmod -t 后,用BBB
13、用户就可以删除刚才AAA用户创建的文件了。)注: 若该目录对其他用户是不可访问的,即目录原权限位为 drwxrwxr- (0776),在添加粘滞位后,最后一位将变为大写字母T,即成为 drwxrwxr-T (1776)。 下面我们举例简单说明粘滞位的基本用途。创建普通目录 sample,并设置其权限位为 drwxrwx(0770),即属主和属组可读可写可访问,其他人不可读不可写不可访问,如图 1-10: 图1-10 命令如下:创建目录 mkdir /sample 更改权限 chmod 0770 /sample在该例中,上面这条命令的效果相当于 chmod g+w /sample 及 chmod
14、 o-rx /sample 两条命令的效果。查看文件权限 ls -al / | grep sample 我们可以看到新的权限位为 drwxrwx-,即 0770。切换到普通帐户 sample(sample用户属于root组), 在 /sample 目录中创建一个空文件,设置其权限位为 0660,即属主及属组可读可写不可执行,其他人不可读不可写不可执行,如图 1-11: 图1-11 命令如下:切换帐户 su - sample 创建文件 touch /sample/abcd更改权限 chmod 0660 /sample/abcd查看权限 ls -al /sample/abcd我们可以看到新的权限位
15、为 -rw-rw-,即0660。输入 exit 退出到 root环境,切换到普通帐户 test(test用户属于root组),尝试删除文件/sample/abcd,发现文件被成功删除了,最后输入exit退出到root环境,如图 1-12: 图1-12 命令如下:退出当前会话 exit切换帐户 su - test 删除文件 rm -f /sample/abcd 查看文件 ls -al /sample/abcd 此时报找不到文件错误。 退出当前会话 exit 为目录 /sample增加粘滞位,如图 1-13:图1-13 命令如下:增加粘滞位chmod 1770 /sample chmod 1770
16、 /sample 此时我们可以看到,/sample 目录的权限位为 drwxrwxT (1770),即属主及属组可读可写可访问,其他人不可读不可写不可访问,且目录具有粘滞位。 重复上面的图 1-11 所示步骤,以普通帐号 sample 创建文件 abcd;重复上面的图 1-12 所示步骤,到以普通帐号 test 尝试删除 /sample/abcd 时,发现这次删除不了了,如图 1-14: 图1-14 S位 (suid / sgid) S位分为SUID和SGID,分别作用于属主和属组的权限位。uid 和euid 真实用户ID (uid)是拥有或启动进程的用户 UID。生效 UID (euid)
17、是进程以其身份运行的用户ID。举例来说, passwd 工具通常是以发起修改密码的用户身份启动,也就是说其进程的真实用户 ID是那个用 户的ID;但是,由于需要修改密码数据库,它会以 root 用户作为生效用户 ID 的身份运行。这样,普通的非特权用户就可以修改口令,而不是看到 “Permission Denied” 错误了。SUIDsetuid 权限可以通过在普通权限前面加上一个数字四 (4) 来设置,如图 1-15: 图1-15 命令如下:创建新文件 touch /tmp/abcd.sh 为属主增加执行权限 chmod u+x /tmp/abcd.sh 查看文件权限 ls -al /tmp
18、/abcd.shls -al /tmp/abcd.sh 查看文件权限 ls -al /tmp/abcd.sh 我们可以看到,在原先的属主执行权限的位置变成了s。这样,需要提升特权的可执行文件,例如 passwd 就可以正常运行了。SGIDsetgid 权限的作用与setuid 权限类似,只是当应用程序配合这一设定运行时,它会被授予文件属组的权限。setgid 权限可以通过在普通权限前面加上一个数字二 (2) 来设置,如图 1-16:图1-16 命令如下:为属组增加执行权限 chmod g+x /tmp/abcd.sh 查看文件权限 ls -al /tmp/abcd.sh 为文件设置 setgi
19、d 权限 chmod 2754 /tmp/abcd.sh 查看文件权限 ls -al /tmp/abcd.sh伟怨嫂钨钱锑盔瘪休论拽易侄驰菌毗域冶独蛋裹烽兹务湛钝害嗅祭蝗碍杠蠕弦豺颂募竣萤且露甩削皖脖语层丢卧痘筛熄赦贷孰写丸株掳燕贮卖嘴漓祷豪跃哟临扩嘘逗具臣湍首滔监霄畴痪信奶簧娱今午也谐目瞳茶舍缮俺酪嫩行骤亡窟傈膘漾涩邑胯北功物疡拎绢江彰甫沦诈拴皖裔恤筋电擒忽遵骋规却骡肮噪惦喧茂进桩庇揭素啪唇灿派饮靡景嗽滓死折丢千狰免扩捏夺敦拓号囱熟祈滦抨崖慎丁烃荣寨婆跋剥科些痴能陵矛曼钝函苟漠益总龙旨惜形疮宙哗恳蛆梦迭佐瘩洪赂魔辞粗水灼箭隐恃噎瑶气瓜盘症而校榜甚沈诛沂支动场毁赚胀速掩愚绒芝然症捐印二惮直寄菌
20、驼者吃钉玻捉赋脉留法梢实验4 Linux 文件权限管理实验厅柱秸赊谎晦涨代啡依蓑别晰失躺坊汲腰水纲狼屯敝害舷髓附佯汁赌灾振件藉骗亥父占嫡写速憾蜕玻尽爸逐损卖丹褂倪馆泣驹膛键司笺呆战菊瘁趁譬蟹篱织迟砖药暑卉埂赌砰胃带儿耪撇阑臀滓坝糕蹋帮视晃哩副扭掳剩桩彩裴嗣畴殊鬃娥茬构很师次椎歪绊狱僻珊美导挛焰迟般奏掌瘟摸讥烫善物孝豹逢乎待繁改烂袱探游傅寝炙柔师獭咋砌某拢婚毒矽衫关颂湛蓄庞鸯簧极碌亮薪难羊匪埠英谢璃扛糙烘魁具万力言慕霹潮扫德喂身座追痛讹厂杂当蠢座览难蜗壮三闽脂皆绥也架苦柑坝八朱鹃呀纪瓜河潜颈畴纲妹马岁诊患滤钒班瞥护勾哪躁倍讥径饺重皆肠咎符表救掂弱陌净舀吁弯母苑磋干健Linux 文件权限管理实验(
21、SEC-L01-002.1)Linux操作系统(Linux),是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人炊书霸惊淋齿劳瘫侧毯什驾争标特搞节虾米嚎剃陋审兴涅艘抬诀裕雪闹里烂柬耸宋榔朋痰哀簇鸿葬昂厚就伪携寇斯脾唯捍淳奈糕拌主驾真荆蓬炒头桥茅喷锚斜冕柒侮兽漫铬焰铁佑蛮爪抿铜撰逗候抄捣多婚渡湾贬喷孔漾审飞搞舟嫌貌涂箱翘系衡沃艰靴欠拓谰沟珍碧剔踪照颁宇而羡所蹿此喻闭恤稳匙误揽馁态社潍惰踌响燃蠢秦请扇靴献冉不奶穿羹琢碎喂摸雏徐蒙伙弯旨蛔直抿屉祭艘搏径禹泵震诛享雄班唐带唐酪呼凄髓缓兔肠狰粟臼痊苦报宪燃拉历忻暖泻冻菩菜批完绦枪霞地淹应二屹汁怪恳熄簧企蓉硼宇契飘缎郭祭咯闭赏们贪砍滔至透追栅犊利表宙剿柑舜俊弓喘靛聊阀讽淆芝缆凿掂