useradd 用户名

passwd 用户名,给指定用户设密码

passwd给当前用户设密码

添加一个用户系统会自动在以下文件或目录创建对应用户信息:

[root@localhost ~]# grep shipotian /etc/passwd
shipotian:x:1002:1002::/home/shipotian:/bin/bash
[root@localhost ~]# grep shipotian /etc/shadow
shipotian:$6$mDzNFfmC$c/PmvY4M2WIoRE.ITMO6B71tl.WWDm/XhrRnAq.ecMhy86mdWwOeWADxhDOsSp953d7ggt4mCklUzZMQja4g30:17383:0:99999:7:::
[root@localhost ~]# grep shipotian /etc/group
shipotian:x:1002:
[root@localhost ~]# grep shipotian /etc/gshadow
shipotian:!::
[root@localhost ~]# ll /home
总用量 0
drwx------. 4 qiaofeng    qiaofeng    112 7月  23 21:23 qiaofeng
drwx------. 2 shipotian   shipotian    62 8月   5 15:27 shipotian
drwx------. 4 xiongjiawei xiongjiawei 191 7月  23 21:23 xiongjiawei
[root@localhost ~]# ls /var/spool/mail
qiaofeng  root  rpc  shipotian  xiongjiawei


添加用户默认值文件:/etc/default/useradd

# useradd defaults file
GROUP=100  公有模式会使用此默认值,目前一般添加用户是私有模式,所以此条无效。
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

另一个默认值文件:/etc/login.defs

 [root@localhost ~]# grep -v ^# /etc/login.defs

 MAIL_DIR        /var/spool/mail

 PASS_MAX_DAYS   99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7 UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999 GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999 CREATE_HOME yes UMASK 077 USERGROUPS_ENAB yes ENCRYPT_METHOD SHA512

passwd

查询用户密码状态:root命令

[root@localhost ~]# passwd -S xiongjiawei
xiongjiawei PS 1969-12-31 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

锁定用户:root命令

[root@localhost ~]# passwd -l xiongjiawei 此操作的本质即给shadow文件的密码位前加两个!!
锁定用户 xiongjiawei 的密码 。
passwd: 操作成功

解锁用户:root命令

[root@localhost ~]# passwd -u xiongjiawei
解锁用户 xiongjiawei 的密码。
passwd: 操作成功

通过管道输出接收密码:echo "密码" | passwd --stdin 用户名


usermod

-u 修改用户UID

-g 修改用户初始组

-G 修改用户附加组

-c 修改用户说明信息

-d 修改用户家目录

-L  临时锁定用户

-U 解锁用户锁定

这些选项的作用同useradd,只是useradd是添加新用户时同时定制用户相关信息,usermod是修改已存在用户相关信息。


chage

chage -选项 用户名

chage -l 用户名  :列出用户的详细密码状态

chage -d 日期 用户名  :修改密码最后一次更改日期

chage -m 天数  :两次密码修改间隔,即密码最小年龄

chage -M 天数  :密码有效期,即密码最大年龄

chage -W 天数  :密码过期前警告天数

chage -I 天数  :密码过期后宽限天数

chage -E 日期  :账号失效时间


userdel

userdel -r 用户名  :-r选项,删除用户同时删除用户家目录

此命令执行后对应这些文件里与被删除用户相关信息也一并删除:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/home、/var/spool/mail


id

查询用户id、初始组id、附加组id

[root@localhost ~]# id xiongjiawei
uid=1000(xiongjiawei) gid=1000(xiongjiawei) 组=1000(xiongjiawei),10(wheel)


su

su 用户名  :不建议不带选项-的切换

su - 用户名  :连环境变量一起切换,建议带选项-

su  :切换到root用户,不切换环境变量

su -  :切换到root用户,带环境变量一起切换

从超级用户切换到其他用户不需要输入密码,从其他用户切换到另一用户需要输入另一用户密码。

[xiongjiawei@localhost ~]$ su - root -c "useradd yangguo"  :不切换用户,只是临时用指定用户执行命令
密码:

[xiongjiawei@localhost ~]$ grep yangguo /etc/passwd
yangguo:x:1002:1002::/home/yangguo:/bin/bash


env

