IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux使用命令行工具管理用户和组 -> 正文阅读

[系统运维]Linux使用命令行工具管理用户和组


一、管理用户账户

1.查看用户账户

Linux没有直接查看用户列表的命令,但是可以查看用户配置文件/etc/passwd用文本编辑器打开去搜索或者管道操作grep命令查找。

Linux用户账户及其相关信息除了密码均放在/etc/passwd配置文件中,因为所有用户都对这个文件有读取权限,所以密码在这里是不可见的(保存在/etc/shadow文件中)。(很有趣,文件名叫passwd偏偏没有passwd)

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/noloqin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
zxp:x:1000:1000:zxp,,,:/home/zxp:/bin/bash
guest-mCF3IT:x:116:126.Guest,,,:/tmp/guest-mCF3IT:/bin/bash
zhang:x:1001:1001 :zhang,,,:/home/ zhang:/bin/bash

该文件中一行定义一个用户账户, 每行均由7个字段构成,各字段值之间用冒号分隔,每个字段均标识该账户某方面的信息,基本格式如下:

账户名:密码:UID:GID:注释:主目录:Shell

各字段说明如下:
●账户名是用户名,又称登录名。最长不超过32个字符,可使用下画线和连字符。
●密码使用x表示,因为passwd文件不保存密码信息。
●UID是用户账户的编号。用户账户唯一标识,root的UID为0,系统账户UID为1~499还包括65534。
●GID用于标识用户所属的默认组。组账户唯一标识,超级组名root的GID0。系统组由Linux系统本身或应用程序使用GID范围为1~499。
●注释可以是用户全名或其他说明信息(如电话)。
●主目录是用户登录后首次进入的目录,这里必须使用绝对路径。
●Shell 是用户登录后所使用的一个命令行界面。Ubuntu默认使用的是/bin/bash如果该字段的值为空,则表示使用bin/bash。如果要禁止用户账户登录Linux只描将该段设置为/sbin/nologin即可。如,对于系统账户ftp来说,般只允许它登陆和访问FTP服务器,并不允许它登录Linux操作系统。如果临时用某个账户,可以在passwd文件中该账户记录行前加星号(*)。

例如:zxp@Linux:~$ cat /etc/passwd | grep zhang 
结果为:zhang:x:1001:1001 :zhang,,,:/home/ zhang:/bin/bash

2.添加用户账户

在Ubuntu中添加用户可使用Linux通用命令useradd,其基本用法如下:

useradd [选项] <用户名>

该命令的选项较多例如:

  • -d用于指定用户主目录
  • -g用于指定该用户所属主要组(名称或ID均可)
  • -G用于指定用户所属其他组列表,各组之间用逗号分隔
  • -r指定创建一个系统账户,建立系统账户时不会建立主目录,其UID也会有限制
  • -s指定用户登录时所使用的Shell默认为/bin/bash
  • -u 指定新用户的UID。
    对于没有指定上述选项的情况,系统将根据etc/default/useradd配置文件中的定义为新建用户账户提供默认值,如是否创建用户私有目录等。Linux还利用/etc/skel/目录为新用户初始化主目录。/etc/skel目录一般是存放用户启动文件的目录,这个目录由root权限控制,当管理员添加用户时,这个目录下的文件自动复制到新添加的用户的家目录下; /etc/skel 目录下的文件都是隐藏文件,也就是类似.file 格式的;可通过修改、添加、删除/ete/skel 目录下的文件,来为用户提供一个统一、标准的、默认的用户环境。

下面是一个创建用户账户的简单例子,在创建一个名为wang的用户账户的同时,创建并指定主目录home/wang,创建私有用户组wang,将登录Shell指定为/bin/bash,自动赋予一个UID。

zxp@LinuxPC1:~$ sudo useradd wang
[sudo] password for zxp:
zxp@LinuxPC1:~$ cat /etc/passwd | grep wang
wang:x:1004:1004::/home/ wang:

默认情况下创建用户账户的同时也会建立一个与用户名同名的组账户,该组作为用户的主组(祖祖,哈哈哈)(默认组)。
useradd -D用于显示或默认的useradd配置,也就是etc/default/useradd文件中的设置参数。下面的例子中添加了:

