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

6. linux shell命令(2)基本系统维护命令与用户管理

1. shell基本系统维护命令


1.1 man、passwd、su、echo命令的用法


获取联机帮助

  • man

    • 使用man命令可以找到特定的联机帮助页,并提供简短的命令说明。一般语法格式为:
      man commandname

    • 联机帮助页提供了指定命令commandname的相关信息,包括:名称、函数、语法以及可选参数描述等。无论帮助有多长,都遵循这个格式显示。在页面很多的情况下使用PageUp和PageDown键翻页。最后,使用“:q”退出帮助页面。

  • 通常联机帮助信息包括以下几个部分:

    • NAME:命令的名称
    • SYNOPSIS:命令的语法格式
    • DESCRIPTION:命令的一般描述以及用途
    • OPTIONS:描述命令所有的参数或选项
    • SEE ALSO:列出联机帮助页中与该命令直接相关或功能相近的其他命令
    • BUGS:解释命令或其输出中存在的任何已知的问题或缺陷
    • EXAMPLES:普通的用法示例
    • AUTHORS:联机帮助页以及命令的作者

基本系统维护命令

  • passwd
    • 出于系统安全考虑,Linux系统中的每一个帐号都必须同时具备用户名和密码。
    • 可以使用passwd命令,为已有账户重新修改用户口令。
    • 需要说明的是,超级用户root可以修改所有其他用户的口令,而普通用户只能修改自己的用户口令,如果确要修改超级用户或其他用户口令的话,需要具有超级用户的权限。
    • passwd命令的一般语法格式为:

passwd username

  • 单独使用passwd命令,意为修改当前用户自己的口令。下面命令实例用于修改用户自己的口令。
linux@ubuntu:~$ passwd
Changing password for linux      #修改当前用户口令
(current) UNIX password:        #用户输入旧口令
Enter new UNIX password:       #用户输入新口令
Retype new UNIX password:      #确认新口令
passwd:已成功更新密码

su

  • su命令用于临时改变用户身份,具有其他用户的权限。普通用户可以使用su命令临时具有超级用户的权限;超级用户也可以使用普通用户身份完成一些操作。当需要放弃当前用户身份,可以使用exit命令切换回来。su命令的一般语法格式为:

  • 选项“-c”表示执行一个命令后就结束;-m表示仍保留环境变量不变;-表示转换用户身份时,同时使用该用户的环境。

  • 单独使用su命令,默认为要转换为超级用户root。下面命令实例临时获取超级用户root的权限。可以从命令提示符中可以看出,“linux”用户使用su命令切换为root用户

linux@ubuntu:~$ su
Password:     #当前用户输入超级用户的口令
root@ubuntu:/home/linux#
  • echo
    • echo命令用于在标准输出——显示器上显示一段文字,一般起到提示作用。echo命令的一般语法格式为:
      echo [-n] information

    • 选项-n表示输出文字后不换行。提示信息字符串可以加引号,也可以不加。

linux@ubuntu:~$ echo   "Hello     everyone."    #输入信息字符串使用引号
Hello     everyone.
linux@ubuntu:~$ echo   ‘$PATH’    #严格的原样输出
$PATH.
linux@ubuntu:~$ echo    Hello     everyone.         #输入信息字符串不使用引号,字符串之间用一个空格隔开
Hello everyone.

1.2 date、clear、df、du命令的用法

  • date
    • date命令用于显示和设置系统日期和时间。date命令的一般语法格式为:
      date [-d | -s|-u ] datestr

    • 选项-s表示按照datestr日期显示格式设置日期;单独使用date命令,用于显示系统时钟中当前日期。时间的格式为:“hh:mm:ss”,日期格式为:“mm/dd/yy”。

linux@ubuntu:~$ date            #查看当前时间
2007年 09月 16日 星期日 18:44:45 CST
linux@ubuntu:~$ sudo  date  -s  1:19:18   #设置新时间,需要系统管理员权限
Password:
2007年 09月 16日 星期日 01:19:18 CST

clear

  • clear命令用于清除屏幕上的信息。清屏后,sell命令提示符移动到屏幕左上角。clear命令的一般语法格式为:

clear

由于shell命令是逐行执行,执行结果也将随即显示。因此,用户在使用命令终端窗口时,终端窗口会很快就会被字符占满。clear可以帮助清理一下窗口中杂乱的字符显示。


df

  • df命令用于查看磁盘空间的使用情况。查看磁盘空间是用户应当经常做的事情,因为谁也不希望看到根或/var分区在不经意间填满,以便及时清理。df命令的一般格式为:
    df [-a | -T | -h | -k ] Filesystem

其中,参数Filesystem表示物理文件系统。各选项的含义如表所示。

