5-1用户管理

项目一:
1、 新建一个user1用户,UID、GID、主目录均按默认;

[pl@localhost 桌面]$ su
密码:
[root@localhost 桌面]# useradd user1

2、 新建一个user2用户,UID=800、其余按默认;

[root@localhost 桌面]# useradd -u 800 user2

3、 新建一个user3用户,默认主目录为/abc、其余默认;并观察这三个用户的信息有什么不同;

[root@localhost 桌面]# useradd -d /abc user3

在这里插入图片描述

4、 分别为以上三个用户设置密码为123456;

[root@localhost 桌面]# passwd user1
更改用户 user1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost 桌面]# passwd user2
更改用户 user1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost 桌面]# passwd user3
更改用户 user1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

5、 把user1用户改名为u1,UID改为700,主目录为/test;

[root@localhost 桌面]# usermod -l u1 user1
[root@localhost 桌面]# usermod -u 700 u1
[root@localhost 桌面]# usermod -d /test u1

6、 修改用户user2在密码过期后5天禁用该账号;

[root@localhost 桌面]# passwd -x 5 user2
调整用户密码老化数据user2。
passwd: 操作成功

7、 修改用户user3账户的过期日期为2020年2月2日;

[root@localhost 桌面]# usermod -e 2/2/2020

8、 锁定用户u1,使密码无效;

[root@localhost 桌面]# passwd -l u1
锁定用户 u1 的密码 。
passwd: 操作成功

9、 解除用户u1密码锁住;

[root@localhost 桌面]# passwd -u u1
解锁用户 u1 的密码。
passwd: 操作成功

10、 修改user3账户的shell为禁止交互登录

[root@localhost 桌面]# usermod -s /bin/nologin user3

11、 删除用户u1

[root@localhost 桌面]# userdel -f u1

12、 删除用户user2,以及其账号下主目录等文件

[root@localhost 桌面]# userdel -r user2

5-2组管理

项目一:
1、 建立一个标准的组group1,GID=900;

[root@localhost 桌面]# groupadd -g 900 group1

2、 建立一个标准组group2,选项为默认,观察该组的信息有什么变化;

[root@localhost 桌面]# groupadd group2

3、 新建用户ah、xh,再新建一个组group3,把root、u1、user2用户添加到group1组中,把ah、xh添加到group2组;

[root@localhost 桌面]# useradd ah
[root@localhost 桌面]# useradd xh
ocalhost 桌面]# gpasswd -a root group1
正在将用户“root”加入到“group1”组中
[root@localhost 桌面]# gpasswd -a u1 group1
正在将用户“u1”加入到“group1”组中
[root@localhost 桌面]# gpasswd -a user2 group1
正在将用户“user2”加入到“group1”组中
root@localhost 桌面]# gpasswd -a ah group2
正在将用户“ah”加入到“group2”组中
[root@localhost 桌面]# gpasswd -a xh group2
正在将用户“xh”加入到“group2”组中

4、 创建名为zhangsan的系统组群;

[root@localhost 桌面]# groupadd -r zhangsan

5、 把group3组改名为g3,GID=1000;

[root@localhost 桌面]# groupmod -n g3 group3
root@localhost 桌面]# groupmod -g 1000 g3

6、 将ah 设为group1群组的管理员;

[root@localhost 桌面]# gpasswd -A ah group1

7、 从group2组群中删除用户ah;

root@localhost 桌面]# gpasswd -d ah group1
正在将用户“ah”从“group1”组中删除
gpasswd:用户“ah”不是“group1”的成员

8、 查看user2所属于的组;


9、 删除user1组与g3组,观察有什么情况发生;

[root@localhost 桌面]# groupdel user1
[root@localhost 桌面]# groupdel g3

10、 查看用户ab是属于哪些组群的成员;

在这里插入代码片

项目二:
1、 添加一个组grouplinux,并显示/etc/group文件内容;

[root@localhost 桌面]# groupadd grouplinux

2、 将用户pl加入到grouplinux组中,将zhangsan设置为该组管理员,并显示/etc/shadow文件内容;

在这里插入代码片

3、 切换用户到zhangsan,添加lisi用户到grouplinux组群,并将pl从组群中删除,退出zhangsan用户;

在这里插入代码片

4、 显示当前/etc/gshadow文件,更改grouplinux组id为1220,查看结果;

在这里插入代码片

5、 将grouplinux重命名为groupg;

在这里插入代码片

6、 删除grouplinux和groupg,查看结果;

在这里插入代码片

5-3用户、组和权限管理综合测试

