LINUX系统学习笔记06-账号管理与ACL权限设置

LoRa模块选型指南:正点原子ATK-LORA-01与SX1278芯片深度评测(含实测距离/功耗数据) 本文深度评测了正点原子ATK-LORA-01与SX1278芯片的性能表现,通过实测数据展示其在复杂环境中的通信距离与功耗表现。特别适合智慧农业、工业监测等物联网应用场景,提供详细的配置指南和优化技巧,帮助开发者实现高效、低功耗的LoRa通信解决方案。 阅读详情
六、账号管理与ACL权限设置
6.1 账号与群组管理的文件结构
(1)/etc/passwd  所有账号与一般身份使用者的相关信息。
每一行定义一个用户,格式为 name:password:uid:gid:comment:home:shell。分别为:
name -- 用户登录名
password -- 用户口令,该口令是加密过的。如果此域为空,则表明该用户登录无需口令。
uid -- 用户UID。用户登录后,系统通过该值,而非用户名来标识用户。
gid -- 用户组ID。
comment -- 用户相关信息,比如真实姓名、用户描述等。 
home -- 用户的家目录的绝对路径。
shell -- 用户环境,也就是用户使用到的SHELL路径。


(2)/etc/shadow  个人密码信息。
-- 用于存放用户口令信息,仅有root用户才有查看和修改权限。
字段之间用“:”隔开,分别为:
(1)用户登录名
(2)加密后的用户口令 -- 长度为13个字符。如果此域为空,则表明该用户登录无需口令。
(3)最后一次修改密码的时间 -- 存放的是时间戳。
(4)最小时间间隔 -- 两次修改口令之间所需的最小天数,可用于避免频繁修改口令。
(5)最大时间间隔 -- 口令保持有效的最大天数,可用于强制定期修改口令。99999表示永远有效。
(6)到期警告提前天数 -- 密码过期提前警告用户的天数,默认值是7天。
(7)密码过期后的账号宽限天数。
(8)失效日期 -- 账号的生存天数,到期后该账号不能再用来登录。
(9)保留字段


(3)/etc/group   群组信息。
--存放用户组信息。每行一个组。字节之间以“:”隔开,分别是:
(1)组名
(2)组口令 -- 一般不使用
(3)GID、组ID
(4)组成员


6.2 账号管理
6.2.1 新增、删除和编辑账号
(1) useradd 新增账号
语法:useradd [-u UID] [-g 群组名称] [-G 次要群组名称] [-mM] [-d 家目录路径] [-s shell] 账号名称
选项:
    -u 后面接UID,给账号指定UID。
    -g 后面接群组名称,给账号指定群组。
    -G 后面接群组名称,给账号指定还可以加入的群组。
    -m 建立用户家目录。
    -M 不建立用户家目录。
    -d 指定某个目录为家目录,必须为绝对路径。
    -s 给账号指定shell。


(2) passwd 给账号设置密码
语法:passwd [账号]。 如果没有加[账号]则是修改自己的密码。


(3) chage 显示密码详细或修改密码属性
语法:chage [-ldEImMW] 账号
选项:
    -l 列出该账号的详细密码属性,如
    -d 后面接日期(格式YYYY-MM-DD),修改最近一次更新密码的日期(/etc/shadow第3字段)。
    -E 后面接日期(格式YYYY-MM-DD),修改账号生效日期(/etc/shadow第8字段)。
    -I 后面接天数,修改密码失效的天数(/etc/shadow第7字段)。
    -m 后面接天数,修改密码最短保留天数(/etc/shadow第4字段)。
    -M 后面接天数,修改密码多久需要进行修改(/etc/shadow第5字段)。
    -W 后面接天数,修改密码到期警告的提前天数(/etc/shadow第6字段)。