选项含义
-a显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc/sys
-T显示物理文件系统的文件格式类型
-h物理文件系统大小按兆字节为单位显示
-k物理文件系统大小按千字节为单位显示
-l仅列出本地文件系统
  • 从以下命令的执行结果可以看到,这台计算机只有一块硬盘(/dev/sda1),文件格式类型为Ext3,已经使用36%的存储空间。同时,可以发现计算机上还安装了CD-ROM(/dev/hdc)、USB存储器(/dev/sdb1)。其他分区均为专用的虚拟文件系统
linux@ubuntu:~$ df –T
文件系统    1K-块    已用        可用    已用%    挂载点
/dev/sda1    ext3     7850996  2664868   4787316   36%    /
varrun      tmpfs     255960       104     255856    1%     /var/run
varlock      tmpfs    255960         0     255960     0%     /var/lock
procbususb  usbfs    255960       84      255876    1%     /proc/bus/usb
udev        tmpfs    255960       84      255876    1%     /dev
devshm      tmpfs   255960        0      255960     0%     /dev/shm
lrm          tmpfs    255960   33788      222172    14%     /lib/modules/2.6.20-16-generic/volatile
/dev/hdc    iso9660   712946   712946          0    100%    /media/cdrom0
/dev/sdb1     vfat    249582    211602     37980     85%     /media/disk
  • du命令,列出目录和文件所使用的磁盘块数,每块占512个字节。
    • 常用参数:
    • -a :仅列出空闲的文件数
    • -h :列出磁盘的使用情况(KB)
    • -s :列出总的空闲空间(KB)
      • 例:
        • #du –h /etc


2. linux的用户管理


用户管理相关文件介绍与用户管理相关命令介绍

用户管理

  • 用户的属性
    • 用户名
    • 口令
    • 用户ID(UID)
    • 用户主目录(HOME)
    • 用户shell

/etc/passwd文件

  • /etc/passwd文件是系统能够识别的用户清单。用户登陆时,系统查询这个文件,确定用户的UID并验证用户口令
    • 登陆名
    • 经过加密的口令
    • UID
    • 默认的GID
    • 个人信息
    • 主目录
    • 登陆shell

/etc/group文件

  • 包含了UNIX组的名称和每个组中成员列表
  • 每一行代表一个组,包括4个字段:
    • 组名
    • 加密的口令
    • GID号
    • 成员列表,彼此用逗号隔开

在这里插入图片描述

这是 Linux 系统中 /etc/group 文件的内容示例。/etc/group 是系统用于存储用户组信息的核心配置文件,每一行对应一个用户组,格式为 组名:密码占位符:组ID(GID):组成员,各部分含义如下:

  • 组名:用户组的名称(如 rootdaemon 等)。
  • 密码占位符:通常用 x 表示(实际用户组密码存储在 /etc/gshadow 中)。
  • 组ID(GID):用户组的唯一标识编号(如 root 组的 GID 是 0,是系统最高权限组)。
  • 组成员:属于该组的用户列表(多个用户用逗号分隔,若为空则表示只有组名对应的默认用户属于该组)。

比如行 daemon:x:2:messagebus 表示:组名为 daemon,GID 是 2,用户 messagebus 属于 daemon 组。


添加用户

  • adduser
    • 语法:adduser
    • 实例:
      - # adduser newuser
      - 添加用户名为newuser的新用户

adduser配置文件

/etc/adduser.conf FIRST_UID=1000LAST_UID=29999USERS_GID=100DHOME=/homeDSHELL=/bin/bashSKEL=/etc/skel

SKEL模板

在 Linux 系统中,SKEL 模板(全称 skeleton,意为“骨架”)是用于统一新用户初始环境的核心机制,其本质是一个系统级目录(默认路径为 /etc/skel),存放着新用户家目录的“默认配置文件和目录”。

核心作用

当通过 useradd 等命令创建新用户时,系统会自动将 /etc/skel 目录下的所有文件(包括隐藏文件)和子目录复制到新用户的家目录(如 /home/新用户名)中。这样,新用户登录后就能直接获得预设的基础配置,无需手动创建常用文件/目录,保证了用户环境的一致性。

常见包含的文件/目录

/etc/skel 中的内容由系统默认或管理员自定义,通常包含以下类型的文件(多为隐藏文件,以 . 开头):

  • Shell 配置文件:如 .bashrc(bash 交互配置,含别名、环境变量等)、.bash_profile(登录时加载的配置)、.bash_logout(退出登录时执行的命令),确保新用户的 shell 环境有基础设置。
  • 用户目录:如 Documents(文档)、Downloads(下载)、Pictures(图片)等默认文件夹,规范用户的文件存储结构。
  • 其他工具配置:如 .vimrc(vim 编辑器配置)、.profile(通用登录配置,兼容多种 shell)等,根据系统预装工具不同而变化。

