Linux权限大揭秘:深入理解系统安全

Linux系统安全:日志管理与用户权限控制 本文深入探讨了Linux系统中日志管理和用户权限控制的策略。首先,讨论了日志配置错误可能导致的问题及其解决方案,强调了正确配置/etc/syslog.conf的重要性。其次,探讨了如何通过编辑/etc/securetty文件来禁止root用户通过终端设备登录,以增强系统的安全性。文章还介绍了认证技术,包括PAM模块的使用、SSL证书的验证、Kerberos认证系统以及SSH加密认证,旨在为读者提供一个全面的Linux安全认证和权限管理的视角。 阅读详情

🍔前言:

在之前的内容中,我们了解了Linux中的一些简单权限,如root超级账号与普通账户的区别、Linux文件权限管理、文件类型和访问权限以及许多关于修改权限的指令及其规则……今天我们继续进行权限的学习,让我们进一步的了解权限在Linux系统上的作用。

权限内容不完善的可以观看:“权限之舞:Linux安全之道icon-default.png?t=N7T8https://blog.youkuaiyun.com/m0_74755811/article/details/133859052?spm=1001.2014.3001.5501

目录

chown指令

chgrp指令

文件类型

file指令

目录下的权限

粘滞位

关于权限的总结

上图是一个文件的基本信息,后9个分别是拥有者、所属组与other的权限。后面两个why分别对应的是拥有者与所属组的信息,当我们想要访问这个文件时,Linux系统会进行用户的匹配,验证我们是哪一种“身份”,然后才开启对应身份相对应的权限。而这个身份的验证匹配只有一次,如果所属组与拥有者都是访问的人时,Linux系统先会从拥有者开始进行识别,如果识别成功则停止反之则继续从所属组、other继续进行依次识别。

当我们使用chmod指令将拥有者的r(读)权限进行删除时,我们想要进行访问就会被禁止。

但是我们如果将拥有者why改为别的用户,则我们why的账号将以所属组的身份进行访问文件,所以我们就有权限进行访问读file.txt文件。

chmod是对我们文件对应的权限属性进行修改的,而一个文件的访问不仅仅与文件的权限有关,也与访问者的身份有关,那我们怎么进行对“人”进行修改呢?

chown指令

**功能:**修改文件的拥有者
**格式:**chown [参数] 用户名 文件名
我们可以将文件拥有者的信息使用chown指令进行修改。

下面就是一段实例:

我们想将file.txt文件的所属者改为一个叫wyj的普通用户,但是出现了操作不被允许的话语,证明修改失败了,这是怎么回事呢?为什么我是文件的拥有者,想将文件传给别人Linux却不被允许呢?

Linux很好的避免了传输垃圾文件或病毒的问题,当我们给别人文件时,还是需要征得别人的同意的,要不然会出岔子的!!!

那软的不行,我们就来硬的,我们直接使用sudo指令,以root账户的指令进行修改所属人,或者使用su指令切换成root账户进行修改。 所以我们知道普通用户是无法将拥有者进行更改的,必须使用root账户进行修改。root账户没有权限的限制。

chgrp指令

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组

chgrp是修改文件的所属组的一个指令,与chown指令类似,我们是不能在普通用户上进行修改的,必须要使用root超级用户进行修改。

将所属组、拥有者全部改为root也是可以的,所以在root账户下我们想干什么就干什么。

那拥有者与所属组都可以修改,我们也想修改一下other有没有对应的指令呢?

答案是没有的,但是当我们修改拥有者与所属组时,other中对应的人是一直在改变的,other是其他两种角色的补集。所以修改other就要通过修改拥有者与所属组来实现。

那使用chown与chgrp指令进行修改拥有者与所属组太慢了,我们就可以直接使用chown组合进行全部修改拥有者与所属组。

格式: chown 拥有者:所属组 文件名。

所以在修改的同时,所属组、拥有者以及other都在改变。


文件类型

我们已经将一个文件的绿色部分进行详细的讲述,现在我们继续来了解一下文件类型,也就是文件信息中第一个代表的内容。

我们可以与windows做一个类比,Windows模式下的文件都是以文件后缀进行表示的,而Linux下的文件却是以第一个符号表示的。Linux的文件类型不通过后缀区分(不代表Linux不用后缀) 。

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

当我们进行编译时,我们使用gcc或g++进行编译,但是我们只能编译一些.c或.cpp文件,不能编译txt文件,这就是Linux下使用后缀的情况。可以使用Linux系统直接操作可以不考虑后缀,但是如果使用外部指令时我们就要考虑后缀的作用。而且使用后缀后使用者也可以更直观的看出文件的作用 !

