array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 linux 基础学习4 - 爱码网

************第五单元***********

一、什么是用户

1、用户就是系统的使用者,我们以前使用的root以及student都是用户。一个系统可以有多个普通用户,但是只能有一个超级用户。下面我们查看用户信息是如何在系统中存储的。

2、用户信息涉及到的系统配置文件:

使用  vim  /etc/passwd        查看用户信息

linux 基础学习4

信息格式为:       用户名:密码:uidgid:说明:家目录:用户使用的shell

3、 vim  /etc/shadow           查看用户认证信息

linux 基础学习4

信息格式:        用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日

1)我们看到,密码为加密形式,如果没有设置密码则为!!

2)最后一次修改密码的时间为距离计算机元年(1970.1.1)的天数

3)使用passwd 可以修改用户认证信息

passwd 参数 用户名称

-S student     用户密码信息

-l student     锁定帐号

-u student    解锁

-n 天数student    设定密码最短有效期天数

-x 天数 student    设定密码最长有效期

-w 天数 student    警告期

-i 天数 student    设定用户非活跃天数

-d student    清除用户密码


4、 vim  /etc/group      查看组信息

linux 基础学习4

信息格式为:
组名称:组密码:组id(gid):附加组成员(用户名)

5vim  /etc/gshadow        查看组认证信息

linux 基础学习4

使用命令   ls  /home:可以列出普通用户家目录

使用命令   ls  -a  /etc/ skel  : 可以查看用户骨架文件

二、用户管理

使用监控 命令  :watch -n 1 ' tail -n 3 /etc/passwd /etc/group; ls -l /home'

1.用户建立

(1)useradd  参数  用户名字

-u         指定用户uid

-g         指定用户初始组信息,这个组必须已经存在

-G         指定附加组成员,这个组必须存在

linux 基础学习4

(2)useradd  参数  用户名字

-c          用户说明

-d         用户家目录

-s         用户所使用的shell/etc/shells记录了用户能使用shell的名字


linux 基础学习4

2、用户删除

userdel  -r 用户名称             -r表示删除用户信息及用户的系统配置

 上图中使用  userdel  -r   redhat   删除名为redhat 的用户。


3.组的建立与删除

(1)建立

groupadd   组名称        建立组(不指定组的gid)

groupadd     -g       gid      组名称        建立组(指定组的gid)

注意:1)不能使用已经存在的组名称建立组;

            2)不能使用已经存在的gid建立组。

linux 基础学习4

(2)删除

groupdel    组名字     删除组

linux 基础学习4

4、用户id信息查看(不加参数默认为显示所有信息)

id 参数 用户

-u    用户uid

-g    用户初始组id

-G    用户所有所在组id

-n    显示名称而不是id数字

-a    显示所有信息

linux 基础学习4

 

5、用户信息更改

usermod 参数 用户

-l      更改用户名称

-u    更改uid

-g    更改gid

-G    更改(添加)附加组

-aG    添加附加组

-c    更改说明

-d    更改家目录指定

-md    更改家目录指定及家目录名称

-s    更改shell

-L    冻结帐号

-U    解锁

三、用户权力下放

1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户

下放权力配置文件:/etc/sudoers

 

2.下放权力的方法

1超级用户执行visudo进入编辑/etc/sudoers模式

2格式:

获得权限用户 主机名称=(获得到的用户身份) 命令

admin (可以为任意用户)          server1.example.com=(root)        /usr/sbin/useradd

用户能在server1.example.com以超级用户身份执行/usr/sbin/useradd

 

3.执行下放权限命令

sudo 命令 ##如果第一次执行sudo需要输入当前用户密码

/etc/sudoers中如果设置如下:

admin(可以为任意用户)   server1.example.com=(root)     NOPASSWD: /usr/sbin/useradd

表示用户调用sudo命令的时候不需要自己密码

 4.例子:

(1)使用命令

在超级用户下:

1)为了方便把主机名修改为 server1.example.com

2)用hostname命令显示主机名

3)使用命令visudo 进入编辑/etc/sudoers模式进行修改

在普通用户下:

执行      sudo useradd  用户名    添加新的用户

第一次执行需要密码,为了不需要使用密码,再次使用命令visudo 进入编辑/etc/sudoers模式进行修改

按照上面3所示格式。

linux 基础学习4

(2)编辑模式下修改内容(在第99行)

linux 基础学习4


四、root密码忘记


1.重新启动系统

2.在系统启动阶段按上下健停止系统系统引导
3.选择启动引导标题,按“E”进行编辑
4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.passwd root修改超级用户密码
8.建立文件/.autorelabel让系统从新扫描所有文件
9.exit两次使系统自动重新启动


相关文章: