Linux--系统密码管理及用户切换

来源:互联网 发布:java destroy方法 编辑:程序博客网 时间:2024/06/05 19:04

**********************************************************************************************************************************

     之前已经写过用户和组的定义及用法,有账号必然就有密码,现在就说一下,Linux系统是如何管理密码的:

     打开xshell命令界面,创建一个测试账号 sunday,打开/home/etc/passwd 文件,

     

     可以看到,sunday账号已经存在

     我现在是以管理员账号登陆,如果命令界面只输入passwd命令,则会默认修改管理员登录密码,

     

      修改用户root的密码,输入两次新密码之后,就会修改,我们现在只测修改普通用户的密码,所以下面的就不演示了。那我想修改普通用户的密码又改怎么做呢?

      输入 passwd sunday 命令:

      

     Linux系统对登录用户的密码复杂程度是有要求的,输入太简单,就会出现以上提示。

     再看,密码已经修改成功,现在试着用用户的新密码登录:

      

      已经成功使用sunday新密码登录!

      如果想使用sunday账号去修改密码可以吗?

      

       使用管理员账号修改用户账号没有问题,但是使用sunday账号修改其他用户密码是不可以的,因此普通用户想要修改自己的密码,一是去找管理员进行修改,管理员修改密码时,也没有密码复杂度的要求,可以任意修改;二是用户自己修改,但是只能修改自己的用户密码,也就是只可以使用passwd命令,而使用passwd + 账户的方式无效。

        那用户都可以使用密码 的哪些相关命令进行操作呢,我们可以使用passwd --help命令查看:

        

       图中标红的全部提示"root only",也就是只有管理员才可以使用此命令,普通用户是没有执行权限的。

       既然用户可以添加密码,当然也可以删除:

       

       提示已经删除成功!

       我们知道 使用usermod -L命令可以锁定用户账号,那用户的密码同样也具有锁定的功能;

       

      看图,可以知道,我们已经锁定密码成功。可以锁定,当然也可以删除,解锁用户,使用的是 usermod -U ,解锁密码则使用的passwd -u:

      

       对比管理用户时,锁定用户的账号来说,两者的表现形式不同,但功能是一样的,不允许该用户登录。

       下面介绍一个文件: login.defs

        

       z这个文件里有四个参数非常重要,需要重点关注一下:

        

        从上到下,依次意思为:使用该密码的额最大天数、最小天数、密码的最小长度、密码即将过期多少天之前给予警告的天数。

         然后使用chage 命令查看用户的基本信息,

         

       通过命名查看,可以发现,和login.defs文件里面的参数设置是一样的,那如果我们如果想修改这四个参数,是不是通过修改文件和chage是一样的呢?其实是不行的,因为login.defs文件里面反应的系统中所有用户的基本设置,而我们通过chage查看命令得到的是sunday 这一个用户的信息,如果想要需改sunday用户的参数信息,而去配置文件里面修改,那所有用户的信息都会随之改变。

        当然啦,chage -l 只是查看得命名,想要修改用户的信息,就得使用chage -m:

        

       这样就设置好了sunday用户参数,通过chage -l 查看一下:

       

     接着在说一下su 和sudo命令:

      su 是账户之间的切换命令,假如你现在使用管理员账户登录,如果你需要查看某个普通用户的信息,那就需要重新登录,现在使用sudo ,就不需要再重新打开一个命令界面,或者退出管理员账号,再重新登录,只用su命令就可以是实现:

      

      看前边root账号已经转为sunday 证明已经切换成功。你是不是疑惑,自己设置的sunday账户是有密码的,但是使用su命令登录进sunday也没有提示输入密码?没错,使用su命令,如果你是以管理员身份,登录普通用户,就不想要密码,但是从普通用户,使用su命令,切换会管理员登录,就必须要输入密码了:

      

     看我切回去之前,是不是输入了一次密码。

       这就是su 的作用,只是用来切换登录用户。

      再来看sudo,sudo的作用就是借用管理员的密码,帮助普通用户来实现一些只有管理员才有的权限设置,比如etc目录中,有个shadow文件,这个文件是用来存放用户密码的,只有管理员有权限进行查看:

      

      而且如果使用vi命令强制打开,里面是空白文件,

      那我现在想用sunday账户查看,该怎么办呢?

      可以试试sudo ,    先让你输入用户密码,之后又提示该用户没有在sudo 文件中配置

      

      在管理员登录状态下,使用visudo 命令配置权限:

      

        

       

      配置sunday权限:

      

      我们再来打开shadow文件:

       

  现在已经成功打开shadow文件,但是只有只读权限。

   下面再看几个小命令:

    输入id命令,显示的uid是用户的id,gid 和groups都是用户的组id,只不过前一个是私有组,后一个是标准组。

     

   输入groups命令:

   

   再将sunday加入到标准组share中,并再次用id命令查看:

  

  添加成功了,sunday不仅在私有组sunday中,同时也在share标准组中。

   恩,今天的内容完成了!

     

**********************************************************************************************************************************