Linux用户和用户组管理 用户管理相关命令
用户添加命令 useradd
注意: 新添加的用户如果不设定密码是不能够登录系统的
命令格式:
[root@localhost ~]#useradd [选项] 用户名
选项说明:
选项 | 选项说明 |
-u UID | 手工指定用户的 UID,注意手工添加的用户的 UID 不要小于 500; |
-d | 手工指定用户的家目录。家目录必须写绝对路径,而且如果需要手工指定家目录,则一定要注意权限; |
-c | 手工指定用户说明。 /etc/passwd 文件的第5个字段就是该字段内容的; |
-g |
手工指定用户的初始组。在创建用户时会默认以用户名相同的组作为用户的初始组。如果不想使用默认初始组,则可以用 -g 手工指定。不建议手工修改; |
-G | 指定用户的附加组。我们把用户加入其他组,一般都使用附加组; |
-s | 手工指定用户的登录 Shell。默认是 /bin/bash; |
-e | 指定用户的失效曰期,格式为"YYYY-MM-DD"。也就是/etc/shadow文件的第8个字段; |
-o | 允许创建的用户的 UID 相同。例如,执行"useradd -u 0 -o usertest"命令建立用户 usertest,它的 UID 和 root 用户的 UID 相同,都是 0; |
-m | 建立用户时强制建立用户的家目录。在建立系统用户时,该选项是默认的; |
1.添加默认用户:
[root@localhost ~]# useradd lizhouwei
如果我们只是创建用户,而不使用任何选项,系统会默认值按照下面的步骤帮我们指定这些选项;
[root@localhost ~]# grep "lizhouwei" /etc/passwd
[root@localhost ~]# grep "lamp" /etc/shadow
[root@localhost ~]# grep "lizhouwei" /etc/group lizhouwei:x:1000:
[root@localhost ~]# grep "lizhouwei" /etc/gshadow lizhouwei:!::
[root@localhost ~]#ll -d /home/lizhouwei/
[root@localhost ~]#ll /var/spod/mail/lizhouwei
在 /etc/passwd 文件中按照文件格式添加一行用户信息。
在 /etc/shadow 文件中按照文件格式添加一行用户密码信息。当然,这个用户还没有设置密码,所以密码字段是"!!",代表这个用户没有合理密码,不能正常登录。同时会按照默认值设定时间字段。
在 /etc/group 文件中按照文件格式添加和用户相关的组信息。会以用户名对应的组作为用户的初始组,所以用户名不会写入第4个字段,也就是初始组为空。
在 /etc/gshadow 文件中按照文件格式添加和用户相关的组密码信息。当然,我们没有设定组密码,所以这里没有密码,也没有组管理员。
使用 /etc/skel/下的用户模板目录建立用户的家目录和邮箱。
用户密码修改命令: passwd
命令格式:
[root@localhost ~]#passwd [选项] 用户名
选项:
选项 | 选项说明 |
-S |
査询用户密码的状态,也就是 /etc/shadow 文件中的内容。仅 root 用户可用; |
-l | 暂时锁定用户。仅 root 用户可用; |
-u | 解锁用户。仅 root 用户可用; |
--stdin | 可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用; |
说明:
要想给其他用户设定密码,只有两种用户可行:一种是 root 用户;另一种是 root 通过 sudo 命令赋予权限的普通用户。也就是说,普通用户只能修改自己的密码,而不能设定其他用户的密码。
root用户修改密码
root用户修改密码时可以 passwd 新密码 用户名;
普通用户修改密码
普通用户只能修改自己的密码,修改密码时 先输入passwd命令,然后再输入新密码;
查看用户密码状态
[root@localhost ~]# passwd -S lizhouwei
lizhouwei PS 1969-12-31 0 99999 7 -1 (Password set, SHA512 crypt.)(密码已设置,使 用SHA512加密。)
上面这行代码的意思依次是:用户名 密码 设定时间(1969-12-31) 密码修改间隔时间(0) 密码有效期(99999) 警告时间(7) 密码不失效(-1)
"-S"选项会显示出密码状态,这里的密码修改间 隔时间、密码有效期、警告时间、密码宽限时间其实分别是 /etc/shadow 文件的第4、5、6、7个字段的内容。
锁定和解锁用户
[root@localhost ~]# passwd -I lizhouwei 解锁用户lizhouwei 的密码。
[root@localhost ~]# passwd -u lizhouwei
使用字符串作为用户的密码
这种做法主要是批量添加用户时,给所有的用户设定一个初始密码。但是需要注意的是,这样设定的密码会把密码明文保存在历史命令中,会有安全隐患。所以,如果使用了这种方式修改密码,那么应该记住两件事情:第一,手工清除历史命令;第二,强制这些新添加的用户在第一次登录时必须修改密码(具体方法参考"chage"命令)。
[root@localhost ~]# echo "123" | passwd -stdin lizhouwei
说明:调用管道符,让 echo 的输出作为 passwd 命令的输入,就可以把 lizhouwei 用户的密码设定为"123"了。
用户信息修改命令: usermod
命令的格式 :
[root@localhost ~]#usermod [选项] 用户名
选项:
选项 | 选项说明 |
-u UID | 修改用户的UID; |
-d 家目录 | 修改用户的家目录。家目录必须写绝对路径; |
-c 用户说明 | 修改用户的说明信息,就是 /etc/passwd 文件的第五个字段; |
-g 组名 | 修改用户的初始组,就是 /etc/passwd 文件的第四个字段; |
-G 组名 | 修改用户的附加组,其实就是把用户加入其他用户组; |
-s shell | 修改用户的登录 Shell。默认是 /bin/bash; |
-e 日期 | 修改用户的失效曰期,格式为"YYYY-MM-DD"。也就是 /etc/shadow 文件的第八个字段; |
-L | 临时锁定用户(Lock); |
-U | 解锁用户(Unlock); |
说明:usermod 命令多出了几个选项,其中,-L 可以临时锁定用户,不让这个用户登录。其实锁定的方法就是在 /etc/shadow 文件的密码字段前加入"!"。大家已经知道密码项是加密
[root@localhost ~]# usermod -L lizhouowei
解锁用户
[root@localhost ~]# usermod -U lamp
把lizhouwei用户加入root组
[root@localhost ~]# usermod -G root lizhouwei
修改用户说明
[root@localhost ~]# usermod -c "test user" lizhouwei
用户密码状态修改: chage
通过 chage 命令可以查看和修改 /etc/shadow 文件的第3个字段到第8个字段的密码状态
命令的格式:
[root@localhost ~]#chage [选项] 用户名
选项:
选项 | 选项说明 |
-l | 列出用户的详细密码状态; |
-d 日期 | 密码最后一次修改曰期(/etc/shadow 文件的第三个字段),格式为 YYYY-MM-DD; |
-m 天数 | 密码的两次修改间隔时间(第4个字段); |
-M 天数 | 密码的有效期(第5个字段); |
-W 天数 | 密码修改到期前的警告天数(第6个字段) |
-i 天数 | 密码过期后的宽限天数(第7个字段); |
-E 日期 | 账号失效时间(第8个字段),格式为 YYYY-MM-DD; |
查看一下用户密码状态
[root@localhost ~]# chage -l lizhouwei
把密码修改曰期归零
[root@localhost ~]# chage -d 0 lamp
说明:这样用户一登录就要修改密码
删除用户命令:userdel
[root@localhost ~]# userdel [-r] 用户名
选项:
选项 | 选项说明 |
-r | 在删除用户的同时删除用户的家目录; |
[root@localhost ~]# userdel -r lizhouwei
说明:在删除用户的同时如果不删除用户的家目录,那么家目录就会变成没有属主和属组的目录,也就是垃圾文件。
查看用户的UID和GID命令:id
[root@localhost ~]# id 用户名
查看用户的UID和GID
能看到uid(用户ID)、gid(初始组ID), groups是用户所在组,这里既可以看到初始组,如果有附加组,则也能看到附加组
[root@localhost ~]# id lizhouwei
uid=1000(lizhouwei) gid=1000(lizhouwei) groups=1000(lizhouwei)
切换用户身份命令:su
su 命令可以切换成不同的用户身份
命令格式:
[root@localhost ~]# su [选项] 用户名
选项:
选项 | 选项说明 |
- | 选项只使用"-"代表连带用户的环境变量一起切换; |
-c 命令 | 仅执行一次命令,而不切换用户身份 |
说明:"-" 不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量。大家知道环境变量是用来定义用户的操作环境的,如果环境变量没有随用户身份切换,那么很多操作将无法正确执行。
Linux用户和用户组管理 用户管理相关命令的更多相关文章
- linux创建www用户组和用户
linux创建www用户组和用户 wdcp中的nginx服务启动需要依赖www用户,因此若没有此用户就可能会启动失败.创建这个用户的方法: [root@bogon local]# id www [ro ...
- Linux的用户与用户组(权限管理)
linux用户与用户.权限管理 用户管理: 1.useradd 创建用户 -c 指定用户描述 -d 指定家目录 默认家目录 /home下同名的目录 -g 指定主组 -G 指定附加组 [注意:一个用户主 ...
- linux中用户和用户组的概念以及查看命令
Linux 是多用户多任务操作系统,换句话说,Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响. 例如,某台 Linux 服务器上有 4 个用户,分别是 root ...
- Linux的文件路径和访问文件相关命令
Linux的绝对和相对路径 绝地路径 绝对路径:以根作为起来的路径 相对路径 相对路径:以当前位置作为起点 文件操作命令 显示当前工作目录: pwd命令 pwd:显示文件所在的路径 基名:basena ...
- linux下创建用户组与用户 只能访问指定目录的方法 以及FTP用户配置详解
VSFTPD 安装: -- 查看是否已经安装 VSftpd: rpm -qa | grep vsftp yum install -y vsftpd groupadd ftpuser #创建ftpuse ...
- linux 系统 目录,以部分及相关命令
linux 系统里的文件类型有: b. d.l. c. - .s (块设备.目录.软连接.数字串设备.普通文件(文本.二进行文件).socket文件 ) ls 命令 ls -a 查看当前目录下的所 ...
- Linux中打开文件显示行号相关命令
一.显示行号 :set number 或 :set nu 二.取消显示行号 :set nu! 三.每次打开显示行号 修改vi ~/.vimrc 文件,添加:set number
- LINUX系统、磁盘与进程的相关命令
ps ef:完整显示当前系统中所有运行的进程 kill 停止或杀死进程.9表示强制杀掉进程或任务 df 显示磁盘空间使用情况 du 用于显示指定目录下的文件以及子目录所占磁盘空间的大小. 与磁盘有关的 ...
- Linux常用命令学习8---(用户和用户组管理)
1.用户和用户组 用户和用户组概念 用户:使用操作系统的人(Linux支持多个用户在同一时间登陆同一个操作系统) 用户组:具有相同权限的一组用户(Linux系统中可 ...
- Linux的用户和用户组管理
Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控 ...
随机推荐
- 调试node.js应用--node-inspector
如果你在编写Node.js代码,node-inspector是必备之选,比Node.js的内置调试器好出许多.使用起来跟Chrome的javascript调试器很相似. 使用npm安装: $ npm ...
- 编译包中的 Servlet
编译包中的类与编译其他的类没有什么大的不同.最简单的方法是让您的 java 文件保留完全限定路径,如上面提到的类,将被保留在 com.myorg 中.您还需要在 CLASSPATH 中添加该目录. 假 ...
- 设置内容 - text()、html() 以及 val()
我们将使用前一章中的三个相同的方法来设置内容: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的 ...
- linux系统启动过程具体解释-开机加电后发生了什么 --linux内核剖析(零)
本文參考了例如以下文章 深入理解linux启动过程 mbr (主引导记录(Master Boot Record)) 电脑从开机加电到操作系统main函数之前执行的过程 详细解释linux系统的启动过程 ...
- 可以这样创建E-Notebook数据库
最新版的ChemDraw的名称是ChemOffice Professional 15.用户朋友们在使用它的E-Notebook功能的时候,会发现需要先创立一个数据库,作为上传文档的储存空间.并且还可以 ...
- 2213 Problem J
#include <iostream> #include <stdio.h> #include <string.h> #include <algorithm& ...
- Laravel开发:Laravel核心——Ioc服务容器源码解析(服务器解析)
make解析 服务容器对对象的自动解析是服务容器的核心功能,make 函数.build 函数是实例化对象重要的核心,先大致看一下代码: public function make($abstract) ...
- System、应用程序进程的Binder线程池和Handler消息循环
首先看一张Android系统启动流程图:
- TCP和UDP 协议发送数据包的大小
在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对像ICQ一类的发送聊天消息的情况作分 ...
- iptables 概念 1
[ 实战笔记 -- iptables 概念 1 ] 一. 防火墙相关概念 # 从逻辑上讲,防火墙可以分为主机防火墙和网络防火墙. 1> 主机防火墙: 针对于单个主机进行防护 2> 网络防火 ...