实验过程
1.创建一个新用户nick,设置其主目录为home/nick。
(1)添加新用户:
sudo useradd -m 用户名
sudo passwd 新用户名
(2)给新用户可以执行的root权限
sudo vi /etc/sudoers
#User privilege specification
root ALL=(ALL:ALL) ALL
加上:
新用户名 ALL=(ALL:ALL) ALL
ESC模式下 :wq!
(3)更改sh为bash
sudo vi /etc/passwd
文件最后一行即为新建立的用户名以及信息,将末尾的**/bin/sh改为/bin/bash**,保存文件。
(4)切换到新的用户
#su means switch user
sudo su 新用户名
2.查看/etc/passwd和/etc/shadow文件的最后一行,看看有什么变化。
3.给用户nick设置密码。
Linux passwd 命令让用户可以更改自己的密码,而系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码
-d 删除密码。本参数仅有系统管理者才能使用。
-f 强迫用户下次登录时必须修改口令。
-w 口令要到期提前警告的天数。
-k 设置只有在密码过期失效后,方能更新。
-l 锁住密码,停止账号使用。
-S 列出密码的相关信息。本参数仅有系统管理者才能使用。
-u 解开已上锁的帐号。
-x 指定口令最长存活期。
-g 修改群组密码。
-i 口令过期后多少天停用账户。
4.再次查看etc/shadow文件的最后一行,看看有什么变化。
5.使用nick用户登录系统。
6.锁定用户nick。
方法1:使用usermod命令:
锁定:$ usermod -l 用户名 (锁定用户账号,重新登陆生效)
解锁:$ usermod -u 用户名
查询状态: $ usermod -S 用户名
方法2:使用passwd命令:
锁定:$ passwd -l 用户名 (锁定用户密码,重新登陆生效)
解锁:$ passwd -u 用户名
查询状态: $ passwd -S 用户名
方法3:使用usermod命令禁用SSH访问Linux中的给定用户帐户
锁定:$ usermod -s /sbin/nologin 用户名
解锁:$ usermod -s /bin/bash 用户名
查询状态:可以 vim /etc/passwd查看每个用户的状态
方法4:禁用所有用户登录(除root用户)
锁定:$ touch /etc/nologin
解锁:$rm -f /etc/nologin(删除掉文件即可)
7.查看/etc/shadow文件的最后一行,看看有什么变化。
8.再次使用nick用户登录系统,看能否登录成功。
9.解除对用户nick的锁定。
10.更改用户nick的账户名为juju,创建新用户nick。
这里需要注意的是,刚刚在创建用户的时候,修改sudoers文件和shadows文件的配置,加上了ALL,和将sh修改为bash,但是这里的用户名还是没有改变,所以在修改用户名的时候,就需要这两个文件涉及到的用户名都需要修改!
11.查看/etc/passwd文件的最后一行,看看有什么变化。
12.指定用户juju在2023年12月31日过期。
[root@zmedu-17 day05]# chage --help
用法:chage [选项] 登录
选项:
-d, --lastday 最近日期
将最近一次密码设置时间设为“最近日期”
-E, --expiredate 过期日期
将帐户过期时间设为“过期日期” 0表示马上过期,-1表示永不过期
-h, --help
显示此帮助信息并推出
-I, --inactive INACITVE
过期 INACTIVE 天数后,设定密码为失效状态
-l, --list
列出用户以及密码的有效期
-m, --mindays 最小天数
将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays MAX_DAYS
密码保持有效的最大天数
-R, --root CHROOT_DIR
chroot 到的目录
-W, --warndays 警告天数
密码过期前,提前收到警告信息的天数
13.创建一个新组,组名为class,指定600为其GID。
Groupadd
(1)作用:
groupadd命令用于将新组加入系统。
(2)格式:
groupadd [-g gid] [-o]] [-r] [-f] groupname
(3)主要参数:
-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:加入组ID号,低于499系统账号。
-f:加入已经有的组时,发展程序退出。
(4)应用实例:
建立一个新组,并设置组ID加入系统:
#groupadd -g 344 cjh
此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。
14.查看/etc/group文件的最后-行。
15.将用户juju和nick添加入该组。
(1)新建用户
#检查用户组是否存在,如果组存在则会输出组信息,否则没有任何输出
grep <用户组名称> /etc/group
#如果用户组不存在则使用如下命令新建用户组:
groupadd <用户组名称>
#新建用户并将其加入指定用户组,作为其主用户组(每个用户有且只有一个主用户组)
useradd -g <用户组名称> <用户名称>
#或者 新建用户并将其加入指定附属用户组,附属用户组可以有多个,多个附属组名称用逗号分隔即可
useradd -G <用户组名称> <用户名称>
#设置用户密码
passwd <用户名称>
#查看用户属性,检查是否添加到正确的用户组
id <用户名称>
(2)已有用户
#将已有用户添加到指定用户组,作为其附属用户组
#-a 代表append,和 -G 一起使用,将用户添加到新用户组中而不必来开原有的其他用户组
usermod -a -G <用户组名称> <用户名称>
#将已有用户的主用户组改为新的用户组
usermod -g <新的用户组名称> <用户名称>
16.查看/etc/group文件中的最后一行,看看有什么变化。
17.给组class设置组密码。
18.将nick设为组长(注意用户状态)。
-r 删除组密码
-a 把用户加入组
-d 把用户从组中删除。
-M 可同时添加多个用户
-A 给组指派管理员
//设置一个组用户stu_a UID为1088 注释为laoda 组号为1111
[root@a ~]# useradd stu_a -u 1088 -c laoda -g1111
//设置组密码
[root@a ~]# gpasswd stu_1
Changing the password for group stu_1
New Password:
Re-enter new password:
[root@a ~]# gpasswd stu_2
Changing the password for group stu_2
New Password:
Re-enter new password:
//选出组的组长
[root@a ~]# gpasswd -A stu_a stu_1
[root@a ~]# gpasswd -A stu_d stu_2
19.从class组中删除用户juju。
20.再次查看/etc/group文件中的最后一行,看看有什么变化。
21.尝试删除组class。
22.查看~/.bashrc文件,并通过echo重定向写入text1.txt文件。
(1)用法:echo [短选项]… [字符串]…
或:echo 长选项
将 STRING 回显到标准输出。
-n 不尾随换行符
-e 启用解释反斜杠的转义功能
-E 禁用解释反斜杠的转义功能(默认)
–help 显示此帮助信息并退出
–version 显示版本信息并退出
若-e 可用,则以下序列即可识别:
\ 反斜杠
\a 响铃声
\b 退格
\c 不再产生新的输出
\e 转义符
\f 换页
\n 新行
\r 回车
\t 水平制表符
\v 竖直制表符
\0NNN 字节数以八进制数 NNN (1至3位)表示
\xHH 字节数以十六进制数 HH (1至2位)表示
(2)覆盖文件内容
【示例脚本】test.sh
使用>指令覆盖文件原内容并重新输入内容,若文件不存在则创建文件。
#!/bin/bash
echo “Raspberry” > test.txt
【操作过程】
#修改权限,脚本可执行chmod u+x test.sh
./test.sh
【文件内容】
Raspberry
(3)追加文件内容
【示例脚本】test.sh
使用>>指令向文件追加内容,原内容将保存。#!/bin/bash
echo “Raspberry” > test.txt
echo “Intel Galileo” >> test.txt
【操作过程】
#修改权限,脚本可执行
chmod u+x test.sh
./test.sh
【文件内容】
请注意echo指令默认在行尾增加回车(\n),所以此处显示两行。
Raspberry
Intel Galileo
23.查看text1.txt文件的默认权限
24.将 text1.txt的权限改为rwxr–r-x,请使用rwx符号方式完成。
25.查看~/.bash_profile文件,使用cat命令重定向为text2.txt
26.text2.txt文件的默认权限是 rw-rw-r–, 将 tex21.txt的权限改为rwxr–r-x, 请使用数字符号方式完成。
27.给text1.txt创建别名,bashrc_config,并测试。
28.在当前用户下,将文本echo HELLO, this is the phony ls program.重定向到文件sample.sh,并修改权限为全部用户可执行。
Linux 允许将命令执行结果重定向到一个文件(重定向也可以理解为写入)
将本应显示在终端上的内容 输出/追加到指定文件中
注意: > 表示输出,会覆盖文件原来的内容
>> 表示追加,会将内容追加到已有文件的末尾
权限修改:
rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。
修改方法1:(参数)
命令:chomod
语法:chomod [参数][augo][+ - =][rwx]文件名
例子:
(1)将文件file1.txt增加可读权限
chmod ugo+r file1.txt
(2)将文件file1.txt设为所有人(all)可读
chmod a=r file1.txt
(3)为ex1.py文件拥有者取消可执行权限
chmod u-x ex1.py
修改方法2:(数字)
命令:chmod
语法:chmod abc 文件名
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1, -=0
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
例子
将文件file1.txt设为可读可写可执行权限
chmod 777 file1.txt 和chmod a=rwx file1.txt 和chmod ugo=rwx file1.txt 效果相同
修改方法3:(递归赋权)
命令:chmod
语法:chmod -R
例子:
将directory1目录及目录里文件设为可读可写可执行权限chmod -R 777 directory1
心得体会
这次的实验报告就是让我们学会如何创建用户和组 ,如何实现重定向,如何修改文件和目录的权限,其实在我完成这个实验报告的时候,创建用户和修改用户,都需要去修改一些文件的配置,并不是简简单单一个指令就可以,通常要注意是否需要修改文件的配置,还有就是明白权限745,他其实是对应着文件的拥有者,文件的使用者以及其他用户,练习这些之后,在我完成项目:我的地盘我做主的时候,就十分简单,能够自己完成,所以让我知道学习是需要积累的,要明白学好Linux不是一件一蹴而就的事 , 一定要能坚持使用它,特别是在学习初期。要增加自己的Linux技能,只有通过实践来实现。只要多动手,就一定会有收获。遇到问题时要自己去寻找答案,在寻找答案的过程中,会学到更多知识。