跟我学Linux用户管理
理解用户和组的意义
Linux的一大特性:
多用户、多任务。
所谓多用户多任务就是指可以在同一时间,有多个用户登录同一个系统执行不同的任务而互不影响。
假设现在有三个用户:root、lbb、mvv,三个用户同一时间登录了同一个系统,root去修改配置文件了,lbb去创建目录了,mvv去访问数据库了,每个用户互不干扰的独立执行自己的任务,并且每个用户不能够越线去访问其他用户正在操作的目录或执行其他用户下的任务,由此可见,不同的用户是拥有各自不同的权限的,Linux通过权限的划分和管理来实现多用户、多任务的运行机制。
Linux中的用户及其角色划分
按照角色来划分Linux中所有创建的用户,可以分为三种类型的角色:
超级用户(管理员):享有最高权限,具备系统中的所有权限(一般为root),UID为0
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统,UID>=500
系统用户:别称“伪用户”,无法登录系统,一般系统默认持有如bin,nobody等,其主要作用是支撑系统运行,方便系统管理,UID为1-1000(闭区间)
用户管理
1、查看账户
[root@qfedu.com ~]# id 查看的是当前登录账户的id信息,identify
uid=0(root) gid=0(root) 组=0(root)
主属组
附属组
uid 系统用来识别账户的user identify
gid 系统用来识别组的group identify
[root@qfedu.com ~]# id user1 查看user1这个账户的id信息
[root@qfedu.com ~]# whoami 查看我现在所使用的账户
2、新建账户
[root@qfedu.com ~]#useradd [参数] ... 用户名称
-d 指定家目录
[root@qfedu.com ~]# useradd -d /user3 user3
[root@qfedu.com ~]# cat /etc/passwd | grep user3
[root@qfedu.com ~]# user3:x:502:502::/user3:/bin/bash
-u 指定uid
-o 当Uid不唯一的时候使用
[root@qfedu.com ~]# useradd -u 1000 user4
[root@qfedu.com ~]# id user4
uid=1000(user4) gid=1000(user4) 组=1000(user4)
-g 指定主属组
[root@qfedu.com ~]# useradd -g 1000 user5
[root@qfedu.com ~]# id user5
uid=1001(user5) gid=1000(user4) 组=1000(user4)
-c 指定描述字段
[root@qfedu.com ~]# useradd -c qq-28282828 user6
[root@qfedu.com ~]# cat /etc/passwd | grep user6
user6:x:1002:1002:qq-28282828:/home/user6:/bin/bash
-s 指定登录shell
查看系统现在所支持的shell
[root@qfedu.com ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[root@qfedu.com ~]# useradd -s /sbin/nologin user7
[root@qfedu.com ~]# cat /etc/passwd | grep user7
user7:x:1003:1003::/home/user7:/sbin/nologin
3、修改账户
方式1.修改passwd文件 此文件里面除了密码字段能删除不能直接修改之外,其他字段全部都能直接修改
[root@qfedu.com ~]# cat /etc/passwd
账户的基本信息都在这个文件内
用户名:代表密码:uid:gid:账户的描述信息:家目录:登录shell
方式2.使用命令usermod
修改用户名称
-l
[root@qfedu.com ~]# usermod -l user9 user8
[root@qfedu.com ~]# id user8
id: user8:无此用户
修改uid
-u
-o 当指定的Uid不唯一的时候使用
修改gid
-g
修改描述
-c
修改家目录
-d
修改登录shell
-s
锁定帐号
-L
解锁帐号
-U
修改用户附属组
-G
[root@qfedu.com ~]# usermod -G grp3 user11
追加用户附属组(-aG一起用)
-a
[root@qfedu.com ~]# id wing
uid=1001(wing) gid=1001(wing) groups=1001(wing),1006(jim)
[root@qfedu.com ~]# usermod -aG tom wing
[root@qfedu.com ~]# id wing
uid=1001(wing) gid=1001(wing) groups=1001(wing),1005(tom),1006
(jim)
4、账户密码操作
给账户设置密码
[root@qfedu.com ~]#passwd
只适用于root账户
[root@qfedu.com ~]#passwd 用户名称
锁定密码
[root@qfedu.com ~]#passwd -l 账户名称
[root@qfedu.com ~]# passwd -l user10
锁定用户 user10 的密码 。
passwd: 操作成功
解锁密码
[root@qfedu.com ~]#passwd -u 账户名称
[root@qfedu.com ~]# passwd -u user10
解锁用户 user10 的密码 。
passwd: 操作成功
查看密码状态
[root@qfedu.com ~]#passwd -S 账户名称
[root@qfedu.com ~]# passwd -S user10
user10 PS 2013-11-21 0 99999 7 -1 (密码已设置,使用 SHA512 加密。)
[root@qfedu.com ~]# passwd -S user10
user10 LK 2013-11-21 0 99999 7 -1 (密码已被锁定。)
密码信息
/etc/shadow 又称他为影子文件
[root@qfedu.com ~]#man 5 shadow
用户名
加密密码
最后一次修改密码的时间(用天数来表示,从1970.1.1到最后一次修改密码的天数)
密码生存周期(两次密码修改之间的最小间隔)
密码的有效期(用天数来表示,从1970.1.1开始计算到密码过期有多少天)
警告时间(密码过期之前的警告时间)
密码有效期
帐号的有效期
预留字段
5、删除账户
[root@qfedu.com ~]#userdel -r 用户名称
-r 连带个人信息(家目录,个人邮箱)一起删除
6、切换账户
[root@qfedu.com ~]#su - 账户
[root@qfedu.com ~]#su -l 账户
相关推荐HOT
更多>>java变量命名规则?
在Java中,变量的命名需要遵循一些规则和约定。以下是Java变量命名的常用规则:1.使用有意义的名称:变量名应该具有描述性,能够清晰地表达变量...详情>>
2023-06-06 16:20:48httpservletrequest获取参数怎么做?
在使用Java的Servlet开发Web应用程序时,可以使用HttpServletRequest对象来获取请求的参数。以下是获取参数的示例代码:importjavax.servlet.Se...详情>>
2023-06-05 16:47:00jquery checkbox是否选中
要检查 jQuery 复选框是否被选中,可以使用 prop() 函数或者 is() 函数。这两个函数都可以获取或设置元素的属性,包括复选框的 checked 属性。详情>>
2023-04-21 10:13:27apt攻击的特点
APT攻击(Advanced Persistent Threats)的特点包括: 1.持续性:APT攻击通常是长期的、有计划的、渐进式的攻击,攻击者会利用各种手段和技术潜...详情>>
2023-03-14 11:10:06