zxp@LinuxPC1:~$ useradd -D
GROUP=100
HOME= /home  //把用户的主目录建在/home中
INACTIVE=-1  //是否启用账户过期停权,-1表示不启用
EXPIRE=  //账户终止日期,不设置表示不启用
SHELL=/bin/sh  //所用SHELL的类型
SKEL=/etc/skel  //默认添加用户的目录默认文件存放位置,添加用户时用户主目录下的文件都是从该目录中复制过去的
CREATE MAIL SPOOL=no

Ubuntu还特别提供个adduser命令用于创建用户账户,是以交互对话的方式执行的命令,创建出来的是完整的可登录的。
adduser与useradd的区别

3.管理用户账户密码

创建的用户如果没有设置密码,其将处于锁定状态不能登录系统。在/etc/shadow文件中查看到的密码部分为!(shadow文件也是每行定义和保存一-个账户的相关信息。每行均由9个字段构成,基本格式如下:

账户名:密码:最近一次修改:最短有效期:最长有效期:过期前警告期:过期日期:禁用:保留用于未来扩展

)可以使用passwd 选项 用户名为用户设置密码zxp@Linux:~$ sudo passwd wang

passwd -l 用户名可以锁定用户,使其不能登录系统
passwd -u 用户名可以解除锁定

passwd -d 用户名可以删除密码。删除后当然就不能登陆啦,除非重新设置一个。

passwd -S 用户名可以查看某个账户的当前状态

4.修改用户账户

usermod 选项 用户名大部分和useradd命令一样用法一样。
有几个不一样的:
useradd -l 新用户名 原用户名
useradd -L 用户名,锁定账户,临时禁止改用户登录,-U解除锁定

chfn 选项 用户名更改用户个人信息,-f全名,-h家庭电话,-o办公地址

5.删除用户账户

userdel -r 用户名

如果使用选项-r,则在删除该账户的同时,一并删除该账户对应的主目录和邮件目录。注意userdel不允许删除正在使用(已经登录)的用户账户。

另一个用户删除命令deluser 在Ubuntu中使用较多。其中选项-remove-home表示同时删除用户的主目录和邮箱; -remove-all-files 表示删除用户拥有的所有文件; -backup 表示删除前将文件备份,-backup-to 目录指定备份的目标目录(默认是当前目录); -system 表示只有当该用户是系统用户时才删除。

二、管理组账户

1.创建组账户

groupadd [选项] 组名

-g可自行指定组的GID。
-r则创建系统组,其GID值小于500;若不带此选项,则创建普通组。
当然这个也能倒过来addgroup命令用于创建组账户,该命令执行过程中可提供交互对话。添加一个普通用户组的语法格式如下:

addgroup -gid ID 组名

添加一个管理员用户组的语法格式如下:

addgroup -system -gid 组ID 组名

2.修改组账户

groupmod -g GID -n 新组名 组名

3.删除组账户

groupdel 组名要删除的组不能是某个用户账户的主组,否则将无法删除;若要删除,则应先删除
该组的成员账户,然后再删除组。

另一个组删除命令delgroup在Ubuntu中使用较多。其中选项-system 表示只有当该
组是系统用户组时才删除,-only-if-empty表示只有当该用户组中无成员时才删除。

4.管理组成员

groups命令用于显示某用户所属的全部组,如果没有指定用户名则默认为当前登录用
例如:

~$ groups
ZXP adm cdrom sudo dip plugdev lpadmin sambashare
~$ groups wang
wang : wang

要查看某个组有哪些组成员,需要查看/etc/group配置文件,其每个条目的最后字是组成员用户列表。

可以使用命令gpasswd将用户添加到指定的组,使其成为该组的成员gpasswd --a 用户名 组名
将某用户从组中删除gpasswd --d 用户名 组名
将若干用户置为组成员(添加到组中)gpasswd --M 用户名,用户名... 组名
另外,用户添加到组中从组中删除:adduser 用户名 组名 deluser 用户名 组名


参考书目《Ubuntu Linux 操作系统》

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 17:05:23  更:2021-08-12 17:06:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 13:41:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码