Linux-(10)Linux中的用户和组

  和Windows一样,当我们使用Linux时,也需要以一个用户的身份登录,一个进程也需要以一个用户的身份运行,用户限制使用者或进程可以使用,不可以使用哪些资源。

  在我们使用Linux时,都是用一个用户名来进入系统的,而实际上在Linux中,每一个用户都拥有一个UserID,操作系统实际使用的是用户的ID来区分用户,而不是我们登录系统用的用户名。

  在Linux中,每个用户都属于一个主组,属于一个或多个附属组。主组默认是和用户名相同的,也就是说创建用户的时候会默认创建一个同名的组。

  同用户一样,每个组也有一个GroupID。

  在Linux中,每个进程都是以一个用户的身份运行,并且该进程的访问权限受该用户的权限的限制。

  Linux系统中的文件都有一个所属用户及所属组


  用户ID:

  Linux中的用户ID为32位,从0开始。

  用户ID分为三种,分别是:

  root用户: ID为0的用户

  系统用户: ID为1-499

  普通用户: ID为500以上

  为了和老式的系统兼容,用户ID通常被限制在60000以下


  保存用户和组相关的文件:

  /etc/passwd    这个文件保存用户信息

  /etc/shadow    这个文件保存用户密码(当然是加密过的)

  /etc/group        这个文件保存组信息


  /etc/passwd文件结构:

    /etc/passwd文件为纯文本文件,一行保存一个用户信息,各信息用“:”分隔。

    第一个参数: 用户名

    第二个参数: 通常为x,意思是密码保存在/etc/shadow中

    第三个参数: 用户ID

    第四个参数: 组ID

    第五个参数: 用户描述信息,这个没有什么规定,可以任意输入文本

    第六个参数: 用户的家目录

    第七个参数: 用户登录shell,普通用户通常为/bin/bash


  /etc/shadow文件结构:

    这个文件的结构和/etc/passwd是相同的,只是有一点,两个感叹号“!!”表示此用户没有创建密码


  /etc/group文件结构:

    组名:组密码:组ID:用户


  创建用户:

  useradd <用户名>

  参数:

    -d  家目录

    -g  主族

    -s  登录shell

    -G  附属组(最多31个,用“,”分割)

    -u  userId

  当执行useradd这个命令时,实际上系统会进行以下这些操作(在CentOS,RedHat是这样的,Ubuntu好像稍有差别)

    1. 在/etc/passwd中添加用户信息

    2. 如果使用passwd命令创建密码,则将密码保存在/etc/shadow中

    3. 为用户在/home下建立一个新的家目录,目录名为用户名

    4. 将/etc/skel目录中的文件复制到用户目录中。这里面有Documents,Download以及桌面等

    5. 建立一个与用户名相同的组,即新建用户的主组


  修改用户:

  usermod <参数> <用户名>

  参数:

    -l    新用户名

    -u    新userId

    -d    新的家目录位置

    -g    修改用户附属组

    -L    锁定用户使其无法登录

    -U    解除锁定


  删除用户:

    userdel <用户名>  只删除用户,保留用户的家目录

    userdel -r <用户名>  删除用户的同时删除用户的家目录


  创建组:

    groupadd <组名>


  修改组:

    groupmod -n <新组名> <旧组名>    修改组名

    groupmod -g <新组ID> <旧组ID>    修改组ID


  删除组:

    groupdel <组名>


  与用户相关的一些命令:

    id    显示当前用户的信息

    passwd <用户>    修改用户的密码,如果不加用户就是修改当前用户自己的密码

    whoami    显示当前用户

    who    显示有哪些用户已经登录了系统

    w    显示有哪些用户已经登录并且在干什么

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。