实际用途

系统管理员可通过修改 /etc/skel 目录的内容,统一新用户的初始环境

  • 例如,在 /etc/skel/.bashrc 中添加全局别名(如 alias ll='ls -l'),所有新用户都会继承这个别名;
  • 加入公司内部的欢迎信息(如 echo "Welcome to XXX Server"),新用户登录时会自动显示;
  • 预设常用的环境变量(如 export PATH=$PATH:/opt/tools),避免每个用户重复配置。

总结

SKEL 模板是 Linux 系统为新用户提供“标准化初始环境”的工具,通过 /etc/skel 目录实现配置的批量复制,既简化了用户创建流程,也方便管理员统一管理新用户的基础环境。



添加新用户的过程

  • 系统
    • 编辑passwd和shadow文件,定义用户帐号
    • 设置一个初始口令
    • 创建用户主目录,用chown和chmod命令改变主目录的属主和属性
  • 为用户所进行的步骤
    • 将默认的启动文件复制到用户主目录中
    • 设置用户的邮件主目录并建立邮件别名

设置初始口令

  • 使用passwd命令可以修改用户口令
  • root用户可以修改任何用户的口令
    • 语法:passwd [-k] [-l] [u] [-f] [-d] [-S] username
    • 使用方法:
      passwd username

修改用户属性

usermod
语法:usermod [-u uid [-o]] [-g group] [-G gropup,…][-d home [-m]] [-s shell] [-c comment][-l new_name] [-f inactive][-e expire][-p passwd] [-L|-U] name举例用户oldname改名为newname,注意要同时更改家目录: 
usermod  –d  /home/newname  –m  –l  newname  oldname

删除用户

  • deluser
    • 语法: deluser
    • 使用方法:
      • deluser --remove-home user1
    • 删除用户user1的同时删除用户的工作目录

添加用户组

  • addgroup
    • 语法: addgroup groupname

删除用户组

  • delgroup
    • 语法: delgroup groupname

  1. 用户相关的文件有哪些?
  2. 简述添加用户的过程。

用户相关的核心文件

Linux 系统中,用户和用户组的核心配置信息存储在以下文件中:

1. /etc/passwd(用户基本信息)
  • 内容:每行代表一个用户,包含 7 个字段,格式为 用户名:密码占位符:UID:GID:用户描述:家目录:登录 Shell
  • 关键字段
    • 用户名:登录时使用的名称(如 rootuser1)。
    • UID:用户唯一标识(0 为 root,1-999 为系统用户,1000+ 为普通用户)。
    • 家目录:用户默认工作目录(如 /home/user1)。
    • 登录 Shell:用户登录后使用的命令解释器(如 /bin/bash/sbin/nologin 表示禁止登录)。
2. /etc/shadow(用户密码信息)
  • 内容:每行代表一个用户的密码及有效期信息,包含 9 个字段,格式为 用户名:加密密码:密码最后修改时间:密码最短有效期:密码最长有效期:警告天数:宽限天数:账户过期时间:保留字段
  • 安全特性
    • 加密密码使用 SHA-512 算法存储,权限严格限制为仅 root 可读。
    • 可设置密码过期策略(如强制 90 天修改密码)。
3. /etc/group(用户组信息)
  • 内容:每行代表一个用户组,包含 4 个字段,格式为 组名:密码占位符:GID:组成员列表
  • 关键字段
    • GID:用户组唯一标识。
    • 组成员列表:属于该组的用户(多个用户用逗号分隔,如 user1,user2)。
4. /etc/gshadow(用户组密码信息)
  • 内容:存储用户组的密码及管理员信息,格式为 组名:加密密码:组管理员:组成员列表
  • 用途
    • 组密码允许非 root 用户通过 newgrp 命令临时切换到该组。
    • 组管理员可通过 gpasswd 命令管理组成员。
5. /etc/skel(新用户模板目录)
  • 内容:存放新用户家目录的默认配置文件(如 .bashrc.profile)和目录(如 DocumentsDownloads)。
  • 机制
    • 创建新用户时,系统自动将 /etc/skel 中的内容复制到用户家目录,确保初始环境标准化。
    • 管理员可自定义模板文件(如添加全局别名 alias ll='ls -l')。
