zoukankan      html  css  js  c++  java
  • 二、Linux文件系统和文本编辑器

    1、用户和用户组管理

    1.1 用户管理常用命令

    • Linux用户分类

      用户的角色是通过UID来识别,用户的UID全局唯一。

      • root用户(超级用户)

        系统唯一,是真实的。该用户可以登录系统,可以操作系统任何文件和命令,拥有最高权限。

      • 虚拟用户

        被称为伪用户或假用户,与真实用户区分开来。这类用户不具有登录系统的能力,却是系统运行不可缺少的用户,如bin、daemon、adm等。

        虚拟用户是系统自身拥有的。

      • 普通真实用户

        该类用户能登录系统,但权限受到限制,由系统管理员自行添加。

    • 用户账号添加命令——useradd或adduser

      • 语法

        useradd [option] [username]
        
        • option

          选项 意义
          -g 用于添加用户账号时指定该用户的私有组。如不指定-g参数,useradd命令将自动建立与用户账号同名的组作为该账号的私有组。
          -G 用于添加附属组
          -D 用于显示或设置useradd命令所使用的默认值
          -d 指定用户主目录,如果此目录不存在,则同时使用-m选项来创建主目录
          -m 使用者目录若不存在,则自动建立
          -u UID 指定用户的用户号,如果同时有-o选线,则可以重复使用其他用户的标识号。
          注意,ID值不能为负值,预设为最小不得小于99而逐次增加。
          0~99传统上保留给系统账号使用。
      • 作用

        • 在/etc/passwd文件中添加一行记录
        • 在/home目录下创建新用户的主目录,并将/etc/skel目录中的文件复制到该目录中
      • 说明

        • 新建的用户暂时无法登录,需要为该用户设置口令后才能登录
        • 用户的UID和GID是useradd自动选取的,即将/etc/passwd文件中的UID加1,将/etc/group文件中的GID加1
        • 使用useradd或adduser命令增加新用户时,系统将为用户创建一个与用户名相同的组,称为私有组
    • 修改用户账号——usermod

      • 语法

        usermod [option] [username]
        
        • option为useradd命令选项

          选项 意义
          -d [directory] 修改用户登入时的目录
          -e [days] 修改账号的有效期限,days表示天数
          -g [group] 修改用户所属的群组
          -l [login_name] 变更用户登录时的名称为login_name
          -p [password] 修改用户密码
          -s [shell] 指定用户登录的shell,如果不设置,则选用系统预设的shell
        • username是需要修改的用户名

      • 作用

        usermod命令可用来修改用户账号的各种属性,包括用户主目录、私有组、登录shell等内容。

      • 说明

        • 使用usermod命令修改用户密码,其显示在文件/etc/shadow中的密码是明密码,应该用passwd命令修改密码
        • usermod不允许改变已登录用户的用户账号名称,当用户修改UID时,也必须确认这个用户没有在电脑上执行任何程序
    • 删除用户账号命令——userdel

      • 语法

        userdel [option] [username]
        
      • 说明

        • option只有一个可选项-r
        • 如果在userdel后加上-r选项,则在删除用户的同时也一并删除存储在/home目录下的该用户目录和文件
    • 用户口令管理命令——passwd

      • 语法

        passwd [option] [username]
        
        • [username]为用户名

        • [option]为passwd命令选项

          选项 意义
          -l 锁定用户口令,即禁止使用该用户账号
          -u 口令解锁
          -d 关闭使用者的密码确认功能,使用者在登陆时可以不用输入密码,只有具备root用户的使用者才能使用
          -f 强迫用户下次登录时修改密码
          -l [login_name] 变更用户登录时的名称为login_name
          -s 显示指定使用者的密码认证种类,同样只有具备root权限的用户才可使用
      • 说明

        • 凡是在文件/etc/shadow的用户名含“!!”时,该用户账号不可使用,而为加密信息时是可以使用的

    1.2 用户组管理常用命令

    • 定义

      用户组是具有相同特征的用户的集合体,用户和用户组的关系是多对多的,一个用户可以属于多个用户组,一个用户组可以包含多个用户。

    • 用户组添加命令——groupadd

      • 作用

        groupadd可指定用户组名称来建立新的用户组

      • 语法

        groupadd [option] [groupname]
        
        • option为命令选项

          选项 意义
          -g GID 除非使用-o参数,否则GID值必须是唯一且数值不可为负,预设值以/etc/login.defs为准
          -o GID 运行GID不唯一
          -r 加入组GID号,且其GID号低于499系统账号
          -f 新增一个已经存在的用户组账号,系统会出现错误信息,然后结束
        • groupname是将要创建的用户组名

      • 说明

        • 在调用groupadd命令时不设置GID号,新组的组标识GID是在当前最大组标识的基础上加1
    • 用户组修改命令——groupmod

      • 作用

        groupmod可指定用户组名称来修改新的用户组号或用户组名称

      • 语法

        groupmod [option] [groupname]
        
        • option为命令选项

          选项 意义
          -g GID 用户指定新的GID
          -o GID 重复使用GID
          -n 为群组改名
        • groupname为用户组名

    • 用户组删除命令——groupdel

      • 作用

        groupdel可指定用户组名称来删除已有的用户组

      • 语法

        groupdel [groupname]
        
      • 说明

        • 删除组时,如果该用户组中包含某些用户,则必须先删除这些用户,然后才能删除该用户组

    2、文件和目录操作

    • 文件

      • 定义

        文件是Linux用来存储信息的基本结构,它是存储在某种介质(如磁盘、光盘和磁带等)上的一组信息的集合

    • 说明

      • Linux文件均为无结构的字符流形式
      • 文件名是文件的标识,它由字母、数字、下划线和圆点组成的字符串构成
      • Linux要求文件名的长度限制在255个字符以内
      • 为了便于识别和管理,用户可以把扩展名作为文件名的一部分,文件名与扩展名之间用圆点分开,扩展名对于文件分类有用
    • 目录

      Linux系统以文件目录(树形结构)的方式来组织和管理系统中的所有文件。

      整个文件系统有一个“根”(root),然后在根上分“杈“(directory),任何一个分杈上都可以再分杈,杈上也可以长出”叶子“(file)。

    • 路径

      路径是指从树形目录中的某个目录层次到某个文件的一条道路。

      • 路径的主要构成是目录名称,中间用"/"符号分开。
      • 路径分为相对路径和绝对路径。
    • 文件操作常用命令

      • 文件清单命令:ls
      • 文件复制命令:cp
      • 文件移动命令:mv
      • 文件删除命令:rm
    • 目录操作常用命令

      • 创建目录命令:mkdir
      • 删除目录命令:rmdir
        • rmdir仅仅能删除父目录中只包含空子目录的情况,如果目录中存在文件,无法删除该目录
      • 目录切换命令:cd

    3 文件和目录权限管理

    • 说明

      • 文件或目录的访问权限分为只读、只写和可执行三种
      • 有三种不同类型的用户可对文件或目录进行访问:文件所有者、同组用户、其他用户
      • 每一个文件或目录的访问权限都有三组,每组用三位表示
        • 文件属主的读、写和执行权限
        • 与属主同组的用户的读、写和执行权限
        • 系统中其他用户的读、写和执行权限
        • 权限字段r代表只读,w代表写,x代表可执行
    • 更改文件(目录)权限命令——chmod

      • 作用

        chmod命令用于更改文件或目录的访问权限。

      • 语法(两种用法)

        • 一种是包含字母和操作符表达式的文字设定法
        • 一种是包含数字的数字设定法
        chmod [userType] [signal] [type] [filename]
        
        用户类型[userType] 数学符号(signal) 文件类型(type)
        u 表示用户(user),即文件或目录的所有者 + 添加某个权限 r 可读
        g 表示同组(group),即与文件属主同组的用户 - 取消某个全新啊 w 可写
        o 表示其他(others)用户 = 赋予给定权限并取消其他所有权限 x 可执行
        a 表示所有(all)用户,它是系统默认值

        • 数字表示属性的含义

          0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限

    • 更改文件(目录)属主命令——chown

      • 作用

        chown命令可以改变文件或目录的属主

      • 语法

        chown [option] [owner] [filename]
        
        • option为chown命令选项

        • owner为改变后的用户属主

        • filename为需要改变属主的文件或目录

      • 说明

        • 当用户要改变一个文件的属主时,所使用的用户除了是root用户外,还可以是目标属主的成员
    • 特殊权限命令——SUID和SGID

      有时需要没有被授权的用户完成某项任务

      • SUID

        • 作用

          当一个设置了SUID位的可执行文件被执行时,该文件以所有者的身份运行

        • 说明

          无论谁来执行这个文件,它都拥有文件所有者的特权,可以任意使用该文件拥有者能使用的全部系统资源;

          如果所有者是root,那么执行人就有超级用户的特权了

        • 设置和除去SUID

          chmod u+s [filename]  #设置[filename]的SUID位
          chmod u-x [filename]  #去除[filename]的SUID位
          
      • SGID

        • 作用

          当一个设置了SGID位的可执行文件被执行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源

        • 说明

          若一个目录设置了SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p选项,才能保留原来所属的群组设置

        • 设置和除去SGID

          chmod g+s [filename] #设置[filename]的SGID位
          chmod g-s [filename] #去除[filename]的SGID位
          
      • 说明

        SUID和SGID占据了ls -l清单中x位相同的空间;

        如果开始设置了可执行权限x位,则其相应的位置用小写的s表示;

        如果没有设置可执行权限x位,则其相应位置表示为大写的S。

    • 查找文件命令——find

      • 作用

        find命令能帮助用户在使用、管理Linux的日常事务时方便地查找出用户所需要的文件

      • 语法

        find [路径] [选项] [操作]
        
        • 路径

          路径是find命令所查找的目录路径

        • 选项

          选项用于指定查找条件

          选项 意义
          name 根据文件名查找文件
          perm 根据文件权限查找文件
          prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略
          user 根据文件属主查找文件
          group 根据文件所属的用户组查找文件
          mtime -n +n 根据文件的更改时间查找文件,-n表示文件更改时间距今在n天之内,+n表示文件更改时间距今在n天前
          nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在
          nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在
          -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件
          type 查找某一类型的文件,type后跟的子选项及其意义如下:
          b:块设备文件
          d:目录
          c:字符设备文件
          p:管道文件
          l:符号链接文件
          f:普通文件
          size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
          depth 在查找文件时,首先查找当前目录中的文件,然后在其子目录中查找
        • 操作

          操作用于指定结果的输出方式

          操作名称 意义
          print 将匹配的文件输出到标准输出
          exec 对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;
          注意,{ }和;之间的空格
          ok 和-exec的作用相同,只不过以一种更安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
        • 示例

          # 查找当前目录下文件名以t开头,且文件属主具有读、写、执行权限的文件
          find . -name 't*' -perm 744 -print
          
          # 查找更改时间据今90天内的文件
          find . -mtime -90 -print
          
          # 其他
          find -/etc -type f -name "rc*" -exec ls -l {} ;
          
  • 相关阅读:
    C++ char和string的区别
    解读机器学习基础概念:VC维的来龙去脉 | 数盟
    链接集锦
    MSSQL数据库日志满的快速解决办法
    oracle执行update时卡死问题的解决办法
    正则表达式中/i,/g,/ig,/gi,/m的区别和含义
    windows下sqlplus怎么连接远程oracle
    C#中TransactionScope的使用方法和原理
    C#设置Cookies .
    IIS7及以上伪静态报错404
  • 原文地址:https://www.cnblogs.com/nuochengze/p/14417812.html
Copyright © 2011-2022 走看看