(4)usermod 修改账号。
语法: usermode [-cdegGlLsuU] 账号
选项:
    -c 后面接账号说明,即修改账号的描述。
    -d 后面接账号家目录,即修改账号的家目录。
    -e 后面接日期(格式YYYY-MM-DD),即修改账号生效日期。
    -f 后面接天数,即修改密码过期后的宽限天数。
    -g 后面接初始群组名。
    -G 后面接次要群组名。
    -l 后面接账号名,即修改账号名称。
    -L 暂时冻结账号密码。
    -u 后面接UID,修改账号的UID。
    -U 解冻账号密码,与-L相对。


(5) userdel 删除账号
语法: userdel 账号


6.2.2 针对账号的操作
(1)finger 查看账号信息
语法: finger [-s] 账号


(2)id 查看账号UID和GID
语法: id 账号。 不加账号则表示查看自己的ID信息。


6.2.3 新增、删除和编辑群组
(1)groupadd 新增群组
语法: groupadd [-g GID] 群组名


(2)groupmod 修改群组
语法: groupmod [-g GID] [-n 群组名] 群组名
选项:
    -n 后面接新的群组名,即修改群组名。


(3)groupdel 删除群组
语法: groupdel 群组名


(4)gpasswd 群组管理员功能
系统管理员使用: 
    [1] gpasswd 群组名
    -- 给群组设置一个密码。
    [2] gpasswd [-A user1,...] [-M user3,...] 群组名
    [3] gpasswd [-rR] 群组名
选项:
    -A 后面接账号列表(多个账号以,隔开),将群组的管理权交给后面的账号管理。
    -M 后面接账号列表(多个账号以,隔开),将后面的账号加入到这个群组当中。
    -r 移除群组的密码。
    -R 让群组的密码栏失效。


(5)群组管理员使用: gpasswd [-ad] 账号 群组
选项:
    -a 将账号加入到群组中。
    -d 将账号从群组中删除。


6.3 权限细节规划--ACL的应用
Linux的权限控制是按照OWNER、GROUP、OTHER三者来划分的,这样就会存在权限控制不够精细的问题。比如想让不存同一群组的用户拥有OWNER一样的权限,那么处理的办法有是三个:
(1)将该用户加入相同的群组。后果是用户会拥有群组的更多权限。
(2)将权限赋予OTHER。后果是其他用户也会拥有该权限。
(3)设置sudo,是该用户可进行操作。但当文件跟用户数量很多时,该方法不够灵活。
ACL(Access Control List)的存在可以实现权限的细节规划。
 
(1) setfacl -- 设置某个文件/目录的ACL规范
语法: setfacl [-bkRd] [{-m|-x} acl参数] 文件或目录名
选项:
    -m 设置后面的acl参数给文件/目录,不可与-x一起使用。
    -x 删除后面的acl参数,不可与-m一起使用。
    -b 移除所有的ACL参数,用于卸载ACL设置。
    -k 移除预设置的ACL参数。
    -R 递归设置ACL(子目录和子文件都会被设置)。
    -d 以预设值设定ACL参数。仅对木有有效。
ACL参数格式: 
     user::[rwx-]  -- OWNER拥有的权限,如user::rw-。
     user:username:[rwx-] -- 用户username拥有的权限,如user:john:rw-。
     group::[rwx-] -- 群组拥有的权限,如group::rwx。
     group:groupname:[rwx-] -- 群组groupname拥有的权限,如group:devgp:rw-。
     mask::[rwx-] -- 用户和群组的有效权限。用户或群组所设定的权限必须存在于mask的权限设置范围内才有效。
     other::[rwx-] -- 其他用户的权限,如other::rw-。
示例:
a)将文件myfile的读/执行权限赋予OTHER里边的myuser账号:
setfacl -m u:myuser:rx myfile 或 setfacl -m user:myuser:rx myfile
b)将目录mydir的读/执行权限赋予另外一个群组mygroup(包括子目录和子文件):
setfacl -m d:g:mygroup:rx mydir 或 setfacl -m d:group:mygroup:rx mydir
c)设置文件myfile的有效权限为读。
setfacl -m m:r myfile
   
(2) getfacl -- 获取某个文件/目录的ACL规范
语法:getfacl 文件名


