当前位置: 首页 > article >正文

Linux 用户管理

1. 用户账号简介

  • 作用: 1.可以登陆操作系统 2.不同的用户具备不同的权限
  • 唯一标识:UID(编号从0开始的编号,默认最大60000)
  • 管理员root的UID:永远为0
  • 普通用户的UID:默认从1000开始
  • 系统用户的UID:1~999
    [root@localhost ~]# head -1  /etc/passwd   #显示文件第一行
    root:x:0:0:root:/root:/bin/bash     
    用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器

1.1 useradd

        useradd命令 用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

格式:

useradd [选项]... 用户名

选项:

-u:指定 用户UID
-d:指定宿主目录(家目录),默认为 /home/用户名
-G:指定所属的附加组,-g指定基本组
-s:指定用户的登录解释器,默认为/bin/bash
-u:指定 UID 编号

 例:

#指定UID创建用户
useradd  -u  1500  nsd02 
#查看用户信息
grep   nsd02   /etc/passwd 

# 禁止用户nsd12登录
# /sbin/nologin:禁止用户登录操作系统
useradd  -s  /sbin/nologin   nsd12

1.2 usermod

usermod命令 用于修改用户的基本信息

格式:

usermod [选项]... 用户名

选项:

-l:更改用户帐号的登录名称
-u:用户id
-d:家目录路径
-s:登录解释器
-G:附加组 #重置附加组
-l:更改用户帐号的登录名称
-u:用户id
-s:登录解释器

例:

#修改用户的解释器程序
usermod  -s   /sbin/nologin  stu13

#修改用户名字
usermod  -l  stu13   nsd13

#将用户原有的家目录进行移动,并且设置相应的权限
usermod   -md  /mnt/abc16   nsd16

1.3 passwd

用于让用户可以更改自己的密码

格式:

passwd [选项]... 用户名

选项:

--stdin:从标准输入(比如管道)取密码

例:

# 非交互式设置密码
echo  redhat  |  passwd  --stdin   nsd18

# 交互式设置密码
passwd   nsd18      #交互式设置
更改用户 nsd18的密码 。
新的 密码:                             #输入新密码
无效的密码: 密码少于 8 个字符
重新输入新的 密码:                #重新输入新密码
passwd:所有的身份验证令牌已经成功更新。

注意: 

/etc/shadow,保存密码字串/有效期等信息 

每个用户记录一行,以:分割为9个字段
[root@localhost ~]# grep nsd01 /etc/shadow
nsd01:$6$NVe937Nd$B0n94XrpQ.LipQHTpYh0iV/M4jCLdccfHxzRLprdxDzwk8WDDh/TzdTfh8lA9y9WKJ.8Ls/l5.w/1W.nV6CFX/:18481:0:99999:7:::
# 上一次修改密码的时间:自1970-1-1到达上一次修改密码的时间,所经历的天数
# 字段1:用户帐号的名称
# 字段2:加密后的密码字符串
# 字段3:上次修改密码的时间
# 字段4:密码的最短有效天数,默认0
# 字段5:密码的最长有效天数,默认99999
# 字段6:密码过期前的警告天数,默认7
# 字段7:密码过期后多少天禁用此用户账号
# 字段8:帐号失效时间,默认值为空
# 字段9:保留字段(未使用)

1.4 userdel

        userdel命令 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。

格式:

userdel [-r] 用户名

选项:

-r 选项,家目录/用户邮件也一并删除

例:

userdel  -r  nsd18  #连同家目录一并删除
userdel  nsd20  #不删除家目录,只删除用户信息

2. 组账号简介

  • 作用: 方便管理用户
  • 唯一标识:GID(编号从0开始的编号,默认最大60000)
  • 原则:Linux一个用户必须至少属于一个组
  • 组账户的分类:
    • 基本组:一般情况与用户同名,一个用户必须有基本组,基本组只能有一个
    • 附加组(从属组):一个用户可以有多个附加组,也可以没有附加组 
  • /etc/group,保存组帐号的基本信息
  • 每个组记录一行,以:分割为4个字段
  • [root@localhost ~]# grep stugrp /etc/group
    stugrp:x:1504:nsd06
    组名:组密码占位符:组的GID:组成员列表

2.1 gpasswd

gpasswd命令 是Linux下工作组文件/etc/group/etc/gshadow管理工具。

