Linux 用户及组相关命令

与用户相关的配置文件:/etc/passwd: #用户的配置文件, 保存用户账户的基本信息
/etc/shadow #用户影子口令文件

一、用户帐号文件——passwd

1.”/etc/passwd”文件是UNIX安全的关键文件之一。该文件用于用户登录时效验用户的登录名、加密的口令数据项、用户ID(UID)、默认的用户组ID(GID)、用户信息、用户主目录及登录后使用的shell。

2.”/etc/passwd”文件的每一行保存一个用户的资料,而用户数据按域以冒号” :”分隔。格式如下

username:password:uid:gid:userinfo:home:shell

Linux 用户及组相关命令

下面是一个实际用户的例子。

user1:x:500:500: user1:/home/user1:/bin/bash

那么该用户的基本信息如下所示。

1.登录名:user1。

2.加密的口令表示:x。

3.UID:500。

4.GID:500。

5.用户信息:user1.

6.用户主目录:”/home/user1″。

7.登录后执行的shell:”/bin/bash”。

//任何拥有0值UID的用户都具有root用户访问权限。

知识扩展

与用户、组账户信息相关的文件

存放用户信息:

/etc/passwd
/etc/shadow存放组信息:
/etc/group
/etc/gshadow

useradd 添加用户

当使用useradd命令不加参数选项,后面直接跟所添加的用户名时,系统首先会读取配置文件/etc/login.defs和/etc/default/useradd文件中所配置的信息建立用户的家目录,并复制/etc/skel中的所有文件(包括隐藏的环境配置文件)到新用户的家目录中。

-u: 指定 UID 标记号。这个值是唯一的,除非用-o选项。数字不可为负值
-d: 指定宿主目录,缺省为 /home/用户名
-e: 指定帐号失效时间
-f: 账户过期几天后永久停权。
-g: 指定所属的基本组(组名或GID)
-G: 指定所属的附加组(组名或GID)
-m: 用户目录如不存在则自动建立。
-M: 不为用户建立并初始化宿主目录。优先于/etc/login.defs文件的设定。
-n: 默认情况下,用户的用户组和用户的名称会相同,如果命令加了-n参数,就不会生成和用户同名的用户组
-r: 用来建立系统账户。系统账户的UID会比定义在/etc/login.defs的UID_MIN来的小。
-s: 指定用户的登录Shell

passwd 设置密码

普通用户和超级用户都可以运行passwd命令,但普通用户只能更改自身的用户密码。超级用户则可以设置或修改所有用户的密码

当直接passwd命令后面不接任何参数或用户名时,则表示修改当前登陆用户的密码

-d    清空密码,仅root能操作  -f  强制操作,仅root能操作  -k  保留即将过期的用户在期满后仍能使用
    -l    锁定用户账户;锁定用户无权更改其密码,仅root能操作
    -S    查看用户账户的状态
    -u    解锁用户账户;仅root能操作
    --stdin    从标准输入取密码

d:查看用户的帐号属性信息

-u:只看UID
    -g:只看gid
    -G:只看GID
    -n:看名字,与其他选项连用

userdel 删除账户

-r    连同主目录一起删除
-f:强制删除用户,即使用户当前已登录

添加组账号groupadd命令

格式:groupadd [-g GID] 组名

选项:

-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:添加系统组,低于499系统账号。

删除用户组groupdel命令

格式:groupdel 组名
删除的目标组不能是用户的基本组

gpasswd命令 管理组

语法:

格式:gpasswd [选项] 组名

选项:

-A    定义组管理员列表
    -a    添加组成员,每次只能加一个
    -d    删除组成员,每次只能删一个
    -M    定义组成员列表,可设置多个,用","分开——定义的组成员必须是已存在用户的
    -r    移除密码

查看用户的组信息

groups 命令

格式:groups [用户名]

gpasswd 添加或删除组成员

gpaswd 选项 组名 -a 添加组成员 -d 删除组成员

groupmod:更改群组和名称

-g GID
    -n GRPNAME

chmod 修改文件权限

u g o a{+ – =} 文件

chown 修改文件所有者 (注意切换到root用户)

chown 用户名 文件

chgrp 修改文件所属组

chgrp 组名 文件

修改用户账号的属性

语法:

格式:usermod [选项] 组名 用户名   把某个用户添加到某个组里面
usermod -l newuser1 newuser    修改newuser的用户名为newuser1

常用命令选项:

c:指定注释信息
-d -m:-d一般跟-m使用,既指定新的家目录位置,又移动其此前的文件至新的家目录当中
 -e:指定账号失效时间
-g:指定所属的基本组(组名或GID)
-a -G GID:不使用-a选项,会覆盖此前的附加组;
-l:更改用户账号的登陆名称
 -L:锁定用户账号
-s:指定用户登录Shell
-u:指定UID标志号
-U:解锁用户账号

