本篇内容:

1.输入输出重定向

2.用户和用户组

3.文件类型与文件权限(普通权限 用户权限  隐藏权限)

一、输入输出的重定向

输入重定向是把文本导入命令中

输出重定向是把我们原本要出输出屏幕的数据内容写入到文本中     ----常用

标准输入重定向(STDIN)  文件描述符是0   默认从键盘输入

标准输出重定向(STDOUT)文件描述符是1 默认输出到屏幕

错误输出重定向(STDERR)文件描述符是2 默认输出到屏幕

输入重定向: <

符号                                               作用

命令<文件                            将文件作为命令的标准输入              ---相当于   文件 | 命令

命令<<分界符                       从标准输入中读入,直到遇见分界符才停止

命令<文件1 >文件2              将文件1作为命令的标准输入并将标准输出

输出重定向:>

命令>文件               将标准输出重定向到一个文件中(清空原有文件的数据)

命令2>文件             将错误输出重定向到一个文件中(清空原有文件的数据)

命令>>文件            将标准输出重定向到一个文件中(追加到原有内容的后面)

命令2>>文件           将错误输出重定向到一个文件中(追加到原有内容的后面)

命令1&2>>文件

二、环境变量

变量   用于保留可变值的数据类型             变量名称   一般大写

HOME                    用户的主目录(即家目录)

SHELL                     用户在使用的

Shell                       解释器名称

HISTSIZE                  输出的历史命令记录条数

HISTFILESIZE            保存的历史命令记录条数

MAIL                       邮件保存路径

LANG                       系统语言、语系名称

RANDOM                生成一个随机数字

PS1Bash                  解释器的提示符

PATH                      定义解释器搜索用户执行命令的路径

EDITOR                   用户默认的文本编辑器

$作用是:获取一个变量的值

1.输入变量---->系统判断用户输入是以绝对路径还是相对路径方式输入?