6.4 使用者身份切换
su -- switch user 以非登陆方式切换用户身份(即仅用户身份切换,但环境变量(如PATH/USER/MAIL)不对应变换)。
语法: su [-c 指令] 账号名
选项: -c 后接指令,仅执行一次。


su - -- 以登陆方式切换用户身份(用户身份切换,环境变量也对应变换)
语法: su - 账号名


sudo -- 以其他账号的身份执行指令
语法:sudo [-u 其他账号名] 指令
流程:
(1)系统在/etc/sudoers文件中搜索当前用户是否有执行sudo的权限;
(2)若当前用户拥有可执行sudo的权限后,让其输入密码进行确认(root执行sudo时,不需要输入密码;若被切换的账号名与当前用户相同,则不需要输入密码);
(3)若密码输入成功,则开始执行sudo后接的指令。




6.5 特殊权限 - SUID、SGID、SBIT
6.5.1 SUID
在文件拥有者的x权限上出现s标志,则是简称为SUID的特殊权限。SUID有以下功能与限制:
(1)SUID权限仅对二进制程序(binary program)有效;
(2)执行者对该程序需要具有x的可执行权限;
(3)本权限仅在执行该程序的过程中有效。
(4)执行者将拥有该程序拥有者的权限。
示例:在LINUX中,所有账号密码都记录在/etc/shadow文件中,其权限为 -r-------- l root root,即仅有root可以读写该文件。那么一般的用户要修改自己的密码(其实也是修改该文件中自己的密码属性),则需要通过passwd指令来执行。这时:(1)一般用户对于/usr/bin/passwd具有x权限,可以执行passwd指令;(2)passwd的拥有者为root;(3)一般用户执行passwd的过程中,会暂时拥有root的权限。于是,/etc/shadow就可以被一般用户执行的passwd所修改。


6.5.2 SGID
与SUID一样,SGID特殊权限是文件在群组的x权限出现s标志。与SUID不同的是,SGID可以针对目录和文件来设定。
如果是针对文件,SGID有以下功能:
(1)SGID对二进制程序有用;
(2)执行者对该程序需要具有x的可执行权限;
(3)执行者在执行过程中将会获得该程序群组的权限。
如果是针对目录,SGID有以下功能:
(1)用户若对该目录具有r和x的权限,则该用户能够进入此目录;
(2)用户在这个目录下的有效群组将会变成该目录的群组;
(3)若用户在该目录下具有w权限,则使用者所建立的新文件的群组与该目录的群组相同。


6.5.3 SBIT
SBIT(Sticky Bit)仅针对目录有效。当用户对于目录的身份是群组或者其它的身份,并且拥有该目录w权限,则它可以删除/重命名/移动该目录下任何人建立的文件或目录。但如果该目录加上SBIT权限后,该用户就只能够删除/重命名/移动自己建立的文件或目录,而无法删除其他人的文件。


6.5.4 SUID/SGID/SBIT权限设定
(1)使用chmod+数字来设定权限:
在数字前面加多1个数字来表示要设置SUID/SGID/SBIT权限,该数字的意义为:
4为SUID、2为SGID、1为SBIT。如要设置某文件权限为“-rwsr-xr-x”,则在原先的755前再加上4,即 chmod 4755 filename。
(2)使用chmod+符号来设定权限:
如chmod u+s filename -- 设置SUID; chmod g+s,o+t filename -- 设置SGID和SBIT。


6.6 用户间的信息通讯
6.6.1 查询用户
w 或 who -- 查看当前已登录的用户
lastlog -- 查看每个账号最近登录的时间


6.6.2 用户间对话
write -- 向指定用户发送信息,按ctrl+d结束输入。
语法: write 账号 [该账号所在的终端接口]
示例: write myuser pts/2


mesg  -- 开启或屏蔽他人发来的信息
语法: mesg [yn] (y为开启,n为关闭)
示例: mesg n
说明: 对root发来的信息,无法屏蔽


wall -- 向系统上所有用户发送信息
示例: wall "i will shutdown it!"