一、 用户和组的构建
服务器管理员经过对公司各部门的需求分析发现,只有商务部和开发部的员工需要登录服务器,其他部门的员工暂时不需要访问服务器,因此,管理员需要为这两个部门创建组账户,并为两个部门的员工创建各自的用户账号。

在这里插入图片描述

-切换管理员身份

[pl@localhost 桌面]$ su
密码:
  • 创建组gBusiness、 gDevelop

[root@localhost 桌面]# groupadd gBusiness
[root@localhost 桌面]# groupadd gDevelop
[root@localhost 桌面]# tail /etc/group
sshd:x:74:
slocate:x:21:
avahi:x:70:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
pl:x:1000:
gBusiness:x:1001:
gDevelop:x:1002:

  • 分别创建用户B_tom、B_lucy、D_mike、D_lily
[root@localhost 桌面]# useradd -G gBusiness B_tom
[root@localhost 桌面]# useradd -G gBusiness B_lucy
[root@localhost 桌面]# useradd -G gDevelop D_mike
[root@localhost 桌面]# useradd -G gDevelop D_lily
[root@localhost 桌面]# cat /etc/passwd

  • 设置初始密码
[root@localhost 桌面]# echo "123456" |passwd --stdin B_tom
更改用户 B_tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost 桌面]# echo "123456" |passwd --stdin B_lucy
更改用户 B_lucy 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost 桌面]# echo "123456" |passwd --stdin D_mike
更改用户 D_mike 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost 桌面]# echo "123456" |passwd --stdin D_lily
更改用户 D_lily 的密码 。
passwd:所有的身份验证令牌已经成功更新。
  • 更改用户口令策略
[root@localhost 桌面]# chage -d 0 -M 30 -m 1 -W 5 B_tom
[root@localhost 桌面]# chage -d 0 -M 30 -m 1 -W 5 B_lucy
[root@localhost 桌面]# chage -d 0 -M 30 -m 1 -W 5 D_mike
[root@localhost 桌面]# chage -d 0 -M 30 -m 1 -W 5 D_lily
[root@localhost 桌面]# tail /etc/shadow    //查看用户账户信息

二、权限的管理
公司承接一项新的WEB业务,商务部负责与客户沟通并调研客户需求,为客户指定网站建设方案,开发部根据沟通记录及建设方案给出网站设计风格,并交由商务部与客户部沟通确认,确认后,由开发部进行代码编写,部门之间有大量数据需要共享,为了优化办公流程,需要在服务器上为项目创建专用的目录,并修改目录属性,为员工提供必要的读写权限。
项目分析:
1、 创建目录plan,商务部负责人(用户B_tom)可以往该目录内拷贝商务部给出的建设方案文档,开发部所有员工(组gDevelop)可以读取该目录下的所有文件。
2、 创建目录design,开发部负责人(用户D_mike)可以往该目录内拷贝设计部给出的网站风格设计文档,商务部所有员工(组gBusiness)可以读取目录下的设计文档。
3、 创建目录public,作为公共共享,允许所有员工在其下创建文件及子目录

[root@localhost 桌面]# mkdir -p /webdata/{plan,design,public} //创建目录
[root@localhost 桌面]# cd /webdata
[root@localhost webdata]# ll   //查看文件下目录
总用量 0
drwxr-xr-x. 2 root root 6 525 01:48 design
drwxr-xr-x. 2 root root 6 525 01:48 plan
drwxr-xr-x. 2 root root 6 525 01:48 public
[root@localhost webdata]# tail /etc/group

[root@localhost webdata]# chown B_tom:gDevelop plan

[root@localhost webdata]# chown D_mike design/
[root@localhost webdata]# chown :gBusiness design/

在这里插入图片描述
在这里插入图片描述

项目二:
一、 根据需求创建用户和组
1、 由于这台服务器由公司三个部门共同使用 ,请创建对应的组账户分别为:technical,sales,finance
2、 为各部门的经理创建用户账号,技术部经理james,销售部经理alice,财务部经理bruce
3、 为以下员工创建账号,技术部员工tom,销售部员工jack,财务部员工yanni,技术部实习生dick
4、 所有用户账号初始密码为123456,用户首次登录需要更改密码,密码至少使用一个月才可修改,三个月后必须修改,密码过期前10天开始提醒用户修改密码
5、 每个用户的主组为与用户名同名的组,附加组为所在部门对应的组
6、 实习生账号6个月后过期
7、 为统一管理,技术部用户UID范围为2001—2050,销售部用户UID范围为2051—2100,财务部用户UID范围为2101—2150,实习生UID范围为2151—2200
8、 三个部门经理UID分别为2001,2051,2101
二、 根据需求设置合适的权限
1、 创建工作目录/var/work,除了管理员不允许任何人在/var/work目录下创建、删除文件,在此目录下新建的目录、文件默认不给予其他人任何权限
2、 在工作目录下创建各部门目录:tech,sales,finance,以及公共目录share
3、 各部门目录下分别创建开放目录public

