Linux系统管理—用户管理

用户管理

Linux系统分为三种用户:root用户、系统用户、普通用户

ID是区分系统中用户的唯一表示,root用户的ID是0,系统用户的ID是1~499,用户的ID是500-60000(看过书籍写的是1000~60000,但是打开用户配置/etc/login.defs可看到其是500~60000)
其中系统用户是不能登录的,因为他们登录的shell是/sbin/nologin
用户的默认配置在/etc/login.defs,在读取用户的信息时候是从这里读取的
用户的基本信息在/etc/passwd中,用户的安全信息在/etc/shadow下
/etc/passwd字段
【用户名:密码:UID:GID:用户描述:用户主目录:用户登录Shell】
hadoop:x:500:501::/home/hadoop:/bin/bash
/etc/shadow字段
【用户名:加密后的密码:上次更改密码的日期:密码不可被更改的天数:密码需要重新变更的天数:密码需要变更前的警告期限:帐号失效日期:帐号取消日期:保留】
hadoop:$6$ojG/9FeuWx8IaMfW$SDx90Xitag0UP7KJ0/vn4RnAA8T0zpcXyuBo2Kv4sVC35oKcwdNi8W1EPe2okndtCdIX8w5nFKE7Da/EXdN8D1:12417:0:99999:7:::

添加用户:useradd(adduser) [选项] [用户帐号]
选项中-c 可以添加一些备注信息,显示在/etc/passwd备注栏中
     -u 指定用户ID
     -g制定用户群组
许多参数可以通过man useradd查看
设置密码:passd [选项] 用户帐号
     -d 删除帐号密码
     -l 锁定已经命名的帐号名称
     -x 最大密码使用时间
早先的密码经过加密存放到/ect/passwd第二个字段中,为了防止加密现在将其放到/etc/shadow下,这个/etc/shadow只有root权限才能查看,这就是最新的shadow password功能,以前/etc/passwd的第二个字段设置为一个x了。
删除用户:userdel [选项] [用户帐号]
     -r 删除用户主目录及其目录中的所有信息
     -f 不请求删除
一般删除用户要加上-r因为如果不使用参数-r则之删除帐号而用户目录还存在。
修改用户:usermod [选项] 用户帐号
修改用户的信息,选项一般和新建用户的参数差不多,对其进行修改
修改用户密码过期信息:chage [选项] 用户帐号
    -l 列出用户以及密码有效期
    -m 密码可更改最小的天数
    -M 密码保持有效期最大天数
    -E 密码到期的日期

组管理

用户可以属于一个或多个组,但是只能有一个作为用户的主属组,其他组被成为次属组。Linux中组也分为root组、系统组、用户组
组的基本信息在/etc/group下,组的密码信息在/etc/gshadow中
/etc/group字段信息
【群组名称:群组密码:群组ID:组里面的成员】
root:x:0:
/etc/gshadow下字段
【用户组名称:用户组密码:用户组管理员名称:成员列表】
working:!::
添加用户组:groupadd [选项] 组名称
删除用户组:groupdel [选项] 组名称
注意:在删除组的之前需要将组内的用户userdel后才能删除用户组,并且,只要用户组之下有一个在线用户就不能删除用户组、
修改用户组:groupmod [选项] 组名称
更改组的GID或名称
    -g 更改GID
    -n 更改组名称
管理用户组:gpasswd [选项] 组名称
管理用户组,为用户组添加密码
    -a 添加用户到用户组
    -d 从组中删除用户
    -A 制定管理员
    -M 设置组成员列表
    -r 删除密码
切换组:newgrp [-] 组名称
当一个用户隶属于多个用户组的时候,可能需要切换用户组,以获得该组的权限可以使用newgrp。如果要切换的组中并没有该用户,则需要输入组密码,然后该用户可以暂时拥有该组的权限,所以gpasswd设置密码的原因就在这里
刚查看用户id的时候,可以看到
#id yang
uid=510(yang) gid=503(testgroup) groups=503(testgroup),521(yang)
这个用户的UID以及用户组ID最前面的gid是默认用户组id,表示当前用户拥有这个组的权限
这时候通过 newgrp - yang切换到另一个组中

用户查询

/var/run/utmp 保存当前正在本系统中的用户信息
/var/log/wtmp 保存的是登录过本系统的用户信息
这两个都是二进制文件,无法查看。需要借助who、w、users、last、ac使用这两个文件包括的信息
who 查看utmp文件并报告当前登录的每个用户
who [选项]
如果不加参数,则列出用户帐号 登录终端 登录时间 何处登录等
w 查询utmp当前用系统用户以及用户所运行的进程信息,他相对who更加科学详细。
w [参数]
-h 不显示标题
-u 列出当前进程和CPU
-s 使用短模式,不显示登录时间JCPU和PCPU时间
其中w时候所列出的第一条信息分别是:
当前时间 系统启动到现在时间,登录用户数目,系统在1秒、5秒、15秒的平均负载
 10:54:13 up  1:49,  2 users,  load average: 0.09, 0.14, 0.13
查看id:id [参数] [用户名]
查看用户及其用户组id
显示当前终端上的用户名:whoami [选项]
由于linux是多用户操作,可能多个用户同时进入系统工作,要是有些用户忘记注销就离开了,可以通过whoami进行查看
last命令:查看当前与过去登录系统用户的相关信息直接使用列出/var/log/wtmp文件,
last [选项] [帐号名称...] [终端机编号...]
-d 将主机名称显示为ip地址
-n 设置显示行数
查看所有用户最近登录的情况,显示上次登录系统的用户,从/var/log/lastlog读取,读出用户最后登录时间和终端地址
last [参数]
-b 显示早于n天前的最近登录
-t 显示n天后的最近登录信息
-u 指定用户最近登录记录

切换用户

su命令可以在不注销当前用户前提下切换到另一个目录,root用户可以直接切换到普通用户下,普通用户在切换到root或其他用户下需要输入口令,直接输入su是默认切换到root目录下
su [参数] [用户帐号]
-l 改变身份时,同时改变工作目录
-c 执行一个命令,然后退出切换
- 完全切换到另一个目录
-m,-p 切换身份保留当前环境变量
-s 制定shell
使用su存在安全隐患,因为需要将root或其他用户的口令告诉当前用户,所以有了sudo命令
sudo可以让用户以其他身份执行指定的命令,默认是root。在/etc/sudoers中设置可以执行sudo命令的用户。如果未被授权的用户使用会发出警告的邮件给管理员。用户使用sudo时,需要先输入当前用户的口令,然后有5分钟有效期限,过了期限需要重新输入口令。sudo可以提供日志,告诉用户使用sudo命令做过什么。
sudo [参数] [用户名]
-H 将HOME的环境变量设为新HOME的环境变量
-k 技术密码有效期,下次需要输入密码
-l 列出可以执行和无法执行的命令
-s 制定shell
-u 用户 指定用户身份,如果不加此参数默认是root
配置/etc/sudoers设置允许使用sudo命令用户,在/etc/sudoers下
root    ALL=(ALL)       ALL
work    ALL=(ALL)       ALL
其中第一个是授权用户,第一个ALL是代表主机,(ALL)代表允许切换的用户,最后一个ALL是指使用sudo后可以执行的命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值