- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1.ls -l 命令:
最前面的一位表示文件类型:
d 目录.
l 符号链接(指向另一个文件).
s 套接字文件.
b 块设备文件.
c 字符设备文件.
p 命名管道文件.
- 普通文件,或者更准确地说,不属于以上几种类型的文件.
后面的连续九位,表示文件的读写权限:
r w x:文件属主权限 这是前面三位 。
r - x:同组用户权限 这是中间三位 。
r - x:其他用户权限 这是最后三位 。
2.新创建文件(夹)的权限 。
目录:
可以看到,新创建的目录myshell的权限是:rwxr-xr-x,即:
onwer用户具有read、write、execute权限,group和其他用户具有read、execute权限.
文件:
可以看到,新创建的文件myfile的权限是:rw-r--r--.
文件在新创建的状态下,不会被赋予执行的权限,这是出于安全性的考虑.
文件权限修改:
#chmod777myfile 为所有用户赋予了该文件的所有权限.
#chmoda-xmyfile 回收所有用户的执行权限(注意a-x,-x前面没有空格).
#chmodu+x,go-wmyfile 赋予文件属主执行权限,同时回收其他用户的写权限 。
3.chmod命令两种模式:符号模式和绝对模式 。
符号模式:
#u:文件属主 。
#g:同组用户 。
#o:其他用户 。
#a:所有用户 。
+增加权限 。
-回收权限 。
如:
chmoda-xmyfile 剥夺所有用户的文件执行权限 。
chmodog-wmyfile 。
chmodg+wmyfile 。
chmodu+xmyfile 。
chmodgo+xmyf 。
chmodu+x,o-wmyfile 。
绝对模式:
004 可读 。
002 可写 。
001 可执行 。
000 没有权限 。
chmod750myfile 。
对文件myfile增加权限:
7=4+2+1(属主可读、写、执行) 。
5=4+1(同组用户可读、执行) 。
0=0 (其他用户没有任何权限) 。
如果对一个目录执行:
chmod740* 。
表示对该目录下的所有文件赋予740权限,但以后新增的目录,权限仍是默认的rw-r--r-- 。
4.目录的权限 。
对目录而言,意味着
读权限:可以列出该目录中的文件 。
写权限:可以在该目录中创建或删除文件 。
执行权限:可以搜索或进入该目录 。
目录的权限将会覆盖该目录中文件的权限。例如,如果目录docs具有如下的权限:
而其中的文件pay的权限为:
那么admin组的用户将无法编辑该文件,因为它所属的目录不具有这样的权限.
该文件对任何用户都可读,但由于它所在的目录并未给admin组的用户赋予执行权限,所以该组的用户都将无法访问该目录,他们将会得到“访问受限”的错误消息.
5.suid和guid(了解) 。
suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限.
如文件myfile具有741的权限,要对其设置suid,只需在其权限数字前加4(guid是加2,两个都设置就是4+2=6), 。
6./etc/passwd文件 。
该文件中列出了系统合法的用户相关信息.
7.chown和chgrp 。
chown:文件的所有者和管理员能用这一命令改变文件的所有权,改变之后,原来的所有者,就不能回收他的权限了,如果真要回收,必须求助与管理员.
如:
将myfile的所有者,从root变更为用户zhy(zhy必须是在/etc/passwd中合法的).
chgrp:改变文件所属的组.
如:
将myfile所属的组,从root改成了zhy组.
( 。
#groups 。
查看当前登录用户所在的组内所有的成员.
#id 。
查看当前登录用户的信息 。
#whoami 。
查看系统当前是被哪个用户登录的.
#groupszhy 。
查看zhy用户所在的组,以及组内成员.
用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去.
8.umask命令 。
一个用户登录到系统之后,他所创建的文件有一个缺省的权限,这个权限可以由管理员配置,也可以由用户登录之后用umask命令自己配置,这种配置在退出该shell或使用另外的umask命令之前一直有效.
一般来说,umask命令是在/etc/profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久性地设置自己的umask值,那么就把它放在自己$home目录下的.profile或.bash_profile文件中.
umask值与权位:
通过:
#umask 。
命令查看当前umask值(后三位):
可以看到,当前umaks值为022,通过上面的表,就可以知道,umask对应的文件权限是644,目录权限是755.
如果没有上面的表,还有另外一种计算方法:
777: rwxrwxrwx 。
022: ----w--w- 。
取上面两行中没有匹配的位就是目录的权限:
rwxr-xr-x 。
换成值就是:755(目录权限) 。
再将上面算出的结果(rwxr-xr-x)中为x的位换成-,就是文件的权限:
rw-r--r-- 。
换成值就是:644(文件权限) 。
如果希望改变系统的umask值,可以这样:
#umask007 。
例:
可以看到,文件的权限确实被改变了.
9.符号链接 。
是一个指向文件的指针,在我理解就是window下的快捷方式:
.profile就是/usr/local/menus/sales.profile的快捷方式了,这样很方便,比如我们有多个用户,比如50个,可以为他们分别创建一个.profile文件,都指向这同一个sales.profile文件,以后我们修改一个sales.profile就可以了,不用对每个用户的.profile做修改.
创建符号链接的命令格式:
#ln[-s]source_pathtarget_path 。
source_path是要指向的文件 。
target_path就是指针(快捷方式) 。
例:
#ln-s/usr/opt/monitor/regstar/reg.log/var/adm/logs/monitor.log 。
在新安装的系统上,通常要进行这样的操作,在/var目录中创建一个指向/tmp目录的链接,因为有些应用程序认为存在/var/tmp目录(然而它实际上并不存在),有些应用程序在该目录中保存一些临时文件。为了使所有的临时文件都放在一个地方,可以使用ln命令在/var目录下建立一个指向/tmp目录的链接:
#ln-s/tmp/var/tmp 。
以后,如果有应用程序试图将一些临时文件放在/var/tmp下,实际上它是被存放在了/tmp目录下了,因为/var/tmp只是一个符号链接而已.
最后此篇关于Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限的文章就讲到这里了,如果你想了解更多关于Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
介绍篇 什么是MiniApis? MiniApis的特点和优势 MiniApis的应用场景 环境搭建 系统要求 安装MiniApis 配置开发环境 基础概念 MiniApis架构概述
我正在从“JavaScript 圣经”一书中学习 javascript,但我遇到了一些困难。我试图理解这段代码: function checkIt(evt) { evt = (evt) ? e
package com.fastone.www.javademo.stringintern; /** * * String.intern()是一个Native方法, * 它的作用是:如果字
您会推荐哪些资源来学习 AppleScript。我使用具有 Objective-C 背景的传统 C/C++。 我也在寻找有关如何更好地开发和从脚本编辑器获取更快文档的技巧。示例提示是“查找要编写脚本的
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
关闭。这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,以便堆栈溢出为 on-topic。 6年前关闭。 Improve this
我是塞内加尔的阿里。我今年60岁(也许这是我真正的问题-笑脸!!!)。 我正在学习Flutter和Dart。今天,我想使用给定数据模型的列表(它的名称是Mortalite,请参见下面的代码)。 我尝试
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
学习 Cappuccino 的最佳来源是什么?我从事“传统”网络开发,但我对这个新框架非常感兴趣。请注意,我对 Objective-C 毫无了解。 最佳答案 如上所述,该网站是一个好地方,但还有一些其
我正在学习如何使用 hashMap,有人可以检查我编写的这段代码并告诉我它是否正确吗?这个想法是有一个在公司工作的员工列表,我想从 hashMap 添加和删除员工。 public class Staf
我正在尝试将 jQuery 与 CoffeScript 一起使用。我按照博客中的说明操作,指示使用 $ -> 或 jQuery -> 而不是 .ready() 。我玩了一下代码,但我似乎无法理解我出错
还在学习,还有很多问题,所以这里有一些。我正在进行 javascript -> PHP 转换,并希望确保这些做法是正确的。是$dailyparams->$calories = $calories;一条
我目前正在学习 SQL,以便从我们的 Magento 数据库制作一个简单的 RFM 报告,我目前可以通过导出两个查询并将它们粘贴到 Excel 模板中来完成此操作,我想摆脱 Excel 模板。 我认为
我知道我很可能会因为这个问题而受到抨击,但没有人问,我求助于你。这是否是一个正确的 javascript > php 转换 - 在我开始不良做法之前,我想知道这是否是解决此问题的正确方法。 JavaS
除了 Ruby-Doc 之外,哪些来源最适合获取一些示例和教程,尤其是关于 Ruby 中的 Tk/Tile?我发现自己更正常了 http://www.tutorialspoint.com/ruby/r
我只在第一次收到警告。这正常吗? >>> cv=LassoCV(cv=10).fit(x,y) C:\Python27\lib\site-packages\scikit_learn-0.14.1-py
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我是一名优秀的程序员,十分优秀!