添加用户useradd,给用户设置修改密码passwd,修改用户信息usermod,修改用户密码状态chage,删除用户userdel,查询用户及组id,切换用户su,查看当前环境变量env
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的更多相关文章
- FastAdmin 环境变量 env 配置
FastAdmin 环境变量 env 配置 目前 FastAdmin 支持环境变量 env 配置. 目前支持以下环境变量 app.debug app.trace database.type datab ...
- 自动配置/切换/查看JDK环境变量
最近老是需要几个版本的JDK切换工作,于是网上收集资料整理,自己写了一个:自动配置/切换/查看JDK环境变量的批处理脚本.顺带3个JDK版本分别是:jdk1.6.0_43,jdk1.7.0_80,jd ...
- Linux下怎么添加和查看PATH环境变量
linux下查看和添加PATH环境变量来自:http://apps.hi.baidu.com/share/detail/32942984 $PATH:决定了shell将到哪些目录中寻找命令或程序,PA ...
- Linux学习总结(十)-文件复制及查看, 环境变量
一 文件复制及移动 1.命令 cp --------copy 的意思格式 cp 选项 源文件 目标文件a: 对于文件我们直接cp 文件 目标文件假定我们在普通用户家目录下/home/lv新建两个普通文 ...
- maven 常用插件 拷贝依赖 拷贝jar包 查看属性 环境变量
1 maven编译后希望将生产的jar包拷贝到指定目录 在pom中配置maven插件 maven-antrun-plugin <build > <plugins> <pl ...
- 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 ...
- Docker 查看容器环境变量
#linux指令# printenv
- Powershell下设置环境变量
NODE中经常会用到process.env.NODE_ENV来判断当前环境,因为使用的系统是windows,在sublime text下安装terminal插件后,默认启动的时Powershell, ...
- NodeJS学习:环境变量
简介 环境变量(environment variables) 不属于 NodeJS 范畴,它是操作系统用于设定执行环境的参数.会在程序运行时传递给应用程序. NodeJS 获取环境变量,是通过 glo ...
随机推荐
- javaBean实体包区分
随着软件工程结构越来越复杂,单一的entity实体包无法满足业务需要,可以采取PO,BO,DTO结构来分类实体. PO (Persistent Object):与数据库表数据关联的实体. BO(Bus ...
- 重写Fields 控制models 数据输出字段
models: public function Fields() { $fields = parent::Fields();//原来models输出字段 $fields['parentComment' ...
- Python网络编程篇之socketserver
1.socketserver模块和类 socketserver是标准库中的一个高级模块,目标是简化很多样板代码(创建网络客户端和服务器所必须的代码) 这个模块封装了socket编程所需要的各种各样的类 ...
- Could not resolve view with name '***' in servlet with name 'dispatcher'
今天在开发中遇到了一个问题,控制层使用的是SpringMVC框架. @RequestMapping("historyDetail") private String History( ...
- 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 ...
- put()
put() 作用: 将集合的所有键名和值,存放在一个集合对象中. public Map selectSingleData(String sql,Object...obj) throws SQLExc ...
- thinkphp3.2.3的使用心得之i方法(零)
从模板传参到控制器 模板中代码: <volist name="list" id="vo"> <a href="__CONTROLLE ...
- Android - "cause failed to find target android-14" 问题
在导入别人的工程项目时经常会遇到各种问题,本文中的就是其中SDK不对导致的 在导入项目时已经修改了 两个build.gradle文件 错误的原因是后面中这两项没修改. compileSdkVers ...
- Caddy服务器搭建和实现文件共享
1:Caddy介绍 作为新兴 Web 服务器,Caddy 提供了很多简单易用的功能而没有历史的包袱,其默认支持并且能帮你自动配置 HTTP/2.HTTPS,对于 IPV6.WebSockets 都有很 ...
- Android开发之漫漫长途 番外篇——自定义View的各种姿势2
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...