linux命令之 用户和群组

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 一、保存用户信息的文件 1 /etc/passwd root:x:0:0:root:/root:/bin/bash pwftp:x:500:500::/alidata/www/wwwroot/:/sbin/nologin apache:x:48:48:Apache:/var/www:...

一、保存用户信息的文件

  1. 1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
pwftp:x:500:500::/alidata/www/wwwroot/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
mysql:x:501:400::/home/mysql:/sbin/nologin

一共7项,都用:分隔

1 用户名  
2 密码 真正的密文保存在/etc/shadow中
3 UID 用户id
4 GID 组id
5 账户信息 这个账户有什么样的意义
6 家目录 在这个目录中,用户拥有全部的权限
7 shell类型 /sbin/nologin 非登录用户  
/bin/bash   一般用户使用的shell
/bin/false 无法登录

 

2. 新增用户

      useradd [-u UID] [-g GID] [-d HOME] [-mM]  [-s shell]  username

案例:
useradd –u  500 –g 500 –d /home/pwftp  -s /sbin/nologin  pwftp
建立了一个用户id为500,组id为500的用户,用户名pwftp,主目录/home/pwftp,
使用的/sbin/nologin这个shell是不可以登录的.
如果不想系统自动创建mysql用户家目录/home/mysql,则要使用-M参数

3. 删除用户

      userdel 用户名

案例:
userdel mysql
删掉mysql这个用户.
加入mysql用户组里只存在mysql这一个用户的话,这个组也会被同时删掉
如果mysql登录状态的,那么得等它登出了再删除


[root @test /root]# userdel testing  <==只有砍掉 /etc/passwd 与 /etc/shadow 的该账号内容;
[root @test /root]# userdel -r testing<==连该账号的 /home/testing 与 /var/spool/mail/testing 都砍掉!

这个指令下达的时候要小心了!通常我们要移除一个账号的时候,你可以手动的将 /etc/passwd 与 /etc/shadow 里头的该账号取消即可!一般而言,如果该账号只是『暂时不启用』的话,那么将 /etc/shadow 里头最后倒数一个字段设定为 0 就可以让该账号无法使用,但是所有跟该账号相关的数据都会留下来!使用 userdel 的时机通常是『你真的确定不要让该用户在主机上面使用任何数据了!』

停用一个账号:

#vi /etc/shadow
/pwftp
  找到用户所在行
shift+a  移动到本行的行尾并编辑状态 做如下的修改:
pwftp:$6$fkOSovyP$FDrG1XFhNOvy.ZnsDhrbN7Jnj/Aw1rmN2T8UewW.dcS3nrKbbkRTl.JP4/fh/UFXZ.5Jq61WiLwLYQDssUpbv1:16367:0:99999:7::0:
再次使用pwftp用户登录时,得到的提示如下图:
image


 

4. 修改用户

      usermod -参数  参数值  用户名

usermod –s /bin/bash  mysql
修改mysql用户的shell为bash,这样mysql也能登陆了
其实吧,如果要求改用户的家目录,shell,或者组信息,还是直接修改/etc/passwd文件来的简单直接。

 

[root @test /root]# useradd testing  <==直接以默认的数据建立一个名为 testing 的账号
[root @test /root]# useradd -u 720 -g 100 -M -s /bin/bash testing   <==以自己的设定建立账号

这个指令影响/使用的文件可多了呢,都有以下这些:

/etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/skel /etc/default/useradd /etc/login.defs

5. 建立预设的账号:

      建立账号时,如果没有特殊的限定,通常我们只使用 『 useradd username 』就可以建立一个名为username的账号了!

     不过你知道预设账号的基本设定吗?嘿嘿嘿嘿!!基本设定就在/etc/default/useradd 和/etc/login.defs 这两个档案中!

在 login.defs 里头有点像底下这样:

MAIL_DIR        /var/spool/mail  <==邮件默认目录摆放处
PASS_MAX_DAYS   99999           <==密码需要变更的时间
PASS_MIN_DAYS   0            <==密码多久需要变更
PASS_MIN_LEN    5            <==密码的最小长度(这个可以改大一些吧!)
PASS_WARN_AGE   7            <==密码快要失效之前几天发警告讯息?
UID_MIN                   500    <==预设帐号最小起算的 UID 数目(最小为 500 )
UID_MAX                 60000    <==最大的 UID 限制
GID_MIN                   500    <==GID 限制
GID_MAX                 60000    <==GID 限制
CREATE_HOME     yes            <==是否建立家目录,默认是要建立家目录(若为 mail server 可以取消此项目)

几乎可以设定的都在这里设定了!所以需要了解一下这个档案!另外,如果你是专门开启 mail server 的,那么由于使用者账号不需要登入主机,

所以也就不需要给予家目录,这个时候最后一项 GREATE_HOME 或者可以设定为 no !此外,当你以默认的数据建立账号时,该账号的 UID 将会取目前在

/etc/passwd 当中『最大的(其实是小于 60000)』那一个 UID + 1 即是预设帐号的 UID 啰!

 

而至于 useradd 内容则为:

GROUP=100      <==预设的使用者群组为 100 ,查看一下 /etc/group 时,这个组名为 users 呢!
HOME=/home     <==默认用户的家目录建立的目录
INACTIVE=-1    <==是否不启动,设定为 -1 自然就是启动啦!
EXPIRE=        <==是否需要设定『死亡』时间?如果你希望该用户在期限到之后就不许登入,此项可以设定天数。
SHELL=/bin/bash <==预设的 Shell 为何?
SKEL=/etc/skel <==用户家目录的内容!

在这个项目中,最需要了解的就是 SKEL 啦!当你建立一个名为 testing 的账号时,默认的家目录会是『 /home/testing 』这个目录,

而这个目录的内容就是由 /etc/skel 所 copy 过去的!所以『当你想要让用户的默认家目录内容更动时,可以直接将要更动的数据写在 /etc/skel 当中!』

6. 以自己的条件建立账号:

如果要以自己的条件建立账号的时候,一般我都是喜欢手动的增加啦!

不然就是先以上面的那一个例子增加一个账号之后,在去手动修改 /etc/passwd 等等的档案!

 

二、保存用户密码的文件

1. /etc/shadow

1 账户名  
2 密码  
3 上次密码修改日期  
4 密码不可被更改的天数  
5 密码需要被变更的天数  
6 密码需要被变更前的警告期限  
7 账号失效期限  
8 账号取消日期 设为<1970到系统当前日期的数字时,表示账号已经取消,则该不能使用。
9 保留  

三、保存群组信息的文件

1.  /etc/group

  • 这个档案可以让你直接将账号所要支持的群组加进来!例如你有一个账号名称为 myaccount ,你想要让这个账号可以支持 root 这个群组,则你可以直接在 /etc/group 里面加入呢!很方便,不需要动用的指令呦!

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon

1 2 3 4
组名 群组密码 群组 ID (GID)
  1. 支持的账号名称

四、保存群组密码的文件

1. /etc/gshadow

root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm
adm:::root,adm,daemon

 

 

五、增加使用者的一般步骤:

新增使用者的时候,如果该使用者所属的群组不存在,则得(1)先新增群组;

然后(2)再新增使用者账号。当然,如果要删除群组时,则必须要反过来,先删除使用者才能删除群组!这点请大家留意啰!

 

更详细的教程请访问  鸟哥的linux私房菜   http://u2l.info/3iltdg

开始做,坚持做,重复做
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
412 1
二、Linux文本处理与文件操作核心命令
|
2月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
289 137
|
2月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
661 57
|
1月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
372 2
|
2月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
257 0
Linux内存问题排查命令详解
|
2月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
260 16
|
3月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
510 0
|
3月前
|
安全 Linux Shell
Linux系统中sudo命令的高效运用技巧。
用户可以通过sudo -l来列出自己目前可执行的命令列表,这有助于用户了解自己的权限范围。
176 0
|
3月前
|
监控 Linux Shell
linux命令
常用 Linux 命令汇总
|
4月前
|
Linux C++
每天一个linux命令(8):cp 命令
cp 命令是 Linux 中用于复制文件或目录的命令。它的名字来源于英文单词 copy。这个命令非常常用,特别是在需要备份文件或创建文件副本时。
263 0
下一篇
oss云网关配置