目录

用户身份

  在linux系统中和windows一样有用户之分。root用户为linux的超级管理员用户,权限最大。

  再RHEL7系统中,用户身份有如下:

  • 管理员UID为0:系统的管理用用户
  • 系统用户UID为1~999:为了避免某个服务程序出现漏洞而被黑客获得权限。默认服务器会有独立的系统用户负责运行,进而有效控制被破坏的范围。
  • 普通用户 UID为1000开始:有管理员用户创建且用户日常工作的用户。

  PS:UID是唯一,管理员创建普通用户,UID默认从1000开始。

  另外为了方便管理,linux系统还引入了用户组。听你刚刚使用用户组,可以将多个用户加入统一个组中,方便为组中的用户统一制定权限和任务。创建用户时会自动创建默认和用户同名的用户组,如果该用户需要加入其它组中,则这个组为附属组(扩展组)。

  此处推荐我的另一篇博客,有记录相关的命令:https://www.cnblogs.com/HeiDi-BoKe/p/11671367.html

useradd命令

  useradd命令用于创建系统新用户。默认会创建家目录/home/用户名。默认shell解释器/bin/bash。useradd和adduser命令相同。

格式:

useradd [选项] 用户名

选项:

-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-D:变更预设值。
-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。也可以为YYYY-MM-DD。
-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-N:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。默认值为/bin/bash。如果禁止用户登录为/sbin/nologin
-u:指定用户ID号。该值在系统中必须是唯一的。

/etc/passwd文件:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

实例:

# 创建用户账户为testuser1,并设置UID为544,主目录为/usr/testuser1,属于users组:(这里注意是属于users组,不是附加到users组,所以是使用-g,而不是-G)
[root@VM_0_10_centos ~]# cat /etc/group | grep users
users:x:100:
[root@VM_0_10_centos ~]#useradd -u 544 -d /usr/testuser1 -g users -m testuser1 # 使用管理员账号登陆系统,建立用户tmp_1 密码qrty2b3
[root@VM_0_10_centos ~]# useradd tmp_1
[root@VM_0_10_centos ~]# passwd tmp_1

[root@VM_0_10_centos ~]# echo "qrty2b3" | passwd --stdin tmp_1 # 批量添加用户(参考我另一篇博客哈:https://www.cnblogs.com/HeiDi-BoKe/p/11643283.html第四点)
# 我这里也再实现下,这里的方法和我另一篇博客方法不相同。步骤如下:
# 1.建立用户名列表文件username.txt 
# 2.创建用户密码对应文件 secret.txt,格式为username:password (注意文件的格式)
# 3.批量添加的脚本文件addusers.sh
[root@VM_0_10_centos shell]# cat username.txt
test1
test2
test3
test4
test5
[root@VM_0_10_centos shell]# cat secret.txt
test1:tt1
test2:tt2
test3:tt3
test4:tt4
test5:tt5
[root@VM_0_10_centos shell]# cat addusers.sh
#!/bin/bash
# author:thy
# Read from the file and create accounts in bulk
# 1.add accounts
cat < username.txt | xargs -n 1 useradd
# 2. set passwd(将密码转换到密码文件和族文件)
chpasswd < secret.txt
# 结束验证信息
pwconv
echo "OK"
[root@VM_0_10_centos shell]# ./addusers.sh
OK
# PS:此处注意-n参数,按空格分批(参考:https://www.cnblogs.com/f-ck-need-u/p/5925923.html#blog171) # 新创建一个tmp_2用户,这初始属于users组,且同时让他也属于tmpg组。
[root@VM_0_10_centos shell]# groupadd tmpg
[root@VM_0_10_centos shell]# useradd -g users -G tmpg tmp_2 # 无法使用shell,且其用户目录至/tmp/tmp_3
[root@VM_0_10_centos shell]# useradd -d /tmp/tmp_3 -s /sbin/nologin tmp_4 # 创建用户mary和 larry,要求harry的uid为3000,shell设置为不可登陆shell(两种方法)
# 方法一
useradd mary
useradd harry
usermod -u 3000 harry
usermod –s /sbin/nologin harry
# 方法二
useradd mary
useradd -u 3000 -s /sbin/nologin harry

usermod命令

  参考:https://www.cnblogs.com/HeiDi-BoKe/p/11671367.html第二点

userdel命令

  userdel命令用于删除用户。在执行删除用户时,如果没有加参数-r,则家目录会被保留。

格式:

userdel [选项] 用户名

选项:

-f 强制删除用户
-r 删除用户的同事删除用户家目录

实例:

# 删除用户及用户家目录
[root@VM_0_10_centos shell]# userdel -r tmp_1
#PS:如果用户还在登陆的话,会提示,用户正在登陆无法删除。此时可能需要先强制用户退出。
[root@VM_0_10_centos shell]# userdel -f tmp_1 # 查看当前登录的用户
[root@VM_0_10_centos shell]# w # 强制退出用户登录
[root@VM_0_10_centos shell]# pkill -kill -t pts1

groupadd命令

  groupadd用于创建用户组。方便将用户加入到组,并设置权限。每个在系统上运行的进程都是属于一个组的集合(gids)

格式:

groupadd [选项] 组名

选项:

-f,--force 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与-g一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
-g,--gid GID 这个值必须是唯一的,除非使用-o选项。但必须是非负的。默认值是使用大于或等于GID_MIN的最小值,并且大于每个其他组。
-K,--key KEY=VALUE 重写/etc/login.defs默认值(GID_MIN,GID_MAX和其他)。可以指定多个K选项。示例:-K GID_MIN=100 –KGID_MAX=499。注意:-K GID_MIN=10,GID_MAX=499不能工作。
-o,--non-unique 此选项允许添加一个非唯一的GID值。
-p,--password PASSWORD 为新组使用此加密过的密码。默认为禁用密码。注意:不推荐使用这个选项,因为密码(或加密过的密码)会被用户通过列出这个过程而看到。您应该确保密码符合系统的密码政策。
-r,--system 创建一个系统组。新的系统组数字标识符在SYS_GID_MIN到SYS_GID_MAX范围内选择,定义在login.defs中而不是GID_MIN到GID_MAX。
-R,--root CHROOT_DIR 将修改应用到CHROOT_DIR目录,并使用配置。

配置文件:

/etc/group 组账户信息。(组名称:组密码:组ID:组成员)
/etc/gshadow 安全组账户信息。
/etc/login.defs Shadow密码套件配置。

实例:

# 创建组群tg,并且设置该组群GID为800
[root@VM_0_10_centos shell]# groupadd -g 800 tg # 创建系组群
[root@VM_0_10_centos shell]# groupadd -r tsg

groupdel命令

  groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

格式:

groupdel 组名

实例:

# 删除组
[root@VM_0_10_centos shell]# groupdel tsg

passwd命令

  passwd命令用于修改用户密码,过期时间,认证信息等。passwd作为普通用户或超级用户都可以使用。但作为普通用户只能更改自己的用户密码,前提是没有被root用户锁定;且密码要符合安全要求。root用户运行passwd ,可以设置或修改任何用户的密码。

格式:

passwd [选项] 用户名

PS:passwd后面不接任何用户和参数,表示修改当前用户密码。

选项:

-d 删除密码(仅root权限)
-f 强制执行
-k 保留即将过期的用户在期满后能仍能使用;
-l 停止账号使用(锁定账户)
-u 启用已被停止的账户(解除锁定)
-S 显示密码状态
-x 设置密码的有效期(两次密码修正的最大天数,后面接数字;仅能root权限操作;)
-n 两次密码修改的最小天数,后面接数字,仅能root权限操作;
-g 修改群组密码
-i 过期后停止用户账号(在密码过期后多少天,用户被禁掉,仅能以root操作;)
-w 在距多少天提醒用户修改密码;仅能root权限操作;
--stdin

实例:

# 锁定密码,让某用户不能修改密码
[root@VM_0_10_centos shell]# passwd -l tmp_2
Locking password for user tmp_2.
passwd: Success # 清除用户密码
[root@VM_0_10_centos shell]# passwd -d tmp_2
Removing password for user tmp_2.
passwd: Success
# 查看密码状态
[root@VM_0_10_centos shell]# passwd -S tmp_2
tmp_2 NP 2019-11-25 0 99999 7 -1 (Empty password.) # 解锁密码
[root@VM_0_10_centos shell]# passwd -u tmp_2

chage命令

  chage命令用于修改密码的有效期

格式:

chage [<选项>] <用户名>

选项:

-m days: 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M days: 指定口令有效的最多天数。当该选项指定的天数加上-d选项指定的天数小于当前的日期时,用户在使用该帐号前就必须改变口令。
-d days: 指定从1970年1月1日起,口令被改变的天数。
-I days: 指定口令过期后,帐号被锁前不活跃的天数。如果值为0,帐号在口令过期后就不会被锁。
-E date: 指定帐号被锁的日期。日期格式YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日后经过的天数。
-W days: 指定口令过期前要警告用户的天数。
-l: 列出指定用户当前的口令时效信息,以确定帐号何时过期。

实例:

# 要求用户tmp_3两天内不能更改口令,并且口令最长的存活期为30天,并且口令过期前5天通知用户
[root@VM_0_10_centos shell]# chage -m 2 -M 30 -W 5 tmp_3
[root@VM_0_10_centos shell]# chage -l tmp_3
Last password change : Nov 25, 2019
Password expires : Dec 25, 2019
Password inactive : never
Account expires : never
Minimum number of days between password change : 2
Maximum number of days between password change : 30
Number of days of warning before password expires : 5

