• useradd


    useradd 功能说明:useradd命令可用于创建新的用户或者更改用户的信息。
    
    语法格式:
    useradd [选项] [用户名]
    useradd -D [选项]
    
    选项说明:
    1.使用useradd常规添加用户工作原理流程:
    在使用useradd命令时,若不加任何参数选项,后面直接跟所添加的用户名,
    那么系统首先会读取 /etc/login.defs (用户定义文件)和 /etc/default/useradd(用户默认配置文件)文件中所定义的参数和规则,
    然后根据所设置的规则添加用户,同时还会向 /etc/passwd(用户密码文件)和 /etc/group(组文件)文件内添加新用户和新用户组记录,
    向 /etc/shadow(用户密码文件)和 /etc/gshadow(组密码文件)文件里添加新用户和组对应的密码信息的相关记录。
    同时系统还会根据 /etc/default/useradd 文件所配置的信息建立用户的家目录,并将/etc/skel 中的所有文件(包括隐藏的环境配置文件)都复制到新用户的家目录中。
    
    2.useradd不加选项 -D 的参数选项及说明
    -c comment 新用户password文件中的说明栏(冒号分隔后的第五列)。
    -d home_dir 新用户每次登入时所使用的家目录。
    -e expire_date 用户终止时间。日期的指定格式为YYYY-MM-DD。
    -f inactive_days 用户过期几日后永久停权。当值为0时用户立即被停权,而当值为-1时则关闭此功能,预设值为-1-g initial_group 指定用户对应的用户组。用户组名必须为系统现已存在的名称。
    -G group,[...] 定义此用户为多个不同组的成员,每个用户组使用逗号(,)分隔。用户组名同 -g选项的限制。默认值为用户的起始用户组。
    -m 用户目录如不存在则自动建立。
    -M 不建立用户家目录,优先于/etc/login.defs文件设定。创建虚拟用户时一般不需要建立家目录,部署应用服务时则需要创建虚拟用户。
    -n 默认情况下用户的用户组与用户的名称是相同的。如果命令添加了-n参数,就不会生成与用户同名的用户组了。
    -r 此参数是用来建立系统用户的。系统用户的UID会比定义在系统档上/etc/login.defs 的UID_MIN要小。
    注意此用法下useradd所建立的用户不会建立用户家目录,也不会在乎记录在/etc/login.def中的定义值。如果需要用户家目录必须额外指定-m参数来建立系统用户。
    -s shell 用户登入后使用的Shell名称。默认值为不填写,这样系统会帮助指定预设定的登入Shell(根据/etc/default/useradd预设的值)。
    -u uid 用户的UID值。这个值必须是唯一的,除非用-o选项。数字不可为负值。
    
    3.useradd加选项 -D 的参数选项及说明
    该参数是修改/etc/default/useradd配置文件的内容
    -b default_home 定义用户家目录的基本目录,当用户家目录不存在时,此目录将作为家目录生效。
    -e default_expire_date 用户账号停止时间,格式为YYYY-MM-DD,同useradd 的-e参数。
    -f default_inactive 用户过期几日后停权。同useradd 的-f参数。
    -g default_group 新用户起始用户组名或ID。用户组名必须为现已存在的名称。用户组ID也必须为现已存在的用户组。用useradd的-g参数。
    -s default_shell 用户登入后的Shell名称。同useradd -s参数。
    
    
    
    案例:不加任何参数添加用户
    [root@testdb62 ~]# useradd oracle
    
    说明:
    创建用户的同时还会创建一个与用户名相同的用户组。
    在/home 目录下自动建立了一个和用户名相同的目录,即用户的家目录。
    创建的用户符合/etc/default/useradd和/etc/login.defs两个文件的规则预设的值。
    用户家目录下的文件和/etc/skel目录中的一样。
    
    [root@testdb62 ~]# grep -w oracle /etc/passwd
    oracle:x:1006:1006::/home/oracle:/bin/bash
    [root@testdb62 ~]# ls -ld /home/oracle
    drwx------ 2 oracle oracle 62 Dec 21 09:43 /home/oracle
    [root@testdb62 ~]# grep -w oracle /etc/shadow
    oracle:!!:18617:0:99999:7:::
    [root@testdb62 ~]# grep -w oracle /etc/group
    oracle:x:1006:
    [root@testdb62 ~]# grep -w oracle /etc/gshadow
    oracle:!::
    
    
    案例:useradd 加-s、-u参数添加用户
    [root@testdb62 ~]# groupadd -g 1208 scott
    [root@testdb62 ~]# useradd -g scott -u 1208 scottuser 
    [root@testdb62 ~]# id scottuser
    uid=1208(scottuser) gid=1208(scott) groups=1208(scott)
    
    
    案例:useradd 加-M、-s参数添加用户
    [root@testdb62 ~]# useradd -M -s /sbin/nologin wushuang
    [root@testdb62 ~]# ls -ld /home/wushuang
    ls: cannot access /home/wushuang: No such file or directory
    [root@testdb62 ~]# grep -w wushuang /etc/passwd
    wushuang:x:1210:1210::/home/wushuang:/sbin/nologin
    
    
    案例:useradd 加-c、-u、-G、-s、-d、-m、-e、-f 参数添加用户
    [root@testdb62 ~]# groupadd sa
    [root@testdb62 ~]# useradd -u 806 -s /bin/sh -c SysUser -G root,sa -e "2030/12/12" -f 2 -d /tmp/syssa syssa
    
    验证创建后的用户
    [root@testdb62 ~]# tail -1 /etc/passwd
    syssa:x:806:1213:SysUser:/tmp/syssa:/bin/sh
    [root@testdb62 ~]# ls -ld /tmp/syssa
    drwx------ 2 syssa syssa 62 Dec 21 10:25 /tmp/syssa
    [root@testdb62 ~]# id syssa
    uid=806(syssa) gid=1213(syssa) groups=1213(syssa),0(root),1212(sa)
    [root@testdb62 ~]# chage -l syssa
    Last password change                    : Dec 21, 2020
    Password expires                    : never
    Password inactive                    : never
    Account expires                        : Dec 12, 2030
    Minimum number of days between password change        : 0
    Maximum number of days between password change        : 99999
    Number of days of warning before password expires    : 7
    
    
    范例:useradd -D参数的使用
    [root@testdb62 ~]# cat /etc/default/useradd 
    # useradd defaults file
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes
    
    [root@testdb62 ~]# cp  /etc/default/useradd{,.bak} 
    [root@testdb62 ~]# useradd -D -s /bin/sh
    [root@testdb62 ~]# diff /etc/default/useradd{,.bak}
    6c6
    < SHELL=/bin/sh
    ---
    > SHELL=/bin/bash
    [root@testdb62 ~]# useradd -D -e "2022/12/12"
    [root@testdb62 ~]# diff /etc/default/useradd{,.bak}
    5,6c5,6
    < EXPIRE=2022/12/12
    < SHELL=/bin/sh
    ---
    > EXPIRE=
    > SHELL=/bin/bash
    [root@testdb62 ~]# useradd zuma
    [root@testdb62 ~]# tail -1 /etc/passwd
    zuma:x:1211:1214::/home/zuma:/bin/sh
    [root@testdb62 ~]# chage -l zuma
    Last password change                    : Dec 21, 2020
    Password expires                    : never
    Password inactive                    : never
    Account expires                        : Dec 12, 2022
    Minimum number of days between password change        : 0
    Maximum number of days between password change        : 99999
    Number of days of warning before password expires    : 7




  • 相关阅读:
    Hadoop源代码分析(五)
    使用Solr Data Import的deltaimport功能
    hbasewriter
    Hadoop源代码分析(四)
    lucene .NET 搜索图片 功能实现
    char类型与string类型的区别
    Windows程序设计:'SM_ MOUSEWHEELPRESENT' : undeclared identifier解决办法
    汇编里的栈空间
    在汇编源程序中,数据不能以字母开头
    中值
  • 原文地址:https://www.cnblogs.com/l10n/p/9409898.html
Copyright © 2020-2023  润新知