格式:

gpasswd [选项]... 组名

选项:

-a:添加组成员,每次只能加一个
-d: 删除组成员,每次只能删一个
-M:定义(重置)组成员用户列表,可设置多个用户

例:

#添加用户kaka到tarena组
gpasswd  -a   kaka   tarena    

#将nb用户从tarena组中删除
gpasswd   -d   nb  tarena

#设置组管理员
gpasswd  -A  nb  tarena

注意:

/etc/gshadow:组的管理信息配置文件

[root@localhost ~]# grep   tarena  /etc/gshadow
tarena:!:nb:     
组名:密码加密字符串:组的管理员列表:组成员列表
[root@localhost /]# gpasswd   -A   'nb,kenji'  tarena  #设置多个组管理员
[root@localhost /]# grep  tarena  /etc/gshadow
[root@localhost /]# gpasswd   -A   ''   tarena   #删除所有的组管理员
[root@localhost /]# grep  tarena   /etc/gshadow

3. 用户配置文件

  • /etc/passwd:存放用户基本信息配置文件
[root@localhost ~]# head -1  /etc/passwd   #显示文件第一行
root:x:0:0:root:/root:/bin/bash     
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器

3.1 用户初始配置文件 

主要的初始配置文件:

  • ~/.bashrc:每次进入新的Bash环境时执行(开启新的终端)
#定义永久别名
[root@localhost ~]# vim   /root/.bashrc  
……
alias  hn='hostname'
……
开启新的终端进行测试:
[root@localhost ~]# hn

/etc/bashrc:全局配置文件,影响全体用户 (开启新的终端)

[root@localhost ~]# vim   /etc/bashrc 
……
alias    myls='ls   -ld'     
……
#新开一个终端验证
[root@localhost ~]# useradd  nsd21
[root@localhost ~]# su  -  nsd21   #相当于开启新的终端
[nsd21@localhost ~]$ myls  /opt
[nsd21@localhost ~]$ exit
登出
[root@localhost ~]#

 3.2 用户与组重要的配置文件

  1. /etc/passwd: 用户基本信息配置文件

  2. /etc/shadow: 用户密码信息配置文件

  3. /etc/group: 组基本信息配置文件

  4. /etc/gshadow: 组管理信息配置文件

补充:

Linux系统执行useradd命令,会完成那些操作?

1.会在/etc/passwd增加一行信息

2.会在/etc/shadow增加一行信息

3.会在/home新增用户家目录

4.会在/var/spool/mail增加用户邮件文件

5.会在/etc/group增加一行组信息

6.会在/etc/gshadow增加一行组的管理信息


http://www.kler.cn/a/404334.html

相关文章:

  • 初始ArkUI
  • uniapp实现开发遇到过的问题(持续更新中....)
  • 网络训练中的检查点——保存和恢复训练状态
  • CSV文件数据导入hive
  • 爬取网易云音乐热歌榜:从入门到实战
  • 在k8s上部署Crunchy Postgres for Kubernetes
  • Python简介以及解释器安装(保姆级教学)
  • 一文解读数据仓库的分层逻辑和原理
  • 【Linux从青铜到王者】Linux进程间通信(一)——待完善
  • Python设计模式详解之1 —— 单例模式
  • 例题10-4 冒泡排序 字符串排序
  • Web3游戏先锋 Big Time Studios 重磅推出 $OL 通证,赋能 Open Loot 游戏平台
  • Centos 7 安装 Docker 最新版本
  • 「OpenCV交叉编译」ubuntu to arm64
  • 刘艳兵-DBA042-下述哪些文件是在CREATE DATABASE命令中创建的?
  • 无重复字符的最长子串习题分析
  • 机器翻译基础与模型 之三:基于自注意力的模型
  • 实验室管理智能化:Spring Boot技术实现
  • JavaEE 线程安全
  • 新版Python 3.13官方支持Android 5.0及以上版本:详细解读及开发指南
  • element ui table 每行不同状态
  • 攻防世界 Web新手练习区
  • scPair:隐式特征选择提高single-cell paired多模态分析
  • pdf文档动态插入文字水印,45度角,旋转倾斜,位于文档中央,多行水印可插入中文
  • zookeeper is not a recognized option--解决方案
  • 浅谈Python之Matplotlib库