file指令

功能说明:辨识文件类型。
语法:file [选项] 文件或目录…
常用选项:

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。

我们可以使用file指令识别详细的文件类型:

甚至可以识别出是什么类型的文件!

目录下的权限

我们使用root账户与普通账户分别全部创建了一个目录:

普通用户创建的目录为test_dir,root账户创建的目录是dir。现在就有一个问题抛出:在权限已知的情况下,我们能否知道怎么才能阻止一个用户去访问一个目录呢?应该删除r、w、x哪一个才可以。

我们可以使用控制变量法进行尝试,首先使用chmod指令删除r权限:

我们可以看出删除r指令后,我们可以随意地进出目录。

然后我们加上r,删除w权限进行试验:

我们也可以看出删除w后也可以照样进行访问目录。

最后我们来试一试x: 只有x才不能被访问。

所以访问一个目录是x权限地作用。

那r地权限是什么呢?w地权限是什么呢?

x可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.

r可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
w可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

但是如果我们想将整个目录进行权限限制,即不让人看也不让人修改,那么我们可以使用chmod指令将权限全部关闭:

我们可以看出test_dir目录已经没有任何权限了,但是当我们使用root账户时就会发现,一切权限都可以无视:

我们可以看出root账户下,任何地增删查改都可以实现!!!

上面是我新创建的两个东西,一个dir1地目录与一个file.txt的文件,为什么文件的初始权限为664,目录的初始权限为775呢?创建的不是777呢?

粘滞位

一个文件的起始权限是以666开始的,一个目录的起始权限是从777开始的,因为在Linux系统中有一个umask(权限掩码)的东西,权限掩码就是定制一个文件被创建的时候的默认权限。

我们可以在系统中查询我们的权限掩码,输入umask指令即可。我们只关心后三个数字,第一个可以被默认为八进制的标识符。所以002转换成二进制为:000 000 010。

我们所创建的文件目录中的权限是从起始权限中去掉umask中出现的权限。注意:去掉不是减法

所以我们可以得到:

这就是我们所得到的权限。运算法则为:起始权限 & (~umask) = 最终权限(默认)。


上面是我使用why账户创建的三个文件,以及使用root账户创建的三个文件。然后使用su指令进入另一个wyj普通用户中去。

然后我想要在此目录下增删查改文件或目录是没有作用的,因为wyj账户中没有w权限。这是理所当然的。所以我们就进入到root账户去。

root不想让人看三个文件的任何内容,所以使用chmod将文件权限全部关闭,然后再返回到why的用户下:

我们why用户想要查看root_file的文件时是没有任何权限的,但是我们可以将root账户所创建的文件全部删除掉。因为lesson6目录的是why用户的,目录的权限约束是高于目录中的文件的!!!

总结:一个文件能否被删,并不取决于文件本身!!!而是取决于文件所处的目录拥有者是否拥有w权限!!

所以这样写文件是很危险“不文明”的行为,但是Linux早就避免了次情况:

在家目录下,只有拥有者才有rwx权限!!!那我们如果想要进行文件共享呢?应该在哪个目录下进行操作呢?

Linux系统下专门为共享资源创建了一个目录tmp目录。

给other新增一个权限:t

粘滞位:给目录中的other设置了一个权限位,具有x的意义,同时也进一步对目录中的权限进行特殊的限制:该目录里面的文件,只有root1或者文件的拥有者有权利进行删除。其他人一律不允许!!

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

关于权限的总结

关于权限的总结:
目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限

所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。


以上就是本次的全部内容,感谢大家的观看,你们的三连关注是博主最大的动力!谢谢!!!

学习计划安排


我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方优快云官方合作二维码免费领取哦,无偿分享!!!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

本文转自 https://blog.youkuaiyun.com/m0_74755811/article/details/134056158?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-19-134056158-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-19-134056158-null-null.nonecase,如有侵权,请联系删除。

ESP32天线阵列实现Wi-Fi空间成像与无直视定位 Wi-Fi信道状态信息(CSI)是OFDM系统中表征多径传播特性的基础物理层参数,其复数值包含幅度与相位,可反映无线环境的空间特征。基于CSI的射频感知技术,通过提取子载波级信道响应,结合阵列信号处理,实现到达角(AoA)估计与深度映射,本质是将通信链路重构为空间域传感器。该技术无需专用雷达硬件,具备低成本、被动式、隐私友好等工程优势,在室内定位、行为识别、仓储导航等场景具有广泛落地价值。本文聚焦ESP32平台,详解多芯片相位同步、CSI零拷贝采集、嵌入式MUSIC算法及信道图谱轻量化部署等关键实现。 阅读详情

