如何在linux系统中进行用户的管理

本文章主要介绍Linux系统中的用户管理。
  • 基本概念的理解
  • 创建及删除用户
  • 修改用户属性
  • 修改密码策略
  • 通过sudo对用户进行授权
8.1 基本概念
用户在操作系统中是非常重要的,我们登录系统、访问共享文件夹等都需要用户进行验
证。所以,掌握管理用户的知识是非常有必要的。
说到用户,我们会提到两个名词:账户信息和密码信息。
(1)账户信息:以QQ为例,可以理解为QQ号码、QQ签名、QQ中填写的个人资料等。
(2)密码信息:以QQ为例,就是登录QQ的密码。
用户的账户信息是存储在/etc/passwd中的,在此文件中一行一个用户信息,各字段
用“:”如图所示
如何在linux系统中进行用户的管理_第1张图片
1:用户名。
2:原来此处用于存储用户的密码,因为安全性问题,这里统一用x作为占位符。
3:用户的uid,每个用户都会有一个 user id,简称为uid。root的uid为0.
4:用户的gid,每个组也都会有一个 group id,简称为 gid.
5:用户的描述信息。
6:用户的家目录。
7:用户的shell。
上面的命令也可以通过“getent passwd 用户名”来获取
[root@op ~]# getent passwd blab
blab:x:1001:1001::/home/blab:/bin/bash
[root@op ~]# 
用户的密码信息存储在/etc/shadow中
[root@op ~]# grep blab /etc/shadow
blab:$6$epslu/IPJavkK9IV$lhgn3eDNud6KrzT6rAZjVWtYPlXJAMA1qc04n7W7qw.G.xDaQI.rHbxTJwxT3hwvo567kjIqNG9eAVpFz9wv7/:19692:0:99999:7:::
[root@op ~]# 
上面第一个和第二个冒号之间的斜体字就是被加密后的密码。上面的信息也可以通
过"“getent shadow用户名”来获取
getnet shadow blab
判断一个用户是否存在,可以使用“id 用户名
这里tom用户不存在,则显示无此用户。如果用户存在,则显示用户信息
如何在linux系统中进行用户的管理_第2张图片
1.显示用户的uid信息。
2.显示用户的gid信息。
3.显示用户的gid信息。
8.2 管理用户
管理用户包括创建用户和修改用户属性。
8.2.1 创建用户
利用useradd命令可以创建用户,useradd中常见的选项包括8种。
(1)-d:指定用户的家目录,默认为/home/用户名。
(2)-m:创建家目录,这是默认选项,一般不用指定。
(3)-M:不为用户创建家目录,即创建好用户之后没有“/home/用户名”。
(4)-s:指定用户的shell,默认为/bin/bash。
(5)-c:用来指定备注信息,不指定则为空。
(6)-u:指定用户的uid。
(7)-g:默认情况下,创建用户时会创建一个同名组。例如,创建tom用户,则会创建一
个tom组,然后把 tom用户加人 tom组中。如果指定了-g root,则创建用户时直接把tom
加入root组,就不会再创建tom组,此时 tom只属于一个组。
(8)-G:指定附属组,即把用户加人一个额外的组,此时 tom属于两个组。
如果同时指定-g和-G选项,如-g root-G users,这里的意思是不再为tom创建命名组,直接
加入root组,同时再额外地加入users组,此时tom 就属于两个组,即root和users组。
下面创建tom用户
[root@op ~]# useradd -d /tom -s /sbin/nologin -c "Im tom" -u 2000 -g root -G users tom
[root@op ~]# 
[root@op ~]# 
[root@op ~]# grep tom /etc/passwd
tom:x:2000:0:Im tom:/tom:/sbin/nologin
[root@op ~]# 
我们在创建用户时,并没有指定用户的密码,所以这里密码为空。当我们创建用户时,
没有给这个用户设置密码,则这个用户是处于被锁定状态,即不能登录
所有现在为 tom用户设置密码,可以使用如下命令。
[root@op ~]# passwd tom
更改用户 tom 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 太简单或太有规律
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@op ~]# 
[root@op ~]# 
[root@op ~]# 
这里已经有了密码。
但是现在用户仍然是不能登录的,所以用su命令切换到tom用户。
[root@op ~]# su - tom
This account is currently not available.
[root@op ~]# 
这是因为tom用户的shell被设置为了/sbin/nologin,任何用户的shell 被设置
为/sbin/nologin,则此用户是不能登录系统的。那么,创建此用户的意义何在?很多时候我
们搭建了服务,如用samba共享了一个目录,希望其他主机来访问此共享目录时不能以匿名
用户访问,必须输入相关的用户名和密码,但又不想让他能登录系统,这种情况下就可以用到
了。
8.2.2 修改用户属性
如果想修改用户属性,可以使用usermod命令。usermod命令所能用到的选项与
useradd是差不多的,下面讲最常见的5个选项。
(1)-c:修改注释信息。
(2)-s:修改shell信息。
(3)-d:修改家目录。
(4)-L:锁定用户。
(5)-U:解锁用户。
把tom的shell改成/bin/bash,并把备注信息改成hello tom
[root@op ~]# usermod -s /bin/bash -c "Hello Tom" tom
[root@op ~]# grep tom /etc/passwd
tom:x:2000:0:Hello Tom:/tom:/bin/bash
[root@op ~]# 
所有组的信息都是放在/etc/group中的,如果要判断一个组是否存在,可以
到/etc/group中查询。例如,现在判断bob组是否存在,命令如下。
[root@op ~]# grep bob /etc/group
[root@op ~]# 
没有任何输出,说明bob组不存在。如果想创建一个新的组,则用“groupadd 组名”命
令。例如,现在要创建bob组,命令如下。
[root@op ~]# groupadd bob
[root@op ~]# grep bob /etc/group
bob:x:1002:
[root@op ~]# 
查看用户属于哪个组的,可以通过“groups用户”来查看。例如,查看tom属于哪个组,命令
如下。
[root@op ~]# groups tom
tom : root users
[root@op ~]# 
可以看到,tom属于root和users 组。如果想把用户继续添加到其他组中,可以通
过“gpasswd -a用户组”来添加。例如,现在要把tom 加入bin组
[root@op ~]# gpasswd -a tom bin
正在将用户“tom”加入到“bin”组中
[root@op ~]# 
要是想把用户从某个组中踢出去,则通过“gpasswd -d用户组”来删除。例如,现在要
把 tom从 bin组中删除
[root@op ~]# gpasswd -d tom bin
正在将用户“tom”从“bin”组中删除
[root@op ~]# 