【Linux命令】用户身份(useradd,groupadd,usermod,passwd,userdel)的更多相关文章

  1. linux命令详解-useradd,groupadd

    linux命令详解-useradd,groupadd 我们在linux命令行中输入useradd: Options:  -b, --base-dir BASE_DIR       base direc ...

  2. Linux指令详解useradd groupadd passwd chpasswd chage 密码修改

    Linux指令详解useradd groupadd passwd chpasswd chage 密码修改 http://speediness.blog.51cto.com/760841/1783661 ...

  3. Linux命令——用户和用户组管理

    Linux命令--用户和用户组管理 命令groupadd 作用:新增组 格式:groupadd [-g GID] groupname 参数:-g,指定GID,一般从500开始 说明:一般不必加-g参数 ...

  4. Linux命令-用户管理:useradd,userdel,usermod,id,su,env,exit

    添加一个linux用户之后,相当于在linux系统里面创建了如下文件: 添加一个用户(默认也会创建一个同名的用户组,在linux下面用户默认必须在一个用户组里面): useradd wyp 添加用户w ...

  5. Linux用户和组管理命令-用户创建useradd

    用户管理命令 useradd usermod userdel 组帐号维护命令 groupadd groupmod groupdel 用户创建 useradd 命令可以创建新的Linux用户 格式: u ...

  6. Linux命令-用户及权限管理

    一.权限管理linux系统中对文件权限的描述机制: u g od r w x r w x r - x (r读,w写,x执行)文件 所有者 所属组 其他人可以表示为二进制: 111 111 101也可以 ...

  7. linux命令(用户)

    一.常用命令 1.1 ls ls 命令是 linux 下最常用的命令,ls 命令就是 list 的缩写. ls 用来打印出当前目录的清单.如果 ls 指定其他目录,那么就会显示指定目录里的文件及文件夹 ...

  8. Linux命令--用户用户组管理

    新增用户组 : groupadd groupadd [-g GID] 组名 不加-g 则按照系统默认的gid创建组,跟用户一样,gid也是从500开始的 修改用户组信息 : groupmod grou ...

  9. Linux命令 用户管理命令

    groupadd [功能说明] 新建用户组 [语法格式] Groupadd[-f][-r][-g<GID><-o>][组名] [选项参数] 参数 说明 -f 建立已存在的组,强 ...

随机推荐

  1. CentOS7安装部署squid服务(透明代理+反向代理)

    一.squid服务介绍 Squid是一个高性能的代理缓存服务器,Squid支持FTP.gopher.HTTPS和HTTP协议.和一般的代理缓存软件不同,Squid用一个单独的.非模块化的.I/O驱动的 ...

  2. jQuery实现简单购物车页面

    功能描述: 当全选按钮被按下时,所有商品的小复选框(以及另外一个全选按钮)的选中状态跟按下的全选按钮保持一致: 当用户选中商品时,如果所有商品都被选中,就让全选按钮为选中状态: 用户可以点击 + - ...

  3. SAP B1:如何在水晶报表中插入二维码

    动态二维码API接口地址:http://www.liantu.com/api.php?text=x备注: 动态网址内可自定义相应的字段拼接(如图5为 [批号]+[质检员]字段) 若API接口链接失效, ...

  4. RecyclerView 添加自定义分割线

    默认的浅灰色的分割线在某些时候并不能满足我们的要求,这时就需要自定义分割线了. 我们可以通过两种方式来实现:调用 DividerItemDecoration.setDrawable 方法或者继承实现 ...

  5. Java 密码加盐

    只对密码进行md5加密很容易反推出来,另外两个用户的密码相同时,数据库保存相同的密码,知道一个用户的密码就知道另一个.解决方法是在用户的短密码后面加上一段长字符,再计算 md5,这样反推出原始密码就变 ...

  6. Mac 停止redis服务

    停止redis服务: redis-cli shutdown 开始redis服务: redis-server

  7. opencv图像倾斜校正和切边

    #include<opencv2/opencv.hpp> #include<iostream> #include<cmath> using namespace st ...

  8. 一篇文章看懂JS闭包,都要2020年了,你怎么能还不懂闭包?

     壹 ❀ 引 我觉得每一位JavaScript工作者都无法避免与闭包打交道,就算在实际开发中不使用但面试中被问及也是常态了.就我而言对于闭包的理解仅止步于一些概念,看到相关代码我知道这是个闭包,但闭包 ...

  9. 几种设计良好结构以提高.NET应用性能的方法

    写在前面 设计良好的系统,除了架构层面的优良设计外,剩下的大部分就在于如何设计良好的代码,.NET提供了很多的类型,这些类型非常灵活,也非常好用,比如List,Dictionary.HashSet.S ...

  10. useradd命令详解(转)

    1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户. 2.格式 useradd [-d home] [-s shell] [-c comment] [ ...