洛阳师范学院UNIX实验报告3.doc
- 文档编号:384733
- 上传时间:2022-10-09
- 格式:DOC
- 页数:7
- 大小:8.09MB
洛阳师范学院UNIX实验报告3.doc
《洛阳师范学院UNIX实验报告3.doc》由会员分享,可在线阅读,更多相关《洛阳师范学院UNIX实验报告3.doc(7页珍藏版)》请在冰豆网上搜索。
测试过程:
(实验中出现的问题、错误、解决方法)
不知道该如何激活新用户。
实验总结:
通过这次实验:
掌握了文件I/O权限的设置方法和操作;
了解了进程实际id,有效id的区别、联系;
掌握进程修改有效id的方法和操作;
签名
2012年3月13日
评语与成绩:
教师签名:
年月日
洛阳师范学院信息技术学院
软件实验报告
专业:
软件工程课程:
UNIX高级编程
学号:
姓名:
班级:
实验名称
I/O控制
实验类型
验证型
实验时间
2012-3-13
实验环境
虚拟机下装有linux操作系统的windows操作系统
实验目的与要求:
掌握文件I/O权限的设置方法和操作;
掌握进程实际id,有效id的区别、联系;
掌握进程修改有效id的方法和操作;
理解文件存取权限检查的流程和限制;
实验内容:
实验步骤:
(算法描述、源程序、操作步骤和方法)
1、创建新用户
在虚拟机中使用useradd命令创建一个新用户:
new_usr(参考命令:
useradd–d/home/new_usr–s/bin/bashnew_usr)
使用命令useradd–d/home/mengyawei–s/bin/bashmengyawei
可创建新用户mengyawei
使用命令passwdmengyawei
可对用户mengyawei的密码进行修改,如上图,所示。
使用命令sumengyawi可实现超级用户root与普通用户mengyawei之间的转换。
同样使用命令suroot也可以切换到root用户
1.使用命令创建新用户,并设置用户密码,
2.使用useradd添加用户
3.使用passwd设置用户密码
4.使用usermod-L来锁密码
5.强制用户帐号过期chage-d0username
6.解锁用户帐号
#useradddan
#passwddan
Changingpasswordforuserdan.
Newpassword:
Retypenewpassword:
passwd:
allauthenticationtokensupdatedsuccessfully.
#usermod-Ldan
#chage-d0dan
#usermod-Udan
当然用户dan第一次登录,就会提示设置密码如下:
$sudan
Password:
Youarerequiredtochangeyourpasswordimmediately(rootenforced)
Changingpasswordfordan
(current)UNIXpassword:
Newpassword:
Retypenewpassword:
使用命令:
useraddmengyawei
Passwdmengyawei
Changingpasswordforuserdan.
Newpassword:
Retypenewpassword:
passwd:
allauthenticationtokensupdatedsuccessfully.
#usermod-Lmengyawei
#chage-d0mengyawei
#usermod-Umengyawei
确实可以创建新用户mengyawei仅仅是在shell下使用sumengyawei命令切换到mengyawei用户。
不能在图形界面使用新用户mengyawei进行登录
没有使用命令:
chage–d0mengyawei
Usermod–Umengyawei
即没有激活用户,则登录时显示:
没有权限
使用命令chage–d0mengyawei
Usermod–Umengyawei强制实施密码过期方法后第一次登录,显示,必须马上修改密码
但是即使是这样,也还是登不进去
导航到:
start->systemsettings->users&groups,设置新用户new_usr的密码及激活用户
如何使用shell命令在不同用户之间进行切换
su
linux命令:
可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级用户以普通用户的身份做一些事情。
格式:
su[选项][?
][使用者账号]
说明:
若没有指定的使用者账号,则系统预设值为超级用户root。
该命令中个选项的含义分别为:
-c:
执行一个命令后就结束。
-:
加了这个减号的目的是使环境变量和欲转换的用户相同、不加-是取得用户的临时权限!
-m:
保留环境变量不变。
su切换到超级用户有两种方式:
1.suroot:
取得用户的临时权限,环境没改变
2.su-root:
完全切换到root用户
使用命令su时一定要注意:
“-”为命令选项一定要在“-”与后面的用户名之间加上空格
在shell控制台使用su(su账户名)命令在root,lynu,new_usr三个用户间切换,检查用户的有效性
使用SU命令在三个用户之间进行切换。
由图可知,本来是在用户mengyawei下,使用su-root命令获取root用户的全部权限,要求输入root用户的密码,密码输入正确后,切换到root用户。
在root用户下,使用命令sulynu命令,切换到用户lynu。
2、文件存取权限的设置
1)切换到lynu账户
2)参考并修改例程4-2清单,编写程序并生成可执行程序check,该程序检查进程实际用户和有效用户对文件的读、写权限
3)使用ls–l命令检查check的访问权限
4)编写另一程序ch_mod,修改check文件的访问权限为:
-rwxr-xr-x(提示:
使用stat获取存取权限,使用chmod函数设置权限)
正确的程序对check文件的访问权限进行修改。
改变的语句为:
Chmod(“check”,S_IWGRP|S_IWOTH);
3、实际用户、有效用户的检查
1)使用check程序检查check自身的访问权限,check进程的实际用户和有效用户是否一致?
实际用户和有效用户一致
2)用chown命令修改check的文件主为new_usr
使用check文件打开shadow文件
由下图可知,check文件的实际用户和有效用户都没有对文件shadow的读权限
在root用户下,修改check的有效用户
再次执行check/etc/shadow发现,check文件的有效用户对文件shadow有读权限,而实际用户对shadow没有读权限。
check文件的有效用户变成了root,实际用户还是lynu。
由下命令行得在普通用户下,无法对文件的有效用户进行更改。
在用户lynu用户工作环境下,想对文件check的有效用户进行修改,发现无法修改该文件的有效用户。
因为没有权限。
在root下对文件的有效用户进行更改
命令./checkcheck查看check文件的实际用户和有效用户是否一致。
3)再次执行步骤4),比较前后执行结果的区别,并解释原因
4)试用2种方法添加check文件的“设置用户ID”标志(提示:
chmod命令和编程方式),思考并验证:
5)、6)步需要切换用户吗?
5)使用ls命令再次验证check的访问权限
6)再次执行步骤4),比较前后执行结果的区别,并解释原因
4、验证文件标志的构成:
1)编程输出表4-6中mode常数的值(十六进程形式)
chmod函数的mode常数,取自
mode说明
S_ISUID执行时设置-用户-ID
S_ISGID执行时设置-组-ID
S_ISVTX保存正文
S_IRWXU用户(所有者)读、写和执行
S_IRUSR用户(所有者)读
S_IWUSR用户(所有者)写
S_IXUSR用户(所有者)执行
S_IRWXG组读、写和执行
S_IRGRP组读
S_IWGRP组写
S_IXGRP组执行
2)查看sys/stat.h头文件中有关文件类型检查的宏函数,并找到mode中文件类型常数的取值
在
宏文件类型
S_ISREG()普通文件
S_ISDIR()目录文件
S_ISCHR()字符特殊文件
S_ISBLK()块特殊文件
S_ISFIFO()管道或FIFO
S_ISLNK()符号连接(POSIX.1或SVR4无此类型)
S_ISSOCK()套接字(POSIX.1或SVR4无此类型)
3)思考问题:
文件标志mode中共有哪些位有效,从右至左,依次说明每位取值的含义
程序内容:
功能描述:
文件对于编译生成后的可执行文件后面的文件的读取权限以十六进制的形式进行输出
该程序仅对$1位置的文件进行处理。
约定只有一个参数。
运行结果:
文件mode的文件权限使用十六进制输出为1ed
使用ls–lmode命令查看mode文件的读取权限为-rwxr-xr-x
由st_mode的低9位存取的为文件的存取权限得知,文件的权限转换成十六进制数为1ef
程序的编写正确。
注意事项:
与结构体sta.st_mode进行按位与运算(&)时对于sta.st_mode的高23位的屏蔽
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 洛阳 师范学院 UNIX 实验 报告