8.3 用户的密码策略
很多人是没有修改密码的习惯的,设置了一个密码就一直使用下去,这样会带来一定的安
全隐患。所以,为了提高安全性,需要设置一定的密码策略,使用的命令是chage。
chage常见的选项包括以下几个。
(1)-l:列出用户的信息。
[root@op ~]# chage -l tom
最近一次密码修改时间					:12月 01, 2023
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7
[root@op ~]# 
(2)-d:用于更改最近一次修改密码的日期
(3)E:设置此账户什么时候过期
(4)-E -l:设置为永不过期。
(5)-E l:设置为立即过期。
(6)-M:最大使用天数,过了这个天数还没有修改密码,账户将被锁定。
(7)-m:最小使用天数,两次修改密码的间隔不得低于这个天数,不能今天改了明天再
改回去。
(8)-W:达到最大使用天数之前,提前几天警告。如同房贷,提前一周短信通知用户银
行卡余额要足够。
(9)-I:达到最大使用天数之后还没有修改密码,不会立即锁定账户,而是会给几天的缓
冲期,但是在缓冲期内不管何时登录系统,都会强迫你修改密码。如果在缓冲期内也没有修
改密码,则会锁定账户。
8.4 用户授权
前面讲了普通用户很多时候权限是不够的
[jjj@op ~]$ mount /dev/cdrom /mnt/
mount: 只有 root 能执行该操作
[jjj@op ~]$ 
首先查看本机的主机名,命令如下。
[root@op ~]# hostname
op
到/etc/sudoers.d下随便创建一个文件,建议使用用户名作为文件名(不过文件名可以随
便取),这样比较方便看出来是对哪个用户授权的。假设现在对blab用户授权,则创建文
件/etc/sudoers.d/blab,文件中的格式如下。
userX 主机名 Z=(userY) 命令1,命令2,命令3,...
这里表明授权用户userX在主机名Z这台主机上有权限执行命令1,命令2,命令3…。
需要注意的是,这里主机名要写本机的主机名,不要写错了。为了防止写错,可以把主机
名写成ALL。
userX ALL=(userY) 命令1,命令2,命令3,...
假设现在授权 lduan用户在本机能以root身份使用mount命令
[root@op sudoers.d]# cat /etc/sudoers.d/jjj 
jjj op=(root) /bin/mount
[root@op sudoers.d]# 
用户要是想执行sudo授权过的命令,则命令前面要加上 sudo。
在另外一个终端中执行mount命令,命令如下。
[jjj@op ~]$ sudo mount /dev/cdrom /mnt/

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] jjj 的密码:
mount: /mnt: WARNING: device write-protected, mounted read-only.
[jjj@op ~]$ 

你可能感兴趣的:(linux,linux,运维,服务器)