实验4 Linux 文件权限管理实验Word下载.docx
《实验4 Linux 文件权限管理实验Word下载.docx》由会员分享,可在线阅读,更多相关《实验4 Linux 文件权限管理实验Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
![实验4 Linux 文件权限管理实验Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/24/1e9f5d56-c3e4-4e46-8548-130189847a7a/1e9f5d56-c3e4-4e46-8548-130189847a7a1.gif)
其他:
操作系统上的其他用户,标记位记为字母o,即other
II、文件(目录)的访问控制,如下:
读标记位:
即文件(目录)可以被读取,记为r
写标记位:
即文件(目录)可以被写,记为w
执行标记位:
即文件可以被执行或目录可以被访问,记为x
因为系统有能力支持多用户,在每一方面系统都会做出谁能读、写和执行的资源权力限制。
这些权限以三个八位元的方式储存着,一个是表示文件所属者,一个是表示文件所属群组,一个是表示其他人。
这些数字以下列方式表示,文件(目录)的每种所属关系均从下表中取一种以组合表示:
准备两台电脑:
(1)一台linux,一台winxp,设置两台电脑在同一网段上,一台为192.168.100.100(linux);
一台192.168.100.101(winxp)
(2)在xp的电脑上安装putty
(3)运行xp上的putty,打开Putty,输入linux主机的IP地址,确定后可以看到登录界面,输入超级用户root及密码,这样就进入了linux系统,然后在linux服务器上创建如下帐户:
1、在linux上要创建一个普通帐户test(test用户属于root组),
#addusertest
#passwdtest
#usermod-groottest
2、创建普通帐户sample(sample用户属于root组)
#addusersample
#passwdsample
#usermod-grootsample
实验步骤
以普通帐户登录
1.打开Putty,输入目标主机的IP地址,确定后可以看到登录界面,如图1-1:
图1-1
2.点击上图中的打开(Open)以连接远程主机,第一次登录时会弹出主机身份识别密钥,点确定(yes)接受之。
如图1-2:
图1-2
3.用帐户test密码t3st@lnx$$登录远程系统,如图1-3:
图1-3
4.查看文件权限,如图1-4:
图1-4
如上图,查看文件/etc/passwd及/etc/shadow的权限,命令如下:
ls-al/etc/passwd
ls-al/etc/shadow
ls-al/etc/shadow
我们可以看到如下的权限标记(各从属关系的权限位之间的空格是为了便于介绍而添加的,实际样式见图1-4:
-rw-r--r--1rootroot1354Mar117:
18/etc/passwd
-r--------1rootroot888Mar117:
18/etc/shadow
18/etc/shadow
以"
-rw-r--r--"
为例,第一部分为-,第二部分为rw-,第三部分为r--,第四部分为r--第一部分:
用于区分文件、目录、设备、链接等
若列表后面的是文件,则此处为符号-
若列表后面的是目录,则此处为字母d
若列表后面的是块设备,则此处为字母b
若列表后面的是字符设备,则此处为字母c
若列表后面的是软链接,则此处为字母l
第二部分:
属主权限
对于文件/etc/passwd,该文件的属主(root)可读、可写,不可执行
对于文件/etc/shadow,该文件的属主(root)可读、可写,不可执行
第三部分:
属组权限
对于文件/etc/passwd,该文件的属组(root)可读、不可写,不可执行
对于文件/etc/shadow,该文件的属组(root)不可读、不可写,不可执行
第四部分:
其他人权限
对于文件/etc/passwd,其他人可读、不可写,不可执行
对于文件/etc/shadow,其他人不可读、不可写,不可执行
5.尝试向没有写权限的文件写入数据,如图1-5:
图1-5
命令如下:
echo"
test"
>
>
/etc/passwd
/etc/passwd
得到的结果是:
Permissiondenied,即权限不足。
6.尝试读取没有读权限的文件,如图1-6:
图1-6
cat/etc/shadow
cat/etc/shadow
7.创建文件并修改其权限,如图1-7:
图1-7
创建空文件
touchmyfile
查看文件权限
ls-almyfile
ls-almyfile
我们可以看到文件的权限为-rw-r--r--,写为数字形式即为0644,此时属主可读写,属组及其他人只读,此种情形下的等价命令为:
chmod0644myfile
为文件属主增加可执行权限
chmodu+xmyfile
我们可以看到文件的权限为-rwxr--r--,写为数字形式即为0744,此时属主可读写可执行,属组可读写,其他人只读,此种情形下的等价命令为:
chmod0744myfile
删除文件
rm-fmyfile
特殊权限
1.用su命令将当前用户切换到root,密码为r00t@LNX..,如图1-8:
图1-8
su-
su-
粘滞位(sticky)
我们查看系统/tmp目录的权限,如图1-9:
图1-9
ls-al/|greptmp
我们可以看到,权限位表示为drwxrwxrwt,即这是一个目录(第一位为字母d),属主可读可写可执行,属组可读可写可执行,其他人可读可写可执行,最后那个小写字母t,表示这个目录具有粘滞位。
所谓粘滞位,意思为:
普通用户在此目录中创建的文件,读写受其权限位的限制,但是删除却只能由文件所有者或root删除,其他用户即使拥有写权限,也不能删除之。
(当一个目录被设置为"
粘着位"
(用chmoda+t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。
chmod777abc
chmod+tabc
等价于
chmod1777abc
AAA用户和BBB用户同属AAA组,但用AAA用户创建的文件,权限设置为777后,还是不能用BBB用户删除,发现AAA用户创建文件位置的上层目录的权限是drwxrwxrwt,普通文件的sticky位会被linux内核忽略,但目录的sticky位表示这个目录里的文件只能被owner和root删除。
于是用root用户,对这个文件夹chmod-t后,用BBB用户就可以删除刚才AAA用户创建的文件了。
)
注:
若该目录对其他用户是不可访问的,即目录原权限位为drwxrwxr--(0776),在添加粘滞位后,最后一位将变为大写字母T,即成为drwxrwxr-T(1776)。
下面我们举例简单说明粘滞位的基本用途。
创建普通目录sample,并设置其权限位为drwxrwx—(0770),即属主和属组可读可写可访问,其他人不可读不可写不可访问,如图1-10:
图1-10
创建目录
mkdir/sample
更改权限
chmod0770/sample
chmod0770/sample
在该例中,上面这条命令的效果相当于chmodg+w/sample及chmodo-rx/sample两条命令的效果。
ls-al/|grepsample
我们可以看到新的权限位为drwxrwx---,即0770。
切换到普通帐户sample(sample用户属于root组),在/sample目录中创建一个空文件,设置其权限位为0660,即属主及属组可读可写不可执行,其他人不可读不可写不可执行,如图1-11:
图1-11
切换帐户
su-sample
创建文件
touch/sample/abcd
touch/sample/abcd
chmod0660/sample/abcd
chmod0660/sample/abcd
查看权限
ls-al/sample/abcd
ls-al/sample/abcd
我们可以看到新的权限位为-rw-rw----,即0660。
输入exit退出到root环境,切换到普通帐户test(test用户属于root组),尝试删除文件/sample/abcd,发现文件被成功删除了,最后输入exit退出到root环境,如图1-12:
图1-12
退出当前会话
exit
exit
su-test
删除文件
rm-f/sample/abcd
查看文件
此时报找不到文件错误。
为目录/sample增加粘滞位,如图1-13:
图1-13
增加粘滞位
chmod1770/sample
chmod1770/sample
查看目录权限
此时我们可以看到,/sample目录的权限位为drwxrwx—T(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)是进程以其身份运行的用户ID。
举例来说,passwd工具通常是以发起修改密码的用户身份启动,也就是说其进程的真实用户ID是那个用户的ID;
但是,由于需要修改密码数据库,它会以root用户作为生效用户ID的身份运行。
这样,普通的非特权用户就可以修改口令,而不是看到“PermissionDenied”错误了。
SUID
setuid权限可以通过在普通权限前面加上一个数字四(4)来设置,如图1-15:
图1-15
创建新文件
touch/tmp/abcd.sh
为属主增加执行权限
chmodu+x/tmp/abcd.sh
ls-al/tmp/abcd.sh
ls-al/tmp/abcd.sh
为文件设置setuid权限
chmod4744/tmp/abcd.sh
我们可以看到,在原先的属主执行权限的位置变成了s。
这样,需要提升特权的可执行文件,例如passwd就可以正常运行了。
SGID
setgid权限的作用与setuid权限类似,只是当应用程序配合这一设定运行时,它会被授予文件属组的权限。
setgid权限可以通过在普通权限前面加上一个数字二
(2)来设置,如图1-16:
图1-16
为属组增加执行权限
chmodg+x/tmp/abcd.sh
为文件设置setgid权限
chmod2754/tmp/abcd.sh
我们可以看到,在原先的属组执行权限的位置变成了s。
在上面的例子中,尽管shell脚本也属于可执行文件的一种,但它们可能不会以配置的euid或生效用户ID的身份运行。
这是因为shell脚本出于安全考虑可能无法直接调用setuid函数。