修改用户密码有效期:chage

语法:

格式:chage [选项] 用户名

常用命令选项:

-d:将最近一次密码设置时间设置为"最近时间" -E:指定账号过期时间,YYYY-MM-DD
 -I:指定当密码失效后多少天锁定账号;
 -l:列出密码有效期信息
 -m:指定密码的最小天数
 -M:指定密码的最大天数 -W:将过期警告天数设置为"警告天数"

Original: https://www.cnblogs.com/zmn0104/p/14052298.html
Author: Sunshine0104
Title: Linux 用户及组相关命令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/580658/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • requested upstream branch ‘origin/master’ does not exist

    本地的commit 本地仓库有文件,远程仓库也有文件,正确姿势: 1,git remote add origin 远程仓库地址 2,git pull origin master &…

    Java 2023年6月13日
    069
  • InnoDB体系架构

    后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据,此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下InnoDB能恢复到正常运行…

    Java 2023年6月8日
    068
  • 在工作中离屏真的不重要吗,代码优化就真的不考虑0.1%的离屏问题吗,懂得离屏渲染原理,让程序员的路走的更长

    GPU 渲染机制:CPU计算好显示内容提交到GPU,GPU渲染完成后将渲染结果放入帧缓冲区frame buffer,随后视频控制器会按照VSync信号逐行读取帧缓冲区的数据,经过可…

    Java 2023年6月16日
    094
  • 工厂模式

    工厂模式,是java中最常用的设计模式。这类设计模式,属于创建型设计模式,它提供了一种创建对象的最佳方式。 我们创建对象不用暴露创建的逻辑,只需要使用这个接口,提供必要的信息就能从…

    Java 2023年6月9日
    082
  • 图解:HTTP 范围请求,助力断点续传、多线程下载的核心原理

    题图:by Charles Loyer 一、序 Hi,大家好,我是承香墨影! HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报…

    Java 2023年5月30日
    061
  • Java 运行时数据区

    Java 运行时数据区 堆 线程栈 本地方法栈 方法区 程序计数器 我们的java文&amp…

    Java 2023年6月7日
    082
  • 基于Redis实现延时队列服务

    背景 在业务发展过程中,会出现一些需要延时处理的场景,比如: a.订单下单之后超过30分钟用户未支付,需要取消订单b.订单一些评论,如果48h用户未对商家评论,系统会自动产生一条默…

    Java 2023年6月7日
    060
  • MySQL字符集修改

    MySQL5.7中,命令行操作sql乱码 或者在mysql可视化工具存储中文时乱码问题: 查看编码命令 show variables like ‘character_%…

    Java 2023年6月5日
    081
  • Apache Flink系列-⑤应用程序构建块

    应用程序构建块 有状态函数为构建事件驱动的应用程序提供了一个框架。这里,我们将解释有状态函数体系结构的重要方面。 事件入口 有状态函数应用程序直接位于事件驱动的空间中,因此自然要从…

    Java 2023年6月5日
    083
  • 以Integer类型传参值不变来理解Java值传参

    最近在写代码的时候出了一个错误,由于对值引用理解的不深,将Integer传入方法中修改,以为传入后直接修改Integer中的值就不用写返回值接收了,虽然很快发现了问题,但还是来总结…

    Java 2023年5月29日
    080
  • 多线程编程(2) – 一切从 CreateThread 开始

    产生一个线程 产生一个线程,是以 CreateThread() 作为一切行动的开始。此函数的原型如下: function CreateThread( lpThreadAttribu…

    Java 2023年5月30日
    063
  • 04-Eureka服务注册与发现

    1、介绍 2、快速开始 父工程的maven 配置文件,如下 4.0.0 com.mindasoft spring-cloud-eureka-parent 0.0.1-SNAPSHO…

    Java 2023年6月7日
    089
  • 千万级别的表分页查询非常慢,怎么办?

    一、问题复现 在实际的软件系统开发过程中,随着使用的用户群体越来越多,表数据也会随着时间的推移,单表的数据量会越来越大。 以订单表为例,假如每天的订单量在 4 万左右,那么一个月的…

    Java 2023年6月9日
    059
  • Docker 安装 MySQL、Redis

    1 Docker 中安装 Redis 1.1 创建目录 在硬盘上创建 redis 的数据目录: mkdir -p /Users/yygnb/dockerMe/redis/data …

    Java 2023年6月16日
    075
  • Git常用命令总结

    Git常用命令总结 Git日志 git log git log –all 查看所有分支的log git log –all –graph 图形化展…

    Java 2023年6月6日
    085
  • nginx单点问题

    只配置一个nginx会有单点问题,怎么解决? nginx的单点问题就是如果nginx挂了那么整个后边的服务将不可访问,失去了高可用性,可利用nginx、keepalived、lvs…

    Java 2023年6月8日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球