6.6.3 用户信箱
(1)寄信:输入 mail 账号 -s 标题 [< filename]
示例1:# mail myuser -s "hello,mail"
Hello,Linux mail.
This is the first time to send mail.
.                --最后一行输入小数点.,表示结束。
Cc:       --抄送
实例2:# mail myuser -s "hello,mail" < /usr/mymail
将/usr/mymail的文件内容当做邮件内容进行发送。


(2)收信:直接输入 mail 可获得邮件列表,如以>N开头则标识未读,在列表最后面的&后输入?可以进行邮件的操作。
邮件操作指令主要有:
 h 列出邮件标题,查看10封邮件的标题,可以输入 h40。
 d 后接邮件号码,删除一封邮件,如 d8,删除9到11则为d9-11。
 x 不保存直接退出(即之前删除操作不会真正执行)。
 q 保存后退出(之前的删除操作会真正执行)。已读邮件会存入 ~/mbox(路径可能未/home/myuser/mbox),读取已读文件则使用 mail -f /home/myuser/mbox。
linux v3h平台开发系列详解(GMSL摄像头篇):1.11 解串器MIPI 1.5G高速率特殊deskew配置 解串器max96712 deskew配置 阅读详情

相关推荐

Arcgis 10.3 与 ArcGIS Engine 10.3 安装与破解

Arcgis 10.3 与 ArcGIS Engine 10.3 安装与破解

weixin_52127098的博客 4725

Linux笔记——/etc/shadow文件

Linux笔记——/etc/shadow文件

weixin_42638731的博客 1万+

大数据运维面试题及答案

1. 架构组成:- 2 个 NameNode(Active 活跃节点、Standby 备用节点),实时同步元数据(通过 JournalNode 集群,默认 3 个节点,存储 edits 日志,Active 写入、Standby 读取以保持元数据一致);- 容错性强:通过 RDD 的 “ lineage(血缘)” 机制,任务失败时可快速重算,无需从头执行。:集群 “大脑”,管理元数据(文件目录、块位置),实时响应客户端请求,数据存于内存,元数据镜像(fsimage)和编辑日志(edits)持久化到磁盘;

weixin_42795092的博客 907

linux修改非root用户密码永不过期

修改shadow 默认权限是400要修改要先改600然后修改好后改回400 chmod 600 /etc/shadow vim/etc/shadow 一般新建的用户这里是 90改为99999即可(倒数第二个可以根据root修改) 然后保存 记得修改权限修改回来 chmod 400 /etc/shadow ...

edonzhon 1344

Cadence学习之路:什么是PCB工艺的正片与负片

正片??负片??Flash焊盘的创建与使用

qq_46757048的博客 4245

线结构光三维重建(二):光平面标定与激光轮廓提取的实战优化

本文深入探讨了线结构光三维重建中的光平面标定与激光轮廓提取两大核心环节的实战优化。详细介绍了从棋盘格标定板法到自动化高鲁棒性标定的流程优化,并分享了针对复杂工业场景(如低对比度、高反光表面)的激光轮廓提取组合策略,旨在提升三维重建系统的整体精度与稳定性。

weixin_29057237的博客 331

系统测试,文件权限问题解决

系统测试,文件权限问题解决

weixin_46010646的博客 516

RK3588+TRL8367s四网口千兆交换机硬件调试与DTS配置实战

本文详细介绍了基于RK3588处理器与RTL8367S交换机芯片构建四网口千兆交换设备的硬件调试与DTS配置实战。文章深入对比了MDIO与SMI两种通讯方式的配置差异,提供了详尽的设备树代码示例,并总结了常见问题的排查思路,旨在帮助开发者高效完成嵌入式网络设备的软硬件集成与调试工作。

weixin_28308325的博客 468

Linux机器24项安全合规设置