相关推荐

COLMAP在Ubuntu下的编译陷阱与实战避坑指南——从环境配置到三维重建全流程

本文详细介绍了在Ubuntu系统下编译和配置COLMAP三维重建工具的全流程,包括环境准备、依赖库安装、CUDA加速配置以及常见编译问题的解决方案。通过实战案例演示了从图像特征提取到稠密重建的完整步骤,并提供了性能优化和问题排查的实用技巧,帮助用户高效完成三维重建任务。

weixin_29003437的博客 1048

【Linux】深入理解linux权限

本篇文章,我们深入探讨了Linux系统中的权限管理,包括权限的概念、用户角色、文件属性及其权限设置的操作方法。了解并掌握这些内容对于管理Linux系统的安全性至关重要。通过合理配置文件权限和用户角色,可以有效控制文件访问、提高系统的安全性和灵活性。

2301_80955819的博客 2896

Linux 命令之 locale -- 设置和显示程序运行的语言环境

文章目录命令介绍locale 设置规则使用详解(一)查看当前 locale 设置(二)查看当前系统所有可用 locale(三)设置系统的 locale 命令介绍 locale 是 Linux 系统中多语言环境的设置接口,在 Linux 中,使用 locale 命令来设置和显示程序运行的语言环境,locale 会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境。 通过 locale 来设置程序运行的不同语言环境,locale 由ANSI C提供支持。locale 的

liaowenxiong的博客 3万+

深入理解 Linux 权限管理:从 Shell 到文件权限

Shell 是 Linux 操作系统中的一个中间层,类似于一个桥梁,连接了用户与操作系统的内核(kernel)。我们平时通过命令行输入的指令,都是通过 Shell 来传递给内核执行的。你可以把它想象成一个助手,它帮你传达命令并把执行结果反馈回来。Shell 比喻:小明和王婆的故事小明:用户,想要完成一些操作。王婆:Shell,作为一个中介,负责传递小明的需求。小美:操作系统,最终接收命令并执行。小王:权限限制,可能会阻止命令的执行。村长:超级用户(root),可以直接进行任何操作。

2401_83603768的博客 2363

C#上位机性能优化全攻略:彻底解决界面卡顿+多线程死锁+PLC数据延迟,产线实测稳定运行2年

一开始我们用的是网上找的零散优化代码,根本满足不了要求,后来花了2个月的时间,把之前27条产线的代码整理、重构、优化,做了一套这套方案上线后,连续稳定运行2年零3个月:界面响应时间稳定在50ms以内,多线程死锁率持续为0,PLC数据延迟稳定在150ms以内,系统可用率≥99.99%,帮客户一年省下了超过480万的停线损失、罚款损失和人工成本,客户第二年就把剩下的22条产线也全部交给我们做了,还介绍了3家同行。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 294

OpenHarmony WebView引擎:从Chromium魔改到分布式渲染的终极解析

ArkWeb框架提供了强大的Web应用开发能力,但同时也需要注意网络安全问题,尤其是跨域请求方面。

m0_67505153的博客 1198

【Linux权限管理:深入理解与实践】

在Linux系统中,权限管理是维护系统安全和稳定性的关键。本文将深入探讨Linux权限的基本概念、类型、以及如何管理这些权限,以确保系统的高效运行和数据的安全。

2402_82806719的博客 2975

【AI Agent系列】【阿里AgentScope框架】深入源码:Msg是如何转变成模型需要的Prompt形式的?多模态Prompt如何构建?

前面咱们学习AgentScope,在使用Agent来对话时,输入为一个 Msg 对象,不能是字符串,然后在Agent内部,会将Msg对象转换为模型接受的Prompt。那 AgentScope 如何根据 Msg 形成相应模型接收的Prompt结构的?如何使用 Msg 带入更多的参数,传递给大模型呢?

同学小张的博客 1535

深入理解Linux权限管理:保护系统安全的重要措施

通过深入了解Linux权限的基础知识、管理工具和最佳实践,并遵循安全性考虑,管理员可以有效地配置和管理权限,提高系统的安全性和稳定性。只有在正确理解和应用权限管理的基本原则的基础上,才能真正发挥Linux操作系统的优势,并保护系统和用户免受潜在的安全威胁。本文将深入探讨Linux权限管理的概念、原则和实践,帮助您理解如何正确配置和管理权限,以确保系统的安全性和完整性。所有者是指创建文件或目录的用户,而权限定义了文件或目录的读、写和执行权限。除了正确配置权限外,还应注意保护文件和目录的权限。

鑫和皓的博客 1226

人工智能训练师三级补贴3120元申领全攻略|条件+流程+五省市对比