6. 用户家目录(如 /home/用户名
  • 内容:用户个人文件、配置文件及工作目录。
  • 权限:默认权限为 700(仅用户可读、写、执行),由 umask 值控制。
7. 用户邮箱(如 /var/spool/mail/用户名
  • 内容:存储用户未读邮件的文件(需邮件服务支持)。
  • 创建:默认由 useradd 命令根据 /etc/login.defs 中的 MAIL_DIR 设置自动创建。

添加用户的完整过程

1. 创建用户账户

使用 useradd 命令创建用户,支持以下关键参数:

  • 基础命令

    sudo useradd -m -s /bin/bash -c "用户描述" username
    
    • -m:自动创建家目录并复制 /etc/skel 模板。
    • -s /bin/bash:指定登录 Shell(默认值可省略)。
    • -c "用户描述":添加用户备注(如 数据库管理员)。
  • 高级参数

    • -u UID:指定用户 ID(如 -u 1001)。
    • -g 组名:指定主组(如 -g developers)。
    • -G 组1,组2:指定附加组(如 -G docker,sudo)。
  • 示例

    sudo useradd -m -G sudo,developers -c "开发工程师" devuser
    
2. 设置用户密码

使用 passwd 命令为用户设置登录密码:

sudo passwd username
  • 交互流程
    • 输入新密码(不可见)。
    • 再次输入确认密码。
    • 密码需符合复杂度要求(长度、大小写、特殊字符)。
3. 验证用户信息
  • 检查 /etc/passwd
    grep username /etc/passwd
    # 输出示例:devuser:x:1001:1001:开发工程师:/home/devuser:/bin/bash
    
  • 检查家目录
    ls -ld /home/username
    # 输出示例:drwx------ 2 devuser devuser 4096 Sep 28 12:00 /home/devuser
    
  • 验证登录
    su - username
    # 输入密码后登录,检查环境配置(如 `echo $PATH`)。
    
4. 管理用户组
  • 添加用户到现有组

    sudo usermod -aG 组名 username
    
    • -a:追加到组(避免覆盖原有附加组)。
    • 示例:sudo usermod -aG docker devuser(允许 devuser 使用 Docker)。
  • 创建新用户组

    sudo groupadd 组名
    
    • 示例:sudo groupadd testers(创建测试组)。
5. 自定义用户环境(可选)
  • 修改模板文件
    sudo nano /etc/skel/.bashrc
    # 添加全局别名或环境变量,新用户将自动继承。
    
  • 强制用户下次登录修改密码
    sudo passwd -e username
    
    • 用户下次登录时会被提示设置新密码。
6. 安全增强(可选)
  • 锁定用户账户
    sudo passwd -l username
    
    • 密码被锁定后,用户无法登录(密码字段显示 !!)。
  • 设置账户过期时间
    sudo usermod -e 2025-12-31 username
    
    • 账户在指定日期后自动失效。

总结

Linux 用户管理的核心在于理解 /etc/passwd/etc/shadow/etc/group 等配置文件的结构,以及 useraddpasswdusermod 等命令的灵活组合。通过标准化 /etc/skel 模板和合理使用组权限,可高效创建安全、一致的用户环境。


http://www.dtcms.com/a/446497.html

相关文章:

  • 我的智能清洁日记:一台有鹿机器人的社区见闻录
  • 建英文网站费用找外包开发一个小程序需要多少钱
  • C++中的装饰器模式变体
  • 【代码随想录day 35】 力扣 416. 分割等和子集
  • 网站的关键字 设置php 网站后台管理系统
  • 沈阳手机端建站模板大数据适合什么人学
  • C语言-字符函数和字符串函数
  • 济南制作网站制作公司策划wordpress自动加载链接
  • 网站怎么设置标题国外企业网址
  • page指令元素
  • Postgresql源码(149)SIMD应用与性能测试
  • 知名网站建设加盟合作wordpress 腾讯视频插件下载
  • 重庆知名网站建设公司怎么去推广自己的网站
  • 深入 Pytest:用 Fixture 解锁高效 Python 测试之道
  • 一般做个网站需要多少钱建立网站需要做什么
  • Linux内核进程管理子系统有什么第六十二回 —— 进程主结构详解(58)
  • 博客系统-性能测试报告
  • 英文网站建设技术怎么建立博客网站
  • LangChain入门实践3:PromptTemplate提示词模板详解
  • 9.Spring ai alibaba 运维助手实战
  • 网站编写流程wordpress云采集
  • 找人建个网站多少钱淘宝客如何做免费的网站
  • maven-setting配置
  • 软件测试 —— B / 测试用例
  • 建设一个货架网站网站展示型和营销型有什么区别
  • 购物类网站的设计特点网站 二级分类
  • 做商城网站设计wordpress 作者墙
  • 哈希表封装实现unordered_set unordered_map
  • 网站开发的可行性报告有没有做那个的视频网站
  • RNN基础:序列数据处理与RNN原理(附Python代码)