一、作业内容

1.创建一个用户user1,用root身份给user1修改密码为redhat。

提示:创建用户用useradd user1

 暑期Linux练习作业_修改时间

 

 

2.切换到user1用户,给自己修改一个密码,密码任意。

 暑期Linux练习作业_修改文件_02

 

 

3. 在/root/目录中创建一个以自己的汉语拼音为名字的文件,例如zhangsan.txt。并写入名字、年龄、出生日期、性别,每一项占一行,保存并退出。

 暑期Linux练习作业_修改时间_03

 

 

 

4. 查找系统中所有与passwd关键词相关的man 帮助章节。

 暑期Linux练习作业_修改时间_04

 

 

5.分别写出man帮助的第1,5,8章节是做什么的?

1、Standard commands (标准命令)

用户在shell换机中可以操作的指令或可执行文件

5、File formats (文件格式)

配置文件或者是某些档案的格式

8、Administrative Commands (管理员命令)

系统管理员可用的命令

6.创建一个目录/data

 暑期Linux练习作业_修改时间_05

 

 

7.将 /etc/目录拷贝到data 并且重命名为 config

 暑期Linux练习作业_修改文件_06

 

 

8.将config 目录中的shadow 文件拷贝/tmp 

 暑期Linux练习作业_用户组_07

 

 

9.将config 下的shadow文件更名为password

 暑期Linux练习作业_用户名_08

 

 

10.更新/etc/目录下面所有文件的时间戳(注意不是/etc目录本身的时间戳)

 暑期Linux练习作业_用户组_09

 

 

11.在/tmp下创建一个空文件test1,并且通过文本编辑器来验证时间戳的更改

 暑期Linux练习作业_用户名_10

 

 

12.清空/tmp目录 

 暑期Linux练习作业_用户组_11

 

 

13.给/data目录改名,更名为RHCE

 暑期Linux练习作业_用户名_12

 

 

14.创建目录/tmp/a/b/c/d/e/f这样的目录树结构

 

 暑期Linux练习作业_用户名_13

 

 

15.将/usr/share/doc/zip目录下的所有文件拷贝至/tmp

 暑期Linux练习作业_用户组_14

 

 

16.查看/etc/profile 文件的时间戳。并尝试用touch修改A time和M time

 暑期Linux练习作业_修改文件_15

 

 

17.用file查看文件/etc/profile的文件类型,并将windows里面的一个pdf文件复制到虚拟机里面,用file来查看该pdf文件的类型。(选做)

 暑期Linux练习作业_用户组_16

 

 暑期Linux练习作业_修改文件_17

 

 

二、知识点补充

用户管理

1.添加用户

常用语法:useradd [选项] 用户名

如:useradd user1

当创建用户成功后,会自动的创建和用户同名的家目录

也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

如:useradd -d /home/group1 user1

 

常用选项:

 

         -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名

 

         -G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名

 

         -u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】

 

         -c comment:添加注释

案例:添加选项,创建用户lisi,让lisi属于501主组,附加组500,自选靓号666。

暑期Linux练习作业_用户组_18

注意:查看用户的主组可以查看passwd文件,查看附加组可以查看group文件。

 

2.用户管理

①修改密码

常用语法:passwd 用户名

如:passwd user1

 

②修改用户

常用语法:usermod [选项] 用户名

usermod 选项 用户名

 

Usermod:user modify,用户修改

 

常用选项:

 

         -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名

 

         -G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名

 

         -u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】

 

         -l:修改用户名

案例:修改zhangsan用户主组为500,附加组改为501

#usermod -g 500 -G 501 zhangsan

 

案例:修改zhangsan用户用户名,改为wangerma

#usermod -l 新的用户名 旧的用户名

#usermod -l wangerma zhangsan

 

③删除用户

常用语法:userdel 用户

情况一:删除用户user1,但是要保留home目录

userdel user1

情况二:删除用户user1以及用户主目录

userdel -r user1

注意:1.在实际项目开发中,一般不会连用户主目录一起删除

2.已经登录的wangerma用户删除的时候提示删除失败,但是没有登录的lisi用户可以正常删除

解决办法:简单粗暴,kill对应用户的全部进程

提示:所有跟用户操作的命令(除passwd外)只有root超级管理员有权限执行。

 

④查询用户

常用语法:id 用户

如:id user1

 

⑤切换用户

常用语法:su - 用户

如:su - user1

 

用户组管理

 

 

1.添加用户组

常用语法:groupadd [选项] 组名

如:groupadd group1

常用选项:

         -g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字,如果自己不指定,则默认从500之后递增;

 