添加用户useradd,给用户设置修改密码passwd,修改用户信息usermod,修改用户密码状态chage,删除用户userdel,查询用户及组id,切换用户su,查看当前环境变量env的更多相关文章

  1. FastAdmin 环境变量 env 配置

    FastAdmin 环境变量 env 配置 目前 FastAdmin 支持环境变量 env 配置. 目前支持以下环境变量 app.debug app.trace database.type datab ...

  2. 自动配置/切换/查看JDK环境变量

    最近老是需要几个版本的JDK切换工作,于是网上收集资料整理,自己写了一个:自动配置/切换/查看JDK环境变量的批处理脚本.顺带3个JDK版本分别是:jdk1.6.0_43,jdk1.7.0_80,jd ...

  3. Linux下怎么添加和查看PATH环境变量

    linux下查看和添加PATH环境变量来自:http://apps.hi.baidu.com/share/detail/32942984 $PATH:决定了shell将到哪些目录中寻找命令或程序,PA ...

  4. Linux学习总结(十)-文件复制及查看, 环境变量

    一 文件复制及移动 1.命令 cp --------copy 的意思格式 cp 选项 源文件 目标文件a: 对于文件我们直接cp 文件 目标文件假定我们在普通用户家目录下/home/lv新建两个普通文 ...

  5. maven 常用插件 拷贝依赖 拷贝jar包 查看属性 环境变量

    1 maven编译后希望将生产的jar包拷贝到指定目录 在pom中配置maven插件 maven-antrun-plugin <build > <plugins> <pl ...

  6. java centos7配置查看jdk环境变量

    [root@bogon java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64]# which java/usr/bin/java[root@bogon jav ...

  7. Docker 查看容器环境变量

    #linux指令# printenv

  8. Powershell下设置环境变量

    NODE中经常会用到process.env.NODE_ENV来判断当前环境,因为使用的系统是windows,在sublime text下安装terminal插件后,默认启动的时Powershell, ...

  9. NodeJS学习:环境变量

    简介 环境变量(environment variables) 不属于 NodeJS 范畴,它是操作系统用于设定执行环境的参数.会在程序运行时传递给应用程序. NodeJS 获取环境变量,是通过 glo ...

随机推荐

  1. javaBean实体包区分

    随着软件工程结构越来越复杂,单一的entity实体包无法满足业务需要,可以采取PO,BO,DTO结构来分类实体. PO (Persistent Object):与数据库表数据关联的实体. BO(Bus ...

  2. 重写Fields 控制models 数据输出字段

    models: public function Fields() { $fields = parent::Fields();//原来models输出字段 $fields['parentComment' ...

  3. Python网络编程篇之socketserver

    1.socketserver模块和类 socketserver是标准库中的一个高级模块,目标是简化很多样板代码(创建网络客户端和服务器所必须的代码) 这个模块封装了socket编程所需要的各种各样的类 ...

  4. Could not resolve view with name '***' in servlet with name 'dispatcher'

    今天在开发中遇到了一个问题,控制层使用的是SpringMVC框架. @RequestMapping("historyDetail") private String History( ...

  5. A workaround to change shared memory size for Docker containers in AWS ECS

    Issue Because of not supporting to specify the following docker run parameter, containers in ECS can ...

  6. put()

    put()  作用: 将集合的所有键名和值,存放在一个集合对象中. public Map selectSingleData(String sql,Object...obj) throws SQLExc ...

  7. thinkphp3.2.3的使用心得之i方法(零)

    从模板传参到控制器 模板中代码: <volist name="list" id="vo"> <a href="__CONTROLLE ...

  8. Android - "cause failed to find target android-14" 问题

    在导入别人的工程项目时经常会遇到各种问题,本文中的就是其中SDK不对导致的   在导入项目时已经修改了 两个build.gradle文件 错误的原因是后面中这两项没修改. compileSdkVers ...

  9. Caddy服务器搭建和实现文件共享

    1:Caddy介绍 作为新兴 Web 服务器,Caddy 提供了很多简单易用的功能而没有历史的包袱,其默认支持并且能帮你自动配置 HTTP/2.HTTPS,对于 IPV6.WebSockets 都有很 ...

  10. Android开发之漫漫长途 番外篇——自定义View的各种姿势2

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...