Linux系统中的输入输出管理及Linux中的用户管理

一.Linux中的输入输出管理

1.理解什么是输入输出

1)字符设备

字符设备就是现实字符到屏幕上的设备文件

2)stdin 标准输入 编号为0  如键盘 鼠标 打字机

3)stdout 标准正确输出 标号为1

4)stdrr标准错误输出 标号为2

在普通用户下,用命令dev/pts/0(1,2...)来查看

操作如下:

2.如何管理系统输出

(1)输出重定向

    1>    正确输出

    2>    错误输出

    &>    输出所有

在普通用户下,作如下实验

find   /etc  -name passwd  1> westos.out     重定向正确输出

find   /etc  -name passwd  2> westos.err   重定向错误输出

find   /etc  -name passwd  &> westos.all   重定向输出所有

注意:重定向输出后,会覆盖原始文件里的内容

实验如下:

find  /etc -name passwd  这条命令在普通用户下输入时 输出会有报错,原因是报错的地方 普通用户不能访问,只有超级用户才能访问。

(2)追加输出

    1>>   正确输出

    2>>  错误输出

    &>>    输出所有

  find   /etc  -name passwd  1>>  westos.out   追加正确输出

  find   /etc  -name passwd 2>>westos.err   追加错误输出

  find   /etc  -name passwd  &>>  westos.all   追加输出所有

注意:追加管理输出后,不会覆盖原始文件内容 追加和重定向功能类似

(3)管道符 “|”

     把前一条命令的输出变为输入,传递到下一条命令进行操作,注意:管道符只处理正确的输出,在一条命令中可以使用多次。

     # 2>&1  表示将编号为2的输入到编号为1的输出中

    # tee  表示复制输出到指定位置,操作如下

例题:找出系统中/etc下 名字中带有数字并以.conf结尾的文件名,将其备份到桌面coffile中并统计文件个数

 find  /etc -name *[1-9]*.conf  2>/dev/null  |  tee conffile |  wc -l

2.如何管理输入

外界传递到程序的信息

(1)<   表示输入重定向

# tr 'a-z' 'A-Z' < test    test文件中的内容定向到tr的程序中

(2)<<  多行录入  

   # tr 'a-z' 'A-Z' <<   EOF(任意字符)

     test

    test1

     EOF

当首字母再次出现时 表示录入结束,此处的test不能表明各文件 只表示字符

二.Linux中的用户管理

1.用户和用户组存在的意义

(1)用户存在的意义

  系统资源是有限的,如何合理分配系统资源,在这个问题得到解决时,必须要有两个资源配合。

   1)身份 (account)2)授权(author) 3)认证(auth)

   称为3A机制,组成了系统对底层的安全架构

2. 用户组存在的意义

电脑对数字敏感(ID) 人类对文字敏感(名称) 名称必须要记录到文件中才能被使用

Linux中记录用户信息的命令 /etc/passwd 

用户就是/etc/passwd 文件中的一行字符

用户组的存在方式就是/etc/group 文件中的一行字符

3.用户切换

1)用户查看

whoami  查看当前用户

id   查看用户id信息

id   -u  查看用户的用户id 

id   -g   查看用户的主组id 

id   -G   查看用户所有组的id

id   -n  显示名称  该命令不可单独使用 需和上面命令搭配使用

2)用户切换

  su  -   username        

 -  代表切换用户环境

  如果root ------>  普通用户 不需要密码

  如果普通用户------->root 需要密码

  普通用户 -------》普通用户  需要密码

注意:当在做用户切换时,使用完毕用户身份后 要及时退出,不要在一个shell中反复执行su命令 否则会造成环境错乱

操作如下

4.用户涉及到的系统配置文件

(1)/etc/passwd   用户身份信息文件 每一行都有7列内容,分别表示:用户名称;用户密码;用户id;用户主id;用户说明;用户家目录;用户默认的shell

(2)/etc/group 组身份信息文件  有4列,分别表示:组名称;组密码;组id;组的附加成员

(3)/etc/skel/.*  用户环境配置文件模版

(4)/etc/shadow 用户认证信息

(5)/home/username  用户家目录

5.用户和用户组的建立及删除

为了做实验的效果,我们需要运用监控,建立用户监控命令

tail  -n -4 /etc/passwd /etc/group; echo====; ls -l  /home

watch -n 1 "tail  -n -4 /etc/passwd /etc/group; echo====; ls -l  /home"

(1)用户建立: useradd username 

       useradd -u id username    uid的设定

       useradd -g id username  主组id

       useradd -G  id username 附加组id 

       useradd -d dir  username  指定用户家目录

       useradd -c word  username  指定用户说明

       useradd -s  shell  username  指定用户shell

       用户的删除 userdel  -r username

(2)用户组的建立    groupadd   groupname

   用户组的删除      groupdel   groupname

  groupadd    -g id  groupname  指定组名称

注意:#0 表示超级用户  #1-200 表示预留id   #201-999 表示系统用户  #1000-60000  用户级用户 

/etc/login.defs  记录用户建立的默认规则

上述操作如下:

6.用户和用户组的信息管理

usermod -l   更改用户名 

usermod -u  更改用户id 

usermod -g   更改用户组id 

usermod -G   更改用户附加组身份

usermod -aG  添加用户附加组信息

usermod -c    更改用户说明

usermod -d    更改用户家目录指向

usermod -md   更改家目录指向同时更改家目录名称

usermod -s  更改shell

groupmod  -g  改变用户组id 

操作如下

 

7.用户认证信息管理

(1)用户名称

(2)用户加密字符

   passwd lee   只有普通用户可更改

  passwd   普通用户改密码(改的密码是8位以上的)

  “echo 123 | passwd --stdin lee” 改密码

   passwd -S lee 查看密码状态

   passwd -l lee 冻结账号

   passwd -u  lee  解锁账号

  passwd -d lee  删除密码

(3)密码使用天数从1970-1-1  算到今天的时间

     passwd -e  lee  修改默认使用时间     或者  chage -d 0 lee  修改后必须重新改密码才能登陆

(4)密码的最短有效期

      passwd -n 1 lee 或  chage -m 1 lee    lee在1天内不能改密码

(5)密码最长有效期 

     passwd -x 40 lee   40天内用户必须更改密码 否则会被冻结

     chage  -M  30  lee 

(6)密码过期警告 

      passwd -w 2 lee  或  chage  -W  2 lee   

(7) 认证非活跃天数 

     passwd -i 2 lee  或  chage  -I  2 lee   账号认证最大时间超过后 还能用多久

(8)账号认证到期时间 

   chage -E “2020-05-11”  到2020.05.11 这天账号会被冻结  

(9)未启用功能

操作如下 

8.用户权利下放 

在系统中普通用户无法执行系统的管理命令的,如果需要普通用户执行系统管理动作,那么需要root用户来进行授权

普通用户的授权方式是 sudo 

作用是:可以使普通用户用指定的用户身份进行命令

授权方法:

visudo   此命令作用是编辑相当于打开vim etc/sudoers 文件并提供语法检测  在100行左右进行编辑

  username   hostname=(newsusername)   [NOPASSWD:]  /command, /command

例如:

  用 which useradd  查看该命令所在目录

   lee    linux.com=(root)     [NOPASSWD:]  /usr/sbin/useradd,/usr/sbin/userdel

实验过程:

首先在超级用户下,进入visudo 在100行左右写入lee    linux.com=(root)     [NOPASSWD:]  /usr/sbin/useradd,/usr/sbin/userdel

然后退出  su - lee ------->  sudo useradd westostest   即可进行超级用户权力下放给普通用户

本章习题如下

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值