1. 检查FTP配置-限制用户FTP登录控制FTP进程缺省访问权限,当通过FTP服务创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限。操作:(1)vsftp:# vi /etc/vsftp/vsftpd.conf 手动将userlist_enable改为yes//限制/etc/vsftpd/user_list文件里的用户不能访问。# vi /etc/pam.d/vsftpd将file=后...

Macro2的博客 7553

硬件压力测试工具使用方法

B, --bind host# 绑定到主机的多个地址中的一个。当客户端到服务器端的测试结束时,服务器端通过-l选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。-c, --client host#如果Iperf运行在服务器模式,并且用-c参数指定一个主机,那么Iperf将只接受指定主机的连接。-C, --compatibility# 与低版本的Iperf使用时,可以使用兼容模式。-b, --bandwidth #[KM] UDP模式使用的带宽,单位bits/sec。

weixin_53303772的博客 8215

【RH850/U2A】:功能安全

功能安全相关

3130

linux 系统中 /etc/passwd 和 /etc/shadow文件详解

在linux操作系统中, /etc/passwd文件中的每个用户都有一个对应的记录行,记录着这个用户的一下基本属性。该文件对所有用户可读。  而/etc/shadow文件正如他的名字一样,他是passwd文件的一个影子,/etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。但是/etc/shadow文件只有系统管理员

fly小灰灰的专栏 4万+

【QNX+Android虚拟化方案】01 - 芯片介绍

【QNX+Android虚拟化方案】01 - 芯片介绍

|~~~热爱生活、努力学习的小伙汁~~~| 2945

【Linux命令】《鸟哥Linux基础》第十三章 Linux账号管理与ACL权限设置

第十三章 Linux账号管理与ACL权限设置 13.1 Linux的账号与用户组 13.1.1 用户标识符:UID与GID 人一般容易记忆账号,但是Linux主机只认识ID,账号与ID的对应关系写在/etc/passwd中。 每个登录的用户都至少会获取两个ID:用户ID(UID)、用户组ID(GID)。 文件通过UID和GID判别它的拥有者和用户组。要求显示文件属性时,系统根据/etc/passwd和/etc/group的内容找到UID和GID对应的账号与组名,显示出来。 重要内容: /etc/passwd

qq_30885821的博客 1617

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

《鸟哥的Linux私房菜》学习笔记

《鸟哥的Linux私房菜》学习笔记 这是一份学习《鸟哥的Linux私房菜》的学习笔记,记笔记的原则是,感觉平时可能会用到的 就记录的详细一些,感觉暂时用不上的,只需要知道要解决一个问题时有这个命令,这个办法 可以用。真到用到时,再详细看具体怎么做。Linux是非常好用的操作系统,会越用越好用的, 对于Linux的掌握,需要不断地学习与积累,更重要的是需要“生活在Linux”下,...

103

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【网络安全零基础入门必知必会】linux安全加固(非常详细)零基础入门到精通,收藏这一篇就够了

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。目的:在设备权限配置能力内,根据用户的企业需要,配置其所需的最小权限,以减少非法访问的可能性。目的:修改创建文件或目录时的默认权限,防止属于该组的其他用户级别组的用户修改该用户的文件。

2201_75735270的博客 1198

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

达内linux运维课程,达内linux运维工程师

Unit01: 开学典礼 、 虚拟机的使用 、 GhostUnit02: 微软产品介绍 、 TCPIP协议及配置amUnit02: 微软产品介绍 、 TCPIP协议及配置pmUnit03: 本地用户与组 、 NTFS权限amUnit03: 本地用户与组 、 NTFS权限pmUnit04: 文件共享 、 磁盘管理amUnit04: 文件共享 、 磁盘管理pmUnit01: 计算机网络 、 数制 、 ...

weixin_39784972的博客 1080

【网络安全零基础入门必知必会】linux安全加固(非常详细)零基础入门到精通,收藏这一篇就够了(07)

【网络安全零基础入门必知必会】什么是Linux?Linux系统的组成与版本?什么是命令(01)【网络安全零基础入门必知必会】VMware下载安装,使用VMware新建虚拟机,远程管理工具(02)【网络安全零基础入门必知必会】Linux系统目录结构详细介绍(05)