2.检测命令是否为别名命令使用alias命令对命令重名了
       alias别名=命名
     取消别名: unalias 别名
     
 3.bash解释器判断 命令是内部--直接执行还是外部(需要处理)
      通过type命令查看
      内部命令实际上是shell程序的一部分 通常在linux系统加载运行时shell就被加载并驻留在系统内存中
      外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以它们包含的程序量也会
     很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调进内存 
 
 4.系统在多个路径中查找用户输入的命令文件定于路径的变量就是PATH
    [root@localhost ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 去这里检测你的命令是否存在

自己写变量:属于临时变量 
   如果需要长期使用该路径 需要在/etc/profile和/etc/bashrc文件对所有用户有效,~/bashrc和~/.bash_profile只对当前用户有效
   [root@localhost home]# mkdir /home/ss
   [root@localhost home]# SS=/home/ss     
   [root@localhost home]# cd /root/
   [root@localhost ~]# echo $SS
   /home/ss
   [root@localhost ~]# cd $SS
   [root@localhost ss]# 
   声明一个环境变量:export AA="hello world",相对普通变量而言,只需在前面加上export即可
   
   
三、用户和用户组
    
文件的所有者(属主)、所属组(数组)和其他人对文件进行的  读(r) 写(w) 执行(x)

添加、删除、修改用户信息
            也可使用特殊权限 SUID SGID SBIT 更加灵活控制权限
  3.1.用户身份和能力
     默认root超级用户(Linux  Unix系统都是超级用户)
     root 不一定是超级用户
      UID GID
      UID--用户ID唯一的
      GID--组ID惟一的          
         一个用户具备一个UID同时会有一个同名组GID
   
                 
   3.2.Linux中有三类用户---> /etc/passwd文件保存账户信息           
     1.超级用户 默认root 真实的具备  UID=GID=0 的用户
     2.系统用户UID=1-499,使某些服务具备特殊的用户单独负责
     3.普通用户通过 root用户创建的默认 UID>=500开始
    一些程序会由独立的系统用户去执行
    安装httpd服务会有一个 apache的系统用户       http是协议    httpd是 服务   需要一个服务器apache/nginx环境

  1. 用户和组的关系---->    一对一   ,一对多  ,多对一   ,多对多

3.3.用户的增删改查
                    用户查看:/etc/passwd
                    组查看:/etc/group
       1.用户与组的增加  useradd 和 groupadd
                         参数             作用
                         -d        指定用户的家目录(默认为/home/username)
                         -e        账户的到期时间,格式为YYYY-MM-DD.
                         -u        指定该用户的默认UID
                         -g        指定一个初始的用户基本组(必须已存在)
                         -G        指定一个或多个扩展用户组
                         -N        不创建与用户同名的基本用户组
                         -s        指定该用户的默认
                      [root@localhost ~]# id linux
                                  uid=502(linux) gid=502(linux) groups=502(linux)
                      [root@localhost ~]# usermod -u 888 linux
                                 [root@localhost ~]# id linux
                                 uid=888(linux) gid=0(root) groups=0(root)
       2.修改用户的属性:usermod和groupmod
                        参数            作用
                        -c            填写用户账户的备注信息                      
                        -d-m          参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
                        -e            账户的到期时间,格式为YYYY-MM-DD
                        -g            变更所属用户组
                        -G            变更扩展用户组
                        -L            锁定用户禁止其登录系统
                        -U            解锁用户,允许其登录系统
                        -s            变更默认终端
                        -u            修改用户的UID
       3.修改用户密码:passwd
                              参数                 作用
                              -l                  锁定用户,禁止其登录
                              -u                  解除锁定,允许用户登录
                            --stdin          允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd--stdin Username
                              -d                 使该用户可用空密码登录系统
                              -e                 强制用户在下次登录时修改密码
                              -S                 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
                       普通用户只能使用passwd修改自己的密码
                       [root@localhost ~]# passwd linux

4.删除:userdel和groupdel
                                    参数               作用
                                    -f             强制删除用户
                                    -r             同时删除用户及用户家目录---尽量不用,用于恢复用户
四.文件权限和归属
Linux下都是文件
     4.1文件类型:
                f /-            普通文件
                d          目录
                l          链接----软链--相当于快捷方式、硬链---完整复制
                b          块文件---设备--硬盘光盘U盘
                c          字符文件----虚拟终端
                s         数据库文件
     4.2 文件普通权限:一共九位
                前三位:rwx满位---空位---->属主(文件所有者)
                中三位:rwx满位---空位---->属组(文件所有组)
                后三位:rwx满位---空位---->其他用户
                 
               文件              目录
            r   浏览文件内容            浏览目录内的内容(有什么文件但是不一定能看内容)
            w  修改文件内容            删除 移动 复制文件
            x  执行脚本           文件进入目录内
           
            文件有W权限但目录没有W权限是不是删除的
          a b c 三个人--->文件属于a属主   属于ab组(组内成员ab属组)   其他人c
      4.3文件的特殊权限
        1.SUID=setUID
          针对二进制程序设置的 让二进制程序执行者临时拥有属主权限 
            bin里面的命令都是二进制的  
          [root@localhost ~]# which cat           使用which搜索我的命令在哪
               /bin/cat
               [linux@localhost ~]$ ll /usr/bin/passwd
               -rwsr-xr-x. 1 root root 30768 Feb 17  2012 /usr/bin/passwd
                  只能root用户使用
               s的作用让普通用户临时获得root权限属主权限
                 值:4000
                 如果文件本身具备x权限 那么就是s 如果没有x就是S
        2.SGID=setUID
            仿照SUID,设置的属组的特殊权限
             如果文件本身具备x权限那么就是s如果没有x就是S
             值:2000 
         3. SBIT粘滞位作用
                 确保用户只能删,除自己的文件对别人不能删除
                 如果文件本身具备x权限 那么就是t 如果没有x就是T
                 值1000
                 drwxrwxrwt.  11 root root  4096 May 16 08:00 tmp
           
            目录和文件默认权限是多少:
                目录:755
                文件:644
                默认情况 目录权限满位777
                         文件权限满位666
                         文件666每个位上缺少x--->可执行  不是所有文件脚本?
                      都缺少022权限---网络掩码---反掩码
                      umask默认022
        文件权限修改俩种命令:
           chmod 777(rwxrwxrwx)文件名
              两种授权形式:
                    1.数字授权:
                       chmod对权限修改(rwx suid sgid sbit)
                       chmod 777-R目录名---->-R参数用于权限递归    只对目录下现有的有效
                       +赋予权限     -撤销权限    =覆盖权限
                   2.表达式授权:
                      a所有   u用户  g用户组  o其他人
                      [root@localhost wdw]# chmod u+x,g+w,o+r linux

chown对文件所有者/所有组修改
                   [root@localhost /]# chown root:wdw linux/      
 
        4.su 和 sudo 命令
             su 用于用户切换   su - 完全切换
       
            sudo:
               使用sudo命令把特定的命令的执行权限赋予指定用户
               保证普通用户能够完成特定的工作, 避免暴露root密码
       
               udo命令用于给普通用户提供额外权限来完成本来由root用户才能完成的任务
            参数                     作用
                  -h                     列出帮助信息
                  -l                     列出当前用户可执行的命令
                  -u用户名或UID值        以指定的用户身份执行命令
                  -k                     清空密码的有效时间,下次执行sudo时需要再次进行密码验证
                  -b                     在后台执行指定的命令
                  -p                     更改询问密码的提示语

功能:限制用户执行指定命令
                 记录用户执行每一条命令
                 比如:poweroff, reboot
               配置文件/etc/sudoers提供集中的用户管理、权限和主机参数
               可以通过visudo去配置用户权限 只有root可以使用
       
              ## Allow root to run any commands anywhere
                 root          ALL=(ALL)             ALL
                谁可以用      允许使用的主机=以谁的身份    可以执行的命令
         
             ## Allow root to run any commands anywhere
               root    ALL=(ALL)       ALL
               linux   ALL=(root)      /sbin/ reboot
                      这需要每次输密码可以写成 linux   ALL=(root)NOPASSWD:   /sbin/reboot
               
               [root@localhost ~]# su - linux
               [linux@localhost ~]$ sudo reboot
               We trust you have received the usual lecture from the local System
               Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
               #2) Think before you type.
               #3) With great power comes great responsibility.

[sudo] password for linux:

5. 隐藏权限:chattr 和 lsattr
              chattr命令锁定该文件
              lsattr命令是显示chattr命令设置的文件属性。
              与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的
       
              有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。
           chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的。通过chattr命令修改属性能够提高系统
           的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。
          
           chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
           最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的属性。

+ :在原有参数设定基础上,追加参数。
              - :在原有参数设定基础上,移除参数。
              = :更新为指定参数设定。
              A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
              S:硬盘I/O同步选项,功能类似sync。
              a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
              c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
              d:即no dump,设定文件不能成为dump程序的备份目标。
              i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
              j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先
              被记录 (在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
              s:保密性地删除文件或目录,即硬盘空间被全部收回。
              u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。

各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有
   superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。
应用举例:

1、用chattr命令防止系统中某个关键文件被修改:
      # chattr +i /etc/resolv.conf
     然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted     的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly     file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf
    # lsattr /etc/resolv.conf
    会显示如下属性
    ----i-------- /etc/resolv.conf
  2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
  # chattr +a /var/log/messages

转载于:https://blog.51cto.com/13709718/2117730

第三篇 用户和权限相关推荐

  1. linux+系统优化基础,Linux入门基础(三):Linux用户及权限基础

    用户基础 用户和组 每个用户都拥有一个userid 每个用户都属于一个主组,属于一个或多个附属组 每个组拥有一个groupid 每个进程以一个用户身份运行,受该用户可访问资源限制 每个可登陆用户拥有一 ...

  2. Jenkins拾遗--第三篇(用户权限管理)

    采访过很多实用Jenkins的同学,发现Jenkins的安全是一个很薄弱的地方.很多公司用作生产部署的Jenkins安全管理都不是很规范,就更别提测试用的Jenkins了. 其实Jenkins是一个很 ...

  3. linux 用户文件字段解释,0220自学Linux_逻辑理解用户进程权限相关+理解文件内各字段(passwd,shadow,group)(示例代码)...

    11 内核是真正意义上的操作系统 库有动态库也有静态库,Linux的动态库是.so后缀的,也称为共享库 库是不能够独立运行的,只能被调用 Window的动态库是.dll后缀的 我们平时所谓的安装操作系 ...

  4. Linux中的python、mysql安装以及用户与权限

    一.软连接和硬链接 命令: ln -s 被连接的文件源 连接文件(快捷方式名称) 注意: 1.没有 -s 选项建立的是一个硬连接文件,两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接. ...

  5. MySQL基础篇(07):用户和权限管理,日志体系简介

    本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL用户 1.基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个roo ...

  6. 创建用户赋权限_JMeter接口测试实战之「创建用户」篇

    JMeter接口测试实战 场景分析: 在企业中, 多数会有很多管理系统如CMS, CRM, 中台等各种管理系统, 这些有一个共同点就是区分用户权限, 如: 阿一是管理员权限, 阿二是部门经理权限, 阿 ...

  7. (三)Linux 用户和权限

    一.认知 root 用户 1. root 用户(超级管理员) 无论是 Windows.MacOS.Linux 均采用多用户的管理模式进行权限管理 (1)在 Linux 系统中,拥有最大权限的账户名为: ...

  8. 《Linux基础三》用户和文件权限管理

    用户和文件权限管理 1,用户 管理员用户: Root用户,也称根用户.超级用户.超级管理员 可对根目录执行读写和执行操作 具有系统中的最高.所有权限 普通用户: 权限有限的用户 Root用户拥有系统的 ...

  9. 第三篇:mig IP用户读写时序

    FPGA开源工作室将通过五篇文章来给大家讲解xilinx FPGA 使用mig IP对DDR3的读写控制,旨在让大家更快的学习和应用DDR3. 本实验和工程基于Digilent的Arty Artix- ...

最新文章

  1. ASP.NET 防盗链源码
  2. java 三级考试_java web 学习 --第三天(Java三级考试)
  3. arduino开发ESP8266配置方法,入门必看,esp8266开发板库离线安装包package2.7.1
  4. 织梦的网站地图怎么做html,如何优化织梦dedecms默认网站地图sitemap.html??
  5. 抽象数据类型,让Oracle数据库数据管理更加容易
  6. 现代经济中的货币创造
  7. ora 01033 解决
  8. android jcenter google 镜像
  9. vin码识别(车架号识别)的工具
  10. hadoop 编程规范(hadoop专利分析)
  11. 富文本编辑器ueditor——找不到ueditor.all.js以及ueditor.all.min.js文件
  12. 一个由服务器时区引发的Bug
  13. 2038年问题 linux内核5.6,Linux Kernel 5.6 开发者已率先做好准备 应对 2038 年问题
  14. python to_excel 时间格式_分别用Excel和python进行日期格式转换成时间戳格式
  15. 推荐五个常用的免费图片素材下载网站
  16. 分分钟带你学会DNS、WEB、DHCP服务器的搭建
  17. php 触控精灵,背景控制,精灵图 3-12
  18. oracle触发器如何调试
  19. genus 综合流程
  20. JAVA 完整实现滑块拼图验证码

热门文章

  1. Nginx ssl、rewrite配置
  2. 深入分析 java 8 编程语言规范:Threads and Locks
  3. MySQL多源复制【转】
  4. git本地项目代码上传至码云远程仓库总结
  5. DNS部署(四)之lvs+keepalived+bind架构高可用负载均衡DNS系统
  6. WCF技术剖析之三十二:一步步创建一个完整的分布式事务应用
  7. Jmeter简单应用6
  8. python安装mysql库
  9. 伪静态技术(SEO) 摘自:http://bbs.admin5.com/thread-8522290-1-1.html
  10. 2009年依然兑现不了的10大IT安全预期