4、 各部门目录的属主为部门经理,属组为部门组账户,共享目录属主、属组为管理员
5、 各部门目录下创建的文件、目录属组默认为部门组账户
6、 各部门目录下只有部门经理可创建、删除,部门员工只可查看
7、 各部门目录下的开放目录可供三个部门的人查看,但只有所在部门的人可以修改
8、 共享目录下所有人都可以创建、删除,但只能删除自己创建的文件
9、 实习生只能在共享目录下创建、删除,其他所有目录均没有创建、删除权限

习题解题

pwd找路径
ls 查看目录下文件

文件和目录基本操作
项目一:
首先切换用户

[pl@localhost 桌面]$ su
密码:
[root@localhost 桌面]# 
  1. 在根目录(/)下新建一目录 test
[root@localhost 桌面]# cd /
[root@localhost /]# mkdir test
  1. 改变当前目录至 /test ,在该目录下,以自己名字的英文缩写建一个空的文件,再建两个子目录(-xh)与(ah);
[root@localhost /]# cd /test
[root@localhost test]# touch sa
[root@localhost test]# ls
ah  sa
[root@localhost test]# mkdir -- -xh
[root@localhost test]# mkdir ah
  1. 进入到(-xh)子目录中,新建一个空文件text1;
[root@localhost test]# cd -- -xh
[root@localhost -xh]# touch text1
[root@localhost -xh]# ls
text1
  1. 进入到(ah)子目录中,再新建一个子目录(abc),同时建立空文件text2;
[root@localhost -xh]# cd ah
bash: cd: ah: 没有那个文件或目录
[root@localhost -xh]# cd /test/ah
[root@localhost ah]# mkdir abc
[root@localhost ah]# touch text2
[root@localhost ah]# ls
abc  text2

注意:一定要绝对路径
5. 把刚建的text1文件移动到刚建立的abc子目录下,并改名为text3,同时把text2文件复制到-xh子目录中;

[root@localhost ah]# pwd
/test/ah
[root@localhost ah]# mv /test/-xh/text1 /test/ah/abc/text3
[root@localhost ah]# ls
abc  text2
[root@localhost ah]# ls /test/-xh
  1. 删除text3文件与-xh子目录及目录中的文件;并删除abc子目录;
[root@localhost ah]# rm ./abc/text3
rm:是否删除普通空文件 "./abc/text3"?y
[root@localhost ah]# 
  1. 清屏;
在这里插入代码片

8、 使用ls 命令显示test的目录结构;

[root@localhost ah]# cd /test
[root@localhost test]# ls
ah  sa  -xh

9、 在/test文件夹下,创建hello文件;

[root@localhost test]# touch hello

10、 在当前路径下创建软链接文件test,链接到/test/hello文件;

[root@localhost test]# ls
ah  hello  sa  -xh
[root@localhost test]# ln -s /test/hello test
[root@localhost test]# ls
ah  hello  sa  test  -xh

11、 查看test链接文件创建成功,能够看到文件内容;

[root@localhost test]# ls /test/hello
/test/hello

12、 删除源文件/test/hello;

[root@localhost test]# rm -rf /test/hello

13、 可以看到test文件,但文件已经损坏无法打开;

[root@localhost test]# cat ./test
cat: ./test: 没有那个文件或目录

14、 使用sort或uniq命令对/root目录下的inittab文件排序后输出其结果;

[root@localhost test]# sort /root/anaconda-ks.cfg

15、 统计inittab文件的字节数、行数、字数;

[root@localhost test]# ls -a /root

项目二:
1、将/etc/selinux/config复制到/tmp 目录下 并重命名为web.conf

2、在tmp目录下新建目录树 /tmp/test/test1/test2/test3

3、用vi编辑器在/tmp目录下创建一个文件。文件名为example,内容为 this file is a test file

4、新建用户test1,将example 复制到test1 的家目录 (useradd 用户名)

5、将example文件复制一份到/tmp/test/test1/test2 下,并命名为testfile

6、使用ls 命令显示tmp的目录结构

补充笔记

新建目录 mkdir  /test
删除  :rmdir/test
新建文件  :vim test
           /test]# touch test 
           空文件
           rm-rf test
           强制递归
;wq 保存
;q  退出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