Libra1313的博客 748

LINUX从零开始——ADMIN(云计算系统管理)——Day1 [云网络基础]

NSD小白班正式开课! 零基础学习linux~ 新的征程开始啦~ 一、软件素材 百度云盘: 链接:https://pan.baidu.com/s/1hmepKHxMG_vPnBwWlwAlTA 提取码:k6xs 二、进行安装Cisco模拟器软件 进行简单的汉化:找到软件的安装位置 将Chinese.ptl文件放入到languages文件夹 选择语言包,需要重启进行生效 #...

hufei_的博客 920

网安人必须人手一份的《Linux私房教程》,GitHub星标286K!

Linux是一套免费使用和自由传播的操作系统内核,是一个基于POSIX和Unix的多用户、多任务支持多线程和多CPU的操作系统内核。在每一章的结束会有一个重点回顾,来帮助大家重新梳理学习到的内容。今天给小伙伴们分享一份Linux私房教程,这份教程完全是从零基础开始带你一步步深入的,不管是零基础的小伙伴还是已经在行业内沉浸多年的小伙伴都是有帮助的。因为有很多小伙伴是非科班出身,对于计算机软/硬件方面的概念不是很熟悉,想要了解Linux的概念还是有些难度的,所以单独增加了这一章来帮助小伙伴学习。

公众号:该用户快成仙了 698

Linux知识大全_鳥哥的私房菜

備注:鳥哥的私房菜網址,請點擊此處;收集起來爲自己學習提供方便 鳥哥的 Linux 私房菜 -- 鳥哥的 Linux 私房菜 首頁 鳥哥的 Linux 私房菜 鳥站首頁 繁體主站 基礎篇 伺服器 企業應用 桌面應用 安全管理 書籍勘誤 鳥哥我 since 2002/01/01 新手建議 開始閱讀之前 網...

陆山右的技术博客 471

TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍

1)通过“开始”-->“控制面板”-->“网络和Internet”-->“网络和共享中心”-->“更改适配器设置”可查看网络连接列表,双击“本地连接”-->“属性”-->“Internet协议版本4(TCP/IPv4)”,可打开属性设置窗口。总结:192.168.1.1--->C类地址--->网络位.网络位.网络位.主机位--->网络位不变,主机位全为0--->网络名称192.168.1.0。子网掩码:为计算机标识IP地址的网络位与主机位,利用二进制的1标识网络位,利用二进制的0标识主机位。

qq_58152870的博客 3570

课程表

Unit02: 微软产品介绍 、 TCPIP协议及配置amUnit02: 微软产品介绍 、 TCPIP协议及配置pmUnit03: 本地用户与组 、 NTFS权限amUnit03: 本地用户与组 、 NTFS权限pmUnit04: 文件共享 、 磁盘管理amUnit04: 文件共享 、 磁盘管理pmUnit01: 计算机网络 、 数制 、 网络通信参考模型amUnit02: 物理层解析 、 综合布...

weixin_33859504的博客 119

linuxj基础知识(持续更新)2021-07-05

ADMIN(云计算系统管理) Day01云计算介绍、TCP/IP协议及配置 Day02:Linux系统简介、安装Linux系统、Linux基本操作 Day03:命令行基础、目录及文件管理、文本内容操作 Day04:归档及压缩、重定向与管道操作、find精确查找、vim高级使用 Day05:RPM软件包管理、Yum软件包仓库 Day06:用户管理、组账号管理、计划任务 ENGINEER(云计算应用管理) Day01:基本权限和归属、附加权限、ACL策略管理 Da...

m0_58002632的博客 265

运维--学习阶段问题解答(1)(自测)

对学习运维的阶段问题进行解答(面试常问,多用于自测)

2503_91800161的博客 683
上一篇: LINUX系统学习笔记05-压缩与解压缩
下一篇: LINUX系统学习笔记07-磁盘配额与磁盘阵列
Eric1006
博客等级 码龄24年 59粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值