zoukankan      html  css  js  c++  java
  • CentOS 7创建用户两种方式

    什么是用户

    登录进系统的用户对硬件资源的操作都需要通过操作系统,操作系统的开发者们都专门开发了安全机制,要使用操作系统必须事先输入正确的用户名和密码。

    为何要有用户

    系统上的每一个进程,都需要一个特定的用户运行,一个用户拥有特定的权限,该用户运行的进程与用户权限一致。

    通常在生产环境是使用普通用户管理服务器,因为root权限过大,容易出问题。

    查看用户信息的命令

    • id:查看用户信息
    [chirou@duorou ~]$ id
    uid=1001(chirou) gid=1001(chirou) 组=1001(chirou) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    
    • whoami:查看当前用户是谁
    • who:查看当前登录的所有用户登录时间及终端信息
    [chirou@duorou ~]$ who
    root     tty1         2020-10-28 08:50
    chirou   pts/0        2020-10-28 08:52 (192.168.12.102)
    test     pts/1        2020-10-28 15:07 (192.168.12.102)
    
    • w:查看当前登录的所有用户详细信息
    [chirou@duorou ~]$ w
     19:19:16 up 10:32,  3 users,  load average: 0.00, 0.03, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1                      08:50   30:20   0.11s  0.11s -bash
    chirou   pts/0    192.168.12.102   08:52    1:40   0.68s  0.19s sshd: chir
    test     pts/1    192.168.12.102   15:07    4.00s  0.31s  0.21s sshd: test
    

    Linux系统中对用户的划分

    Linux系统中对用户主要分为管理员root与其他用户,管理员拥有最高权限,其他用户根据管理员的分配拥有不同的权限。

    在Linux系统中是通过UID和GID来区分不同用户和组的,用户的名称是给人类看的,系统仅仅能够识别ID这样的数字。

    • UID:用户ID,唯一标识一个用户的数字。
      • 在CentOS 系统中UID为0的用户为管理员root用户,CentOS 7之前UID1-499为系统用户,为了满足文件或服务启动的需要,一般不能登录,UID500之后为普通用户。CentOS 7中UID1-200为运行系统自带进程的系统用户,201-999为安装程序的系统用户。1000+为普通用户。
    • GID:组ID,唯一标识一个组的数字。

    每个用户可以属于多个组,用户必须有一个主组,其他为用户的附加组。每个组里可以包含多个用户。

    用户相关文件

    文件 作用
    /etc/passwd 记录用户账号信息
    /etc/shadow 记录用户密码信息
    /etc/group 记录组信息
    /etc/gshadow 记录组密码信息
    /home/USER_NAME 用户家目录
    /etc/skel 用户家目录的模板目录
    /var/spool/mail/USER_NAME 邮箱文件
    • /etc/passwd以冒号:分隔,分为七个字段

      • 第一字段:用户名
      • 第二字段:密码占位符,
      • 第三字段:UID
      • 第四字段:GID
      • 第五字段:用户注释信息
      • 第六字段:用户家目录
      • 第七字段:用户的登录SHELL
      [chirou@duorou ~]$ head /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      
    • /etc/shadow以冒号:分隔,分为九个字段

      • 第一字段:用户名
      • 第二字段:加密后的密码,!!表示没有密码
      • 第三字段:最近一次更改密码的时间,记录的是当前时间距离Unix元年的天数
      • 第四字段:密码最少使用天数,0表示无限制
      • 第五字段:密码最长使用天数,99999表示无限制。
      • 第六字段:密码距离过期天数的预警时间。
      • 第七字段:密码过期后的宽恕时间,在此时间内用户可以更改密码,过了此时间后系统会禁用此用户,不能再登录。
      • 第八字段:账号过期时间,如果值为空则表示永久可用。
      • 第九字段:保留字段,未使用。
      [root@duorou /home]# head -1 /etc/shadow
      root:$6$.zQAsXpp$3cwrj/2R1rtf.NuMd.PdJX3Wvh8.uRl3z9BvSVzSjiID9jPFIV/ItSX48oaiaknZ1qKhTybiq8vp7DQixET9F0:18554:0:99999:7:::
      
    • /etc/group:组信息文件,分成四个字段

      • 第一字段:组名称。
      • 第二字段:组密码占位符。
      • 第三字段:GID。
      • 第四字段:显示该组作为哪个用户的附加组,多个用逗号分隔。
      [root@duorou /home]# head -1 /etc/group
      root:x:0:
      
    • /etc/gshadow:组密码文件,分为四段

      • 第一段:组名称。
      • 第二段:组密码,如果是空或者!表示没有密码。
      • 第三段:用户组管理者,空表示没有管理者,如果有多个用逗号分隔。
      • 第四段:显示该用户组作为哪个用户的附加组,若有多个用逗号分隔。
      [root@duorou /home]# head -1 /etc/gshadow
      root:::
      
    • /etc/skel:存放用户家目录模板文件,新用户家目录内的初识内容从该目录内复制。

    [panghu@duorou ~]$ ll -a /etc/skel
    总用量 24
    drwxr-xr-x.   3 root root   78 10月  6 10:14 .
    drwxr-xr-x. 146 root root 8192 10月 28 20:31 ..
    -rw-r--r--.   1 root root   18 4月   1 2020 .bash_logout
    -rw-r--r--.   1 root root  193 4月   1 2020 .bash_profile
    -rw-r--r--.   1 root root  231 4月   1 2020 .bashrc
    drwxr-xr-x.   4 root root   39 10月  6 10:14 .mozilla
    
    • /var/spool/mail/:用户邮箱文件所在目录
    [panghu@duorou ~]$ ll /var/spool/mail
    总用量 0
    -rw-rw----. 1 chirou mail 0 10月 27 19:45 chirou
    -rw-------. 1 root   mail 0 10月 20 21:02 root
    -rw-rw----. 1 rpc    mail 0 10月  6 10:14 rpc
    -rw-rw----. 1 test   mail 0 9月  26 10:46 test
    

    用户管理命令

    创建用户:useradd

    • -u:指定UID
    • -g:指定主组
    • -G:指定附加组,附加组必须事先存在。
    • -d:指定家目录
    • -c:指定备注信息
    • -s:指定shell
    • -e:修改过期时间
    • -M:不创建家目录
    • -r:创建系统账号,UID处于系统用户范围内,默认没有家目录
    [test@duorou ~]$ useradd chirou
    # 默认会创建一个与用户名同名的组,组员为该用户,会在/home目录下创建一个与用户同名的目录,shell为/bin/bash,UID为1000+,永不过期,/var/spool/mail目录下会创建一个与用户名相同的邮箱文件。家目录中会存在.bash_*环境变量相关的文件,这些文件默认从/etc/skel目录中拷贝。这个默认拷贝环境变量位置是由/etc/default/useradd和/etc/login.defs两个配置文件定义的。
    
    # 当普通用户在家目录下执行了rm -rf *命令,下次登录系统时会出现-bash-4.1$这样的提示符,解决方法就是在/etc/skel目录中拷贝需要的环境变量文件,然后重新登录即可。
    cp -a /etc/skel/.bash* ./
    

    设置密码:passwd

    普通用户只能修改自己的密码,root用户可以修改所有用户密码。

    passwd chirou
    # 执行完后即成功创建了一个普通用户,可以正常登录使用。
    
    echo “密码” | passwd --stdin 用户名
    # 非交互式设置密码,常用于批量添加用户。
    
    # 可用系统内置变量生成随机字符来充当密码
    echo $RANDOM | md5sum | cut -c 1-10
    

    手动创建用户

    useradd和passwd命令创建用户本质上也是在修改账户相关文件,那么我们也可以通过直接编辑这些文件来创建一个新用户。下述操作都需要root权限才能进行。

    • 1、首先编辑/etc/passwd文件,添加新的一行,指定用户名、UID、GID、家目录和shell。

    • 2、编辑/etc/shadow文件,在最下面添加新的一行,指定与上面相同的用户名,添加秘文密码。在shadow文件中密码都是以秘文形式存放,可以通过openssl passwd命令生成加密的密码,然后粘贴到密码字段即可。/etc/shadow的权限是000,修改后需要在末行模式下执行:wq!来强制保存。

    • 3、编辑/etc/group文件,添加一行。

    • 4、编辑/etc/gshadow文件。

    • 5、在/home目录中创建与用户名同名的目录。

    • 6、将/etc/skel中的文件复制至该目录中,并修改属性。

    • 7、创建邮箱文件并修改属性。

    此时新用户创建完成,可以正常登录系统。

  • 相关阅读:
    D
    Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals
    Mondriaan's Dream POJ
    Traveling by Stagecoach POJ
    HDU1024_Max Sum Plus Plus
    stl_vector去重方法
    POJ3255次短路模板
    springMVC和spring上下文的关系
    @Resource @Autowired 区别
    XPath语法
  • 原文地址:https://www.cnblogs.com/ChiRou/p/13893417.html
Copyright © 2011-2022 走看看