学好Linux的每一课 2018-11-11 17:11:23
A:usermod命令的使用
作用:可以设置用户的主组和附加组并且可以指定登录用户的shell
通过前面的学习我们知道用户信息是保存在/etc/passwd中,组信息保存在/etc/group中。
主组:通常新建用户时使用,通过-g选项指定的组称之为主组,如果不使用-g选项,系统就会默认为我们设置一个和用户同名的组,称之为主组,主组的信息在/etc/passwd文件第四列。
附加组:在最后一列可以指定用户列表(而这个用户列表就表示这些用户拥有这个附加组的权限),用于指定用户的附加权限。附加组的信息etc/group这个文件中。
1、第一步利用id命令看当前用户的相关信息
可以看到,后面标白的就是附加组,用来指定用户的附加权限的
通过第二条指令,知道在/etc/group中的67行是python用户组的标识,其余行最后一列是用户列表,均是python用户从属于哪个组,就拥有哪个附加组的权限。
2、第二步,通过id命令看zhangsan用户的相关信息
可以看出,zhangsan用户的用户标识是1001,组标识是1001,仅有主组没有附加组,那么问题来了,我用zhangsan用户登录系统,我能够使用sudo命令执行系统管理相关的命令吗?应该是不能的,那我们怎么才能知道能不能呢?
成功通过windows系统下的xshell实现远程控制ubutu机器
然后在终端中输入查看当前用户所在那个目录的指令,并且执行添加一个用户的指令。
可以看到,wangwu这个用户并没有被创建,在查看用户基本信息的时候并没有发现wangwu的相关信息,这就告诉我们虽然以zhangsan的身份登录,但是zhangsan这个用户仅有主组,没有附加组,也就不属于sudu附加组,因此附加组的权限就没有,所以利用这个指令是不起作用的。所以我们可以总结出来利用useradd创建出来的用户是没有sudo这个命令的,不能进行系统的正常维护与管理,那如何加上这个sudo权限呢?
3、第三步添加sudo这个权限(将zhangsan用户添加到sudo这个附加组中)
a:首先看python用户是否有sudo权限,可以看到python用户是有sudo权限的。
b:因为python用户有sudo权限,因此就可以利用sudo指令以超级用户的身份执行系统的维护与管理权限。然后在利用cat命令查看用户组信息,看看第四列是不是指定的用户列表已经有了zhangsan
这时可以看到在sudo21行的sudu附加组最后一列指定的用户列表里面多了一个zhangsan,说明zhangsan用户成功添加到sudo附加组里面,也就是说,zhangsan也可以通过sudo命令以一个超级用户的身份去执行每一条指令了。
4、如果想要zhangsan利用sudo执行系统管理与维护指令,我们还要退出,重新登录,否则功能依然无法实现。继续回到windows界面,发现zhangsan这个用户依然登录在xshell中,然后执行指令,利用sudo以超级用户的身份
这时有一个快速链接远程ubutu虚拟机的办法,利用ssh命令进入ubutu中,重新登录回zhangsan用户的家目录,再次尝试创建wangwu这个用户的操作。
然后在利用cat命令查看用户相关信息
这时wangwu用户就已经被用户成功创建了