补贴是真的,但不是"白给"的。你需要满足社保、户籍、时间等条件,严格按照流程操作。记住四件事先确认自己是否满足条件,再报名——别考完了才发现领不到紧缺工种补贴更高——确认你所在城市是否在紧缺目录中证书下发后12个月内申请——设个日历提醒材料准备齐全再提交——避免来回折腾如果你正在考虑考人工智能训练师三级证书,想要从报名到备考到拿证到申领补贴的完整一站式指南,欢迎查看我的付费专栏:📖《人工智能训练师三级·从零到拿证完全指南》80篇系统化内容,覆盖报名、备考、冲刺、拿证全流程。

白话机器学习 1536

基于Claude Code的 规范驱动开发(SDD)指南

传统的AI辅助开发,如同手工作坊,我们向AI描述想法,它给我们零散的部件,我们再手动打磨、组装。这个过程充满了不确定性、信息损耗和重复劳动。本指南将尝试引领您进入软件开发的“工业时代”。在这里,

形上得其象,形下合于数;阴阳自济,玄理自明。 2750

Linux 深入理解权限

本文系统介绍了Linux系统权限管理机制,主要包括三方面内容:1)权限角色划分,包括拥有者(user)、所属组(group)和其他(other)三类角色,以及root用户与普通用户的权限差异;2)权限属性管理,详细解析了rwx三种基本权限的含义及对文件和目录的不同影响;3)权限操作实践,涵盖chmod、chown等权限修改命令的使用,八进制权限表示法,以及缺省权限与umask设置原理。文章通过大量实例演示了权限管理的核心概念,强调Linux通过权限机制实现多用户隔离和系统安全,同时指出root用户的特权地位

2301_79976271的博客 1455

【AI Agent系列】【MetaGPT】9. 一句话订阅专属信息 - 订阅智能体进阶,实现一个更通用的订阅智能体(2)

订阅智能体进阶(2)。不用爬虫,直接提取网页信息。从RunSubscription分离出AddSubscriptionTask的action,并且让SubscriptionRunner单独运行。

同学小张的博客 1588

【Linux】深入理解Linux文件权限

Linux文件权限是系统安全的基石,通过合理的权限设置,可以有效地保护文件和目录不被未经授权的用户访问或修改。通过学习和理解文件权限的基本概念,以及使用。

double222222的博客 1207

深度学习工具包 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")

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【Linux】用户和权限

深入理解Linux用户和权限对于系统管理员、开发人员和普通用户来说都是至关重要的。我将为大家全面介绍Linux中的用户和权限概念,深入解析其原理和用法,以及探讨如何正确配置和管理文件和目录的访问权限。无论是Windows、MacOs还是Linux都采用多用户的管理模式进行权限管理。在学习 Linux 用户之前,我们首先要知道 Linux 的 root 用户。

不能再留遗憾了的博客 1966

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【Linux】深入理解权限管理,提升系统安全与效率

Shell外壳程序,也称为Shell,是存在于操作系统之上的"命令行解释器",是面向用户的命令接口(存在于用户和内核之间,需求指令 执行结果)。粘滞位 (t):给共享目录/tmp中的other设置了一个权限位,它既具有x权限的意义,又保证了只有文件的拥有者、root、进行sudo的用户才能删除该文件,其他人不能删除此文件。普通用户不想把自己变成root,但我想以root的身份去执行指定的命令,此时只需要输入普通用户的密码,就可以以超级用户的身份去执行。的事情了,而工作绕不开的就是。

xx16755498979的博客 1023

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Linux入门指南:深入理解Linux权限管理机制

6.粘滞位若创建的共享文件对于other来说没有rw权限,那other可以删除吗?

ll778811的博客 1091

Linux权限数字化:解密文件权限的奥秘,掌握系统安全的关键!

在Linux操作系统中,文件权限管理是确保系统安全性和稳定性的重要机制。本文将深入探讨Linux数字权限的使用方法,分析其设计原理和实际应用场景。通过对权限值的详细解读,本文旨在帮助读者更好地理解和应用Linux权限管理,以提高系统的安全性和操作效率。在Linux中,权限值通过八进制数字表示,每个数字代表不同用户类别的权限:用户(user)、组(group)和其他人(others)。每个权限值由读(read)、写(write)和执行(execute)三种权限的组合构成。读 ®: 赋值为4,允许查看文件内容。

2501_91107759的博客 574
上一篇: Web安全之跨站脚本攻击(XSS)
下一篇: 【Docker】Docker安全性与安全实践(五)_docker安全性论证
heike_沧海
博客等级 码龄3年 4645粉丝 391原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值