2.删除用户组

常用语法:groupdel 用户组名 

如:groupdel group1

注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果确实需要删除,则先从组内移出所有用户。

暑期Linux练习作业_常用语法_19

 

 

3.用户组编辑

 

常用语法:groupmod [选项] 用户组名

 

常用选项:

 

         -g:类似用户修改里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字

 

         -n:类似于用户修改“-l”,表示设置新的用户组的名称

 

案例:修改Administrators用户组,将组ID从502改成520,将名称改为admins

暑期Linux练习作业_修改文件_20

 

 

权限管理

 

语法:chmod [选项] 权限模式 文档

 

注意事项:

 

         常用选项:

 

                           -R:递归设置权限 (当文档类型为文件夹的时候)

 

         权限模式:就是该文档需要设置的权限信息

 

         文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。

 

注意点:如果想要给文档设置权限,操作者要么是root用户,要么就是文档的所有者。

 

1.字母形式

暑期Linux练习作业_修改文件_21

 

 

给谁设置:

         u:表示所有者身份owner(user)

         g:表示给所有者同组用户设置(group)

         o:表示others,给其他用户设置权限

         a:表示all,给所有人(包含ugo部分)设置权限

                  如果在设置权限的时候不指定给谁设置,则默认给所有用户设置

 

权限字符:

         r:读

         w:写

         x:表示执行

         -:表示没有权限

 

权限分配方式:

         +:表示给具体的用户新增权限(相对当前)

         -:表示删除用户的权限(相对当前)

         =:表示将权限设置成具体的值(注重结果)【赋值】

 

例如:需要给anaconda-ks.cfg文件(-rw-------.)设置权限,要求所有者拥有全部的权限,同组用户拥有读和执行权限,其他用户只读权限。

答案:

#chmod  u+x,g+rx,o+r  anaconda-ks.cfg

提示:当文档拥有执行权限(任意部分),则其颜色在终端中是绿色。

 

2.数字形式

 

r=4 w=2 x=1 rwx=4+2+1=7
(chmod u=rwx,g=rx,o=x 文件目录名)相当于 (chmod 751文件目录名)
案例演示
将/home/abc.txt文件的权限修改成rwxr-xr-x,使用给数字的方式实现
chmod 755 /home/abc.txt

面试题:用超级管理员设置文档的权限命令是#chmod -R 731 aaa,请问这个命令有没有什么不合理的地方?

拥有者:7=4+2+1=读+写+执行

同组用户:3=2+1=写+执行

其他用户:1=1=执行 

注意:在写权限的时候千万不要设置类似于上面的这种奇葩权限。如果一个权限数字中但凡出现2与3的数字,则该权限有不合理的情况。

 

查看和修改文件时间

1.查看文件时间及相关命令

①stat查看文件时间

File: "install.log"

如:stat install.log

说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个目录所有文件的状态。

 

②ls查看文件时间

 

相应的通过ls 查看时也有三个时间:

 

• modification time(mtime,修改时间):当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性。 
• status time(ctime,状态时间):当该文件的”状态(status)”改变时,就会更新这个时间,举例来说,更改了权限与属性,就会更新这个时间。 
• access time(atime,存取时间):当“取用文件内容”时,就会更新这个读取时间。举例来说,使用cat去读取 ~/.bashrc,就会更新atime了。

相关语法如:

ls -l --time=ctime install.log (查看文件的状态时间)

ls -l --time=atime install.log (查看文件的存取时间)

注意:ls参数里没有--mtime这个参数,因为我们默认通过ls -l查看到的时间就是mtime 

 

2.修改文件时间

 

创建文件我们可以通过touch来创建。同样,我们也可以使用touch来修改文件时间。touch的相关参数如下:

 

-a : 仅修改access time。
-c : 仅修改时间,而不建立文件。
-d : 后面可以接日期,也可以使用 --date="日期或时间"
-m : 仅修改mtime。
-t : 后面可以接时间,格式为 [YYMMDDhhmm]
注:如果touch后面接一个已经存在的文件,则该文件的3个时间(atime/ctime/mtime)都会更新为当前时间。若该文件不存在,则会主动建立一个新的空文件。

常用语法:touch [选项] 文件

如:touch install.log

案例:

1. 同时修改文件的修改时间和访问时间
touch -d "2021-07-29 16:29:30" install.log
2. 只修改文件的修改时间
touch -m -d "2021-07-29 16:29:30" install.log
3. 只修改文件的访问时间
touch -a -d "2021-07-29 16:29:30" install.log