Linux-基础学习(3)

一、输入输出的管理

在linux中,正确的输出编号为1,错误的输出编号为2。

我切换到普通用户时,执行find /etc -name passwd 命令后会输出如下(find /etc -name passwd   : 在/etc文件夹下查找所有文件名中含有passwd字 符的文件)

find: ‘/etc/pki/CA/private’: Permission denied                 ##没有进入权力,报错
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
/etc/passwd                                                      ##正确输出
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/grub.d’: Permission denied
/etc/pam.d/passwd                                                 ##正确输出
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/named’: Permission denied

         上面显示所有的查找信息,其中有28条是因为所在路径该用户没有权限导致查找失败,2条是正确的输出。

  我们可以使用下面的命令对我们查找结果进行过滤显示。

        1、find /etc -name passwd > flie                          #重定向正确输出

           说明:将所有正确输出放入文件file中,将所有的错误结果显示出来,与find /etc -name passwd 1> flie

        相同( 1 可以省略)。

        2、find /etc -name passwd 2> file                     #重定向错误输出

               说明:将所有错误信息放入文件file中,将所有的正确结果显示出来

         3、find /etc -name passwd &> file    #重定向所有输出

             说明:将所有查找信息不论错与对全部放入放入文件file中。

       注意:当我们执行find /etc -name passwd &>file 时我们并没有显示任何输出信息,但是我们cat file 后会发现废了文件中的所有内容

        4、find /etc -name passwd >>file    #追加正确输出

          将输出的正确信息追加放入 file文件中,绝对不会是覆盖原文件

        5、find /etc -name passwd 2>>file    #追加错误输出

            将所有的输出信息追加放入 file中

        6、find /etc -name passwd &>>file    #追加所有输出

            将所有的输出信息追加输入到 file文件中

        7、当我们不想将信息输出到一个文件中,也不想显示他,可以使用下面命令

               find /etc -name passwd &>> /dev/null    

                这样我们可以将所有的信息全部放入垃圾箱中

        8、  2>&1                                      #把错误的输出编号由2变成1  

        在管理输出的时候我们可以使用管道 ,管道的作用是将前一条命令的输出变成管道后命令的输入,例如:

         ls /bin | wc -l                     #统计ls /bin 命令输出的行数

         date |tee file |wc -l                     #tee命令复制date命令的输出到file中,并统计输出行数         

        系统中错误的输出是无法通过管道的。但是我们可以使用  2>&1  将错误的编码变为正确的编码1 进行输出

    练习:

       我们需要只使用一条命令来统计所有的错误的命令总共有多少条?(即在本例中 使其输出28)

        解答 : find /etc -name passwd 2>&1 >file | wc - l

二、用户及用户的管理

(一)用户的理解

                用户就是系统使用者的身份,在系统总用户存储为若干字符串+若干个系统配置文件。涉及到用户
         的系统配置文件有
     1、 /etc/passwd                        #用户的密码信息
      
 GID:为GroupId,即组ID,用来标识用户组的唯一标识符
UID:为UserId,即用户ID,用来标识每个用户的唯一标示符
      用户:密码:uid:gid:说明:家目录:用户使用的shell          
  2、 /etc/shadow                        #用户认证信息
  3、/etc/group                             #用户组信息
   4、/etc/gshadow                        #组认证信息
   5、/home/username                  #用户家目录
   6、etc/skel/. *                             #用户骨架文件
(二)用户管理
      (2)用户的建立

        useradd      参数         参数          用户名

                           -u          uid           student                #指定student用户的uid

                           -g          组名          student                #指定student用户的初始组信息,这个组必须存在

                           -G         家族            student                #指定student用户家族,这组必须存在

                           -c           说明         student                #student用户说明

                          -d         家目录        student                #student用户的家目录

                          -s                            student     #student用户所使用的shell, /etcshells记录了用户能使用shell的名字  

       练习:创建一个uid=1003  属于student组的 用户说明为teacher的 用户家族为student的 不支持登录的teachertest用户  

 Linux-基础学习(3)

        Linux-基础学习(3)        (

2)、用户删除

            suerdel -r   student                                  #删除student用户的信息和系统配置

            注意:删除用户时 一定要使用 -r命令 不然一些写属于该用户的系统设置和文件会不能完全删除,导致再次创建同名用户时可能会失败        


(3)、组的建立

            groupadd  -g   [gid]   groupname               #建立一个组名为groupname的组

            groupdel 组名字                                  #删除组

  

(4)、用户id信息查看 

        id 参数         用户
        -u       student               ##用户uid
        -g       student                 ##用户初始组id
        -G       student                 ##用户所有所在组id
        -n        student                ##显示名称而不是id数字

        -a       student                  ##显示所有信息

      

    (5).用户信息更改

        usermod   参数     参数              用户
                    -l       用户新名称         student                              #更改用户名称
                    -u            uid                    student                           #更改uid
                    -g             gid                     student                           #更改gid
                    -G  附加组                  student                                   #更改附加组
                    -aG   附加组                  student                           #添加附加组
                    -c           说明                     student                           #更改说明
                    -d    家目录                   student                          #更改家目录指定
                    -md     家目录              student                           #更改家目录指定及家目录名称
                    -s                                      student                               #更改shell
                    -L                                      student                               ##冻结帐号

                    -U                              student                               ##解锁

三、小练习

Linux-基础学习(3)Linux-基础学习(3)Linux-基础学习(3)


这里的练习答案及操作流程日后还有待完善,待续...