Linux_用户管理

目录

用户分类

用户信息

账号信息格式:

密码信息格式:

组信息

组信息

组密码信息

用户操作

添加用户

创建用户参考文件:/etc/login.defs、/etc/skel/、/etc/default/useradd      

当用户的shell为:/sbin/nologin,可以在登陆时指定shell即可

查看用户

修改用户

删除用户

切换用户

临时提权操作

密码操作

修改密码

查看密码信息

锁密码,禁止用户登录

从stdin获取输入(仅root用户可用)

组操作

创建组

将用户添加/移除组

删除组


用户分类

Linux:多用户的操作系统,

1: 超级管理员:root

2:系统用户:类似MySql的用户

3:普通用户

Kernel 3.0:      

         UID=0:超级管理员

        0≤UID≤999:系统用户

        UID≥1000:普通用户

用户信息

UID:用来区分一个用户是什么类型的用户,且每个用户的UID都不同

普通用户的家目录在 ‘/home/’ 下 并以用户名 命名的目录

root用户的家目录在 ‘ /root/’

用户账号信息文件:/etc/passwd

用户密码信息文件:/etc/shadow

账号信息格式:

#每一行代表一个用户

root:x:0:0:root:/root:/bin/bash

# root:用户名
# x:用户的密码字段  密码字段全为x
# 0:用户的UID
# 0:用户所属主组的ID
# root:描述信息
# /root:用户的家目录
# /bin/bash:Shell类型。每个用户扽古或者切换后,获得一个Shell类型

密码信息格式:

root:$6.T1:18868:0:99999:7:3:365:

# root :用户名
# $6.T1:加密后的密码 HASH(!!:代表没设置密码)
# 18868:上次修改密码的时间(从1970年1月1日起,每过一天+1)
# 0    :最短密码期限,至少使用时间才能修改(0:随时可以修改)
# 99999:最长密码期限,必须在这个期限内修改密码,否则密码将过期
# 7    :密码告警期限,密码过期前7天提醒用户更改密码(0:不提醒)
# 3    :密码过期后的宽限天数,提示修改,密码仍可使用。超过宽限时间,在不改密码,账号就不能登录
# 365  :账号到期
#      :保留字段

组信息

        GID:唯一标识一个组

        一个用户可以属于多个组、只能有一个主组、可以有多个附加组

         组信息所在:‘/etc/group’

         组密码信息所在:‘/etc/gshadow’

组信息

root:x:0:
# 组名:
# 组密码信息(x代替
# 组ID
# 组成员信息(省略与自己同名,并以该组为主组的用户)

组密码信息

# 每个组占用一行

root:::
# root:组名
#     :组密码信息
#     :组管理员
#     :组成员(

用户操作

添加用户

#参数
# -c:用户的描述
# -d:指定家目录
# -g:指定主组
# -G:指定附加组
# -s:指定shell类型
# -u:指定UID

useradd USERNAME

#示例添加:
useradd -u 1520 -g PRI -G SUB -c "Amazing" -d /TEST -s /sbin/nologin GL

#查看passwd信息
GL:x:1520:1001:Amazing:/TEST:/sbin/nologin

创建用户参考文件:/etc/login.defs、/etc/skel/、/etc/default/useradd      

        1. 根据已存的最大ID,继续为新用户分配ID

        2. 创建用户所属的家目录,其中隐藏文件定义了该用户的特定环境变量

        3. 同时创建与该用户名同名的组名,并且该用户的主组就是此组

        4. 将 ‘/etc/skel/' 下的文件复制到新建的家目录下,并修改相应的权限

当用户的shell为:/sbin/nologin,可以在登陆时指定shell即可

su - GL -s /bin/bash

查看用户

id USER_NAME

修改用户

# -c:修改注释
# -d:修改家目录
# -g:修改主组
# -aG:添加附加组
# -s:修改Shell
# -a:添加,需要组合使用

usermod 

删除用户

# -r:连同相关文件都删除
userdel -r USER_NAME

#特例
#删除没有指定 ‘-r’,导致对应用户的家目录并未删除

#创建相同的用户时,需要执行:

#创建用户
useradd GL

#查看当前用户的UID
id GL

#将已存在的家目录进行UID重设定
chmod UID:UID /home/GL

切换用户

#第一种:完整登录
su - GL

#第二种:不完整登录
su GL

#不登陆用户,只是传递命令,返回到此终端显示
su - GL /bin/bash -c "/usr/bin/ll /home/GL

注意:

        root用户切换到其他用户,不需要提供密码

        普通用户切换到任意用户都需要提供密码       

        完整登录:用户会读取改用自己的环境变量文件

        不完整登录:会丢失用户所特有的环境变量

临时提权操作

        visudo配置文件:

visudo
%wheel  ALL=(ALL)       ALL

# wheel :用户名、组名、用户别名
# ALL   :从哪些机器登录<sudo>
# (ALL) :使用任何身份去执行后面定义的命令
# ALL   :sudo之后能干的事情(单个命令、命令别名)

#EXAMPLES

#指定用户名
GL    ALL=(ALL)    /usr/bin/fdisk

#指定组名
%GROUP_NAME    ALL=(ALL)    /usr/bin/fdisk

#指定别名
User_Alias LINUX=GL,LNB,WC
LINUX    ALL=(ALL)    /usr/bin/fdisk

#指定别名+别名
User_Alias HSD=GL,LNB,WC
Cmnd_Alias CLI=/usr/bin/fdisk,/usr/bin/mount
HSD    ALL=(ALL)    CLI

#取消临时提权需要输入密码
GL    ALL=(ALL)    NOPASSWD:ALL
# 普通用户临时使用root的权限
sudo fdisk -l /dev/sda

密码操作

修改密码

# 仅root可以指定USERNAME
# root改密码,可忽略密码规则
# root改密码,不需要提供当前密码
passwd USERNAME

# 其他用户只能修改自己的密码
# 还需要提供原密码
passwd

查看密码信息

passwd -S GL

锁密码,禁止用户登录

#锁定密码,禁止用户登录
passwd -l GL

#解除锁定,放行用户登录
passwd -u GL

从stdin获取输入(仅root用户可用)

#使用标准输入方式,为用户设置密码
echo mima | passwd --stdin GL

组操作

创建组

#创建组

groupadd GROUP_NAME

将用户添加/移除组

#将用户添加到组(附加组)
gpasswd -a USER_NAME GROUP_NAME

#批量将用户添加到组(附加组)
gpasswd -M USER_NAME1,USER_NAME2 GROUP_NAME

#将用户移除此组
gpasswd -d USER_NAME GROUP_NAME

删除组

groupdel GROUP_NAME

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值