zoukankan      html  css  js  c++  java
  • linux系统管理命令(五)

    【教程主题】:1.系统管理命令

    1.1】用户和组管理

    Linux操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组。用户是否有权限对某文件进行访问、读写以及执行,受到系统严格约束的正是这种清晰、严谨的用户与用户组管理系统。在很大程度上它保证了Linux系统的安全性。本节课将对Linux系统中重要的用户和组管理文件进行介绍,并且介绍如何使用命令行对用户和组进行管理。 

    Linux帐号分类

    用户帐号

    用来储存单一用户的数据,你可以使用一个用户帐号,来储存某一个用户的数据

    用户帐号分为:

    Ø 超级用户

    拥有完全控制功能,用户名称通常为root,其UID(用户系统标识符)为0

    Ø 普通用户

    分类:

             系统账号

             这种类型账号提供给Linux系统本身使用。在某些软件执行时候,需要你提供一个普通用户类型的账号。为了满足这个需求而建立的账号,我们称为系统账号。 在Red Hat Enterprise Linux 中,系统用户的UID1499之间。

             真实用户

    真实账号在系统中,被分配的UID范围为5004,294,967,295之间。

    群组账号

    - 用来储存多个用户的信息,每一个群组账号可以用来记录一组用户的数据。

    群组账号分类:

    Ø 超级用户组

    root的用户群组我们称为超级用户组

    超级用户群组的GID(群组标识符)为0。隶属于超级用户群的成员,不具备系统管理的权利。

    Ø 系统群组

    与系统账号一样,系统群组也是给Red Hat Enterprise Linux 系统本身,或是某个软件使用。目前Red Hat Enterprise Linux定义系统群组的GID范围为1499之间。

    Ø 用户自定义组

    除了上述的群组外其余的所有群组都是用户自定义群组。

    用户自定义组账号可使用的GID范围为5004,294,967,293
    用户账号文件——passwd 

              /etc/passwd文件是UNIX安全的关键文件之一。该文件用于用户登录时校验用户的登录名、加密的口令数据项、用户IDUID)、默认的用户组IDGID)、用户信息、用户主目录以及登录后使用的shell/etc/passwd文件的每一行保存一个用户的资料,而用户数据按域以冒号“:”分隔。格式如下所示:

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

      其中,各个域的含义如表所示:

    /etc/passwd文件中域的含义

    域 

    含    义 

    username 

    登录名 

    password 

    加密的用户口令 

    uid 

    用户ID 

    gid 

    用户组ID 

    userinfo 

    用户信息 

    home 

    分配给用户的主目录 

    shell 

    用户登录后将执行的shell(若为空格则默认为/bin/sh) 

     

    用户的登录名是用户用来登录的识别,由用户自行选定,主要由方便用户记忆或者具有一定含义的字符串组成。所有用户口令的存放都是加密的,通常采用的是不可逆的加密算法。一般来说,用户的UID应当是独一无二的,其他用户不应当有相同的UID数值,只有UID等于0时可以例外。每个用户都需要保存专属于自己的配置文件及其他文档,以免用户间相互干扰。当用户登录进入系统时,会启动一个Shell程序,默认是bash

     


    用户影子文件——shadow

    Linux使用不可逆的加密算法(如MD5SHA1等)来加密口令。/etc/passwd类似,/etc/shadow文件中每条记录用冒号“:”分隔,形成9个域,格式如下所示:

    username:password:lastchg:min:max:warn:inactive:expire:flag 

    其中,各个域的含义如表所示:

    /etc/shadow文件中域的含义

    域 

    含    义 

    username 

    用户登录名 

    password 

    加密的用户口令 

    lastchg 

    表示从197011日起到上次修改口令所经过的天数 

    min 

    表示两次修改口令之间至少经过的天数 

    max 

    表示口令还会有效的最大天数,如果是99999则表示永不过期 

    warn 

    表示口令失效前多少天内系统向用户发出警告 

    inactive 

    表示禁止登录前用户名还有效的天数 

    expire 

    表示用户被禁止登录的时间 

    flag 

    保留域,暂未使用 

     

    用户组账号文件——groupgshadow

             /etc/passwd文件中包含着每个用户的用户组IDGID)。

              /etc/group文件对用户组的许可权限的控制并不是必要的,这是因为Linux系统用来自于/etc/passwd文件的UIDGID来决定文件存取权限。

              用户组可以像用户一样拥有口令。

            /etc/group文件记录格式如下所示:

    group_name:group_password:group_id:group_members 

            其中,各个域的含义如表所示:

    /etc/group的域及其含义

    域 

    含    义 

    group_name 

    用户组名 

    group_password 

    加密后的用户组口令 

    group_id 

    用户组IDGID) 

    group_members 

    以逗号分隔的成员用户清单 

     

    /etc/gshadow的域及其含义

    域 

    含    义 

    group_name 

    用户组名 

    group_password 

    加密后的用户组口令 

    group_members 

    以逗号分隔的成员用户清单 

     

    用户和用户组账号管理命令:

    使用useradd命令添加用户

     

              Linux使用useradd命令添加用户或更新新创建用户的默认信息。默认信息包括前文所述的用户账号文件所存储的用户相关信息。useradd命令的格式如下:

    useradd  [参数]   {username}

    参数: -u  UID     用来指定UID

               -g  GROUP  定义用户的主要群组,GROUP必须已经存在

               -G  GROUP  指定用户的次要群组,可以指定多个次要群组,每个用“,“相连

               -d HOME    指定用户的主目录

                -s SHELL    指定用户登录执行的程序

               -r              建立一个系统用户的账号

    出于系统安全考虑,Linux系统中的每一个用户除了有其用户名外,还有其对应的用户口令。因此使用useradd命令增加时,还须用passwd命令为每一位新增加的用户设置口令。之后还可以随时用passwd命令改变自己的口令。passwd命令的格式如下:

    passwd username

     

    使用usermod命令修改用户信息

              usermod命令用来修改使用者账号,具体的修改信息和useradd命令所添加的信息一致,这里不再一一列出。usermod命令的格式如下:

    usermod  [参数]   {username}

    参数: -u UID        修改UID

              -g  GROUP   修改主要群组名称

              -G  GROUP   修改次要群组名称

              -d  HOME      修改家目录位置

              -s  SHELL       修改可执行程序

              -l NEWNAME   修改用户名

             -L   锁定帐号

             -U  解除锁定

    使用userdel命令删除用户

              userdel命令用来删除系统中的用户信息。userdel命令的格式如下:

    userdel  [参数]   {username}

    参数: -r 删除用户的主目录和邮箱

    使用groupadd命令创建用户组

              groupadd命令可以以指定名称来建立新的用户组。groupadd命令的格式如下:

    groupadd  [参数 {groupname} 

    参数:   -g GID 指定群组账号的标识符

                -r 指定添加的群组成为系统群组

                -f 强制执行。一般情况下groupadd不允许建立一个与使用过的GID相同的群组账号,使用这个参数就会建立相同的GID群组账号

    使用groupmod命令修改用户组属性

               groupmod命令用来修改用户组信息。groupmod命令的格式如下:

    groupmod  [参数] {groupname} 

    参数:    -g GID  修改GID

                  -n NEWNAME   修改群组的名称

    使用groupdel命令删除用户组

              groupdel命令比较简单,用来删除系统中存在的用户组。使用该命令时必须确认待删除的用户组存在。groupdel命令的格式如下。

    groupdel groupname 

     

    1.2】用户权限管理

    Linux系统中三种基本权限

    用户属主、用户属组及其它人权限

     

    -rw-r--r-- 1 root root 762 11-11 20:34 a.out

     

    文件类型和权限   链接数 文件拥有者 文件拥有组 内容大小 更改时间 文件名

     

    文件类型

    ls命令中的缩写

    应用

    一般文件

    -

    保存数据

    目录

    d

    存放文件

    符号链接

    l

    指向其他文件

    字符设备节点

    c

    访问设备

    块设备文件

    b

    访问设备

    命名管道函数

    P

    进程间通信

    套接字

    s

    进程间通信

    八进制表示法

    字符表示法

    八进制表示法

    含义

    r

    4

    读(查看文件)

    w

    2

    写(删建文件、重命名)

    x

    1

    执行(进入目录)

     

     

     

     

     

     

     

    权限管理命令

     

     

    u    属主

    g    属组

    o    其他

    a    所有

    创建文件时,系统默认权限为666

    创建目录时,系统默认权限为777

    修改文件权属于chown,chgrp

    chown修改属主和修改属主、属组

    chown  [R]   [属主:属组] /user   file

    chgrp修改属组

    chgrp  group file

     

    谁可以修改文件的所有者和权限

    chmod    root用户和文件的所有者

    chgrp     root用户和文件的所有者(必须是组成员)

    chown    只有root

     

    1.3】文件归档管理

    1.3.1 Linux怎样保存文件

    数据

    - 这里数据就是文件的内容

    元数据

    - linux系统中,所有与某个文件相关的额外信息都保存在一个叫做i-节点(inode)的结构中

    文件名

    文件名保存在名为目录项(dentry)的结构中

    i-节点

    所有文件都有如下的属性:

    文件类型、链接数、用户所有者、组所有者、权限和时间信息。这种信息保存在名为i-节点的结构中。

     

    链接数

    i-节点记录文件的链接数,也就是引用该文件的目录项(dentry)数。通常常规文件只有一个文件名,链接数也是1

    时间信息 

    每个i-节点保存与文件相关的三种时间信息,通常叫做atimectimemtime,含义如下:

    缩写

    名称

    目的

    atime

    访问时间

    文件数据每次被阅读后更新

    ctime

    改变时间

    文件的i-节点信息每次被改变后都会更新

    mtime

    修改信息

    文件数据每次被更改后更新

     

    stat命令查看i-节点的信息

    一个文件的i-节点信息集合叫做该文件的状态(startus)。

    我们可以把stat命令看作是现实文件状态的命令。

    用法:

    stat  [option ]  file

     

    一个文件系统内,每个i-节点都分配到一个独一无二的i-节点编号

    硬链接和软连接

    硬链接:

    将多项目录项关联到一个i-节点(同一个文件保存在两个地方或不同的文件名)

    ln  目标文件  链接文件

    软连接:是一些不同的i-节点,用来引用其他文件名。

    ln  -s   目标文件  链接文件 

    查找文件find命令

    用法:

    find    {搜索目录}  {搜索条件}  [动作

    搜索条件:

    -size  n  文件的大小

    -type   文件的类型(f普通、d目录、i软连接)

    -name:按照文件名查找文件。支持统配符*?

    -user: 按照文件属主来查找文件。

    -group:按照文件所属的组来查找文件。

    -mtime n:按照文件的更改时间来查找文件

    atime n:搜索在过去n天读取过的文件。

    ctime n:搜索在过去n天修改过的文件。

    - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前

    有时间有关选项:共有 -atime, -ctime  -mtime ,以 -mtime 说明 

       -mtime  n 为数字,意义为在 天之前的『一天之内』被更改过内容的文件; 

       -mtime +n :列出在 天之前(不含 n天本身)被更改过内容的文件名; 

       -mtime -n :列出在 天之内(天本身)被更改过内容的文件名。

    print:输出搜索结果,并且打印

    find命令查找文件的几种方法:
    1)根据文件名查找
    例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令:
    find / name lilo.conf
    find命令后的“/”表示搜索整个硬盘。
    2)快速查找文件
    根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:
    find /etc name smb.conf
    这样,使用快速查找文件方式可以缩短时间。
    3)根据部分文件名查找方法
    有时我们知道只某个文件包含有abvd4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令:
    find / name '*abvd*'
    输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。
    (4) 使用混合查找方式查找文件
    find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and ()把两个查找参数链接起来组合成一个混合的查找方式。
    find /etc -size +500000c -and -mtime +1

    动作:

    -exec command;     对匹配文件执行command,用{}表示匹配的文件。命令形式为:

    ' command' {} ;,注意{ };之间的空格。

    -ok  command;       与-exec相同,但是提示确认没个文件的操作

    用法:找出名字为1.txt文件 并且用长格式输出:

    find /root -name 1.txt -exec ls -l {} ;

    1.3.2 文件压缩

    为什么要压缩文件

    节约空间和网络传输

    压缩命令

    gzip

    用法:

    gzip   [option ]  file

    参数: -c  将输出重定向到标准输出

              -d  解压缩文件

              -r  对目录递归,将里面的文件分别压缩

              -19    指定压缩比例。

    文件后缀:.gz

     

    bzip2

    用法:

    bzip2   [option ]  压缩后文件  要压缩文件

    参数: -c  将输出重定向到标准输出

              -d  解压缩文件

    文件后缀:.bz

    文件归档tar

    将文件归档可以把整个目录树保存在同一个文件中

    tar命令用于创建、列出、抽取归档文件。

    归档文件通常也会一并压缩

    用法:

    tar   [option ]  file

    -c  创建归档文件

    -x  释放文档

    -v  显示详细信息

    -f  文件名(可带路径)

    -z 使用gzip压缩    

    -j 使用bzip2压缩

     


  • 相关阅读:
    体验极佳的程序
    如何修改文档等系统文件的位置
    Demo
    Spring Boot与检索/ElasticSearch
    Java NIO:NIO概述
    Centos7 配置静态IP并使用xshell远程连接
    宏定义能否被赋值
    Centos7没有ETH0网卡
    Bringing up interface eth0: Device eth0 does not seem to be presen
    Git 常用命令
  • 原文地址:https://www.cnblogs.com/suihui/p/3799622.html
Copyright © 2011-2022 走看看