.Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限
一、Linux下的文件目录
简介:linux的文件系统是采用级层式的树状目录结构,在此 结构中的最上层是根目录“/”,然后在此目录下再创建 其他的目录。深刻理解linux文件目录是非常重要的,如下图所示:
将来你用哪个用户登录,你就会在那个用户的目录下面。为了大家再进一步加深对Linux的文件目录的理解,下面再附上一张对应目录作用的解释:
简单演示:
bin:目录下面的文件:
在这里大家可以使用上面的命令,进入到其他的目录下面看看,里面的文件。(只是简单的看看哦,不要随意修改。)
总结:常用命令
ls:显示当前目录下面的所有文件。
ls 命令罗列出了终端当前目录下的所有文件及目录。当然,所有这些目录中都可能还有子目录和文件。我们想知道这些目录下面还有哪些目录和文件可以使用 -R 参数将它们都显示出来。
:ls -r
ls 命令还有许多参数,可以获得更加详细的信息。比如 -1 参数。它可以使目录内的文件和目录每行只显示一个。
另外还有一个问题是我们的 Linux 系统中也会有隐藏文件,这点与 Windows 系统很像。除用户自己的文件之外,有一些文件是由系统、或应用程序使用并修改的。在默认情况下将它们隐藏确实对“用户本身”是一种保护。如果我们需要检查 Linux 系统中这些隐藏文件怎么办?
注意:以“.”开头的文件和目录名称,它们都是隐藏的。同样,用蓝色显示出来的是目录,隐藏的目录。
另外这样看好像很乱不是吗?我们可以把 -1 和 -a 参数结合使用
这样是不是整齐一点了,如果有人想想在 Windows 中可以用列表显示文件及目录的详细信息一样,我们可以使用 ls -l
clear清屏
如果想看自己现在是在哪个目录下面,可以使用pwd命令,这个命令非常有用!!!当你不知道自己现在是在哪里,可以使用它。
关于ls的命令大家可以参考:http://man.linuxde.net/ls
find命令的使用:
解释:注意之间的空格,/表示root目录,-name表示文件的名字。
注意:这样会查找的很慢,因为它是从根目录开始的,所以以后尽量从一个目录下面查找,这样可以缩短查找的范围。
grep命令的使用:
解释:-n显示行号 guozheng表示要查询的关键字 hello.cpp表示要在那个文件中查找。
cd /表示:回到根目录下面
cd ../表示:回到上一级目录
cd 表示:回到该用户所在的目录下面
需求:有时我需要把查找的信息或者统计的信息保存到另外一个文件,提供给别人。
重定向命令:
ls -l > a.bak 列表的内容写入文件a.bak中(覆盖写)
ls -al >> aa.bak列表的内容追加到文件aa.bak的末尾
注意:这个命令非常有用,作用就是把统计的信息保存到a.bak文件中。
二、Linux中的文件所有者、所在组和其它组
在讲解Linux中的用户和组的问题,我们先看一下Windows中的用户和组,如下图所示:
好了,我们来看看Linux中的用户和组的概念。
简介:
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件 有所有者、所在组、其它组的概念。
1)所有者 (2)所在组 (3)其它组 (4)改变用户所在的组
- 文件所有者
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者。
用【ls –ahl 】命令可以看到文件的所有者。
你也可以用 【chown 用户名 文件名 】来修该文件的所有者。
我们使用gz普通用户创建的目录,默认属于该用户,如果我想改变该目录的所属用户,可以使用:chown 用户名 文件名
- 用户所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。 用【ls –ahl 】命令可以看到文件的所有组。 你可以通过【chgrp 组名 文件名】来修改文件所在的组。
使用:ls -ahl | more
修改该目录所在的组:chgrp root mysrc 可以改变该目录所在的组。
现在我把mysrc目录所在的组gz修改为root
- 其他组
除开文件的所有者和所在组的用户外,系统的其它用 户都是文件的其它组。
- 改变用户所在的组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的 管理权限可以改变某个用户所在的组:
usermod –g 组名 用户名 你可以 用
usermod –d 目录名 用户名 改变该用户登陆的初始目录
我知道你很晕不要紧,我们来看一个案例:(我们要把下面的用户添加到对应的组中)
step1:使用root身份创建对应的组
如何查看创建的组呢?使用:cat /etc/group
解释:policeman:组的名称 1001:改组的ID号是唯一的。
使用相同的命令创建土匪组。
step2:创建用户,并同时指定该用户属于哪个组
命令使用:
useradd -m 用户名
案例: useradd -m xiaoming 【 添加用户 xiaoming】 (特别提醒:这里一定要加上:-m 并且是小写的,否则创建好的用户你是登陆不上的。)
passwd 用户名 【修改密码】
案例: passwd xiaoming 【修改xiaomiing的密码】
userdel 用户名 【删除用户】
userdel xiaoming 【删除用户xiaoming】
userdel -r xiaoming 【删除用户以及用户主目录】
创建:施瓦辛格(Iamback)
查看Linux中的所有用户信息:cat /etc/passwd
解释:shitailong:表示用户的名字;x:表示加密后的用户的密码;1003:表示用户的ID;1002:表示用户所在组的ID;/home/shitailong:用户所在的主目录
step3:分配密码
为了好记,这三个用户默认密码是123456
step4:测试
现在:我想把施瓦辛格(Iamback)也移动到土匪组中,该如何办?
使用:usermod –g tufei iamback
现在金三角都在土匪组了。
三、文件权限的管理
ls -l中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
10个字符确定不同用户能对文件干什么
第一个字符代表文件(-),目录(d),链接(l)
其余字符每3个一组(rwx) 读(r) 写(w) 执行(x)
第一组rwx : 文件拥有者的权限是读、写和执行
第二组rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行
第三组r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行 可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
1 表示连接的文件数(如果是文件夹也就是目录的话,表示:该目录下面的文件数)
root 用户
root 组
1213 文件大小(字节)
Feb 2 09:39 最后修改日期
abc 文件名
现在我用jiesen登陆创建文件:
例如:-rw-r--r--
现在我用shitailong用户进入到jiesen的目录下面,结果如下:
结果可以进入到该目录下面,原因是jiesen目录的权限如下:
对照上面的分析:其他组的用户对jiesen目录有可读的权限。
Linux下使用对目录权限的管理,不能一个用户进入到另外一个用户的目录。
现在jiesen允许shitailong进入到自己的主目录下面,并且有可写权限该如何操作?,如下图所示:
注意:不能使用shitailong开修改jiesen的目录权限。只能有jiesen和root能修改。
这样设置的话等于是完全公开,其他组的用户也可以进入到该目录下面,所以我要该用户本身以及该用户所在的组可以进入,其他组的用户不允许进来。
然后,我用gz用户登录,看看能不能进入到jiesen目录中,结果如下:
注意:这里只是修改文件夹(目录的)权限,目录下面的文件权限没有修改。
补充:
改变权限的命令:
chmod 改变文件或目录的权限
chmod 755 abc : 赋予abc权限rwxr-xr-x
chmod u=rwx,g=rx,o=rx abc : 同上 u=用户权限 g=组权限 o=不 同组其他用户权限
chmod u-x,g+w abc : 给abc去除用户执行的权限,增加组写的权限
chmod a+r abc :给所有用户添加读的权限
改变拥有者(chown)和用户组(chgrp)命令
chown xiaoming abc : 改变abc的拥有者为xiaoming
chgrp root abc : 改变abc所属的组为root
chown root ./abc : 改变abc 这个目录的所有者是root
chown -R root ./abc : 改变abc 这个目录及其下面所有的文件和目 录的所有者是root
建议还是要多练习多敲命令。权限这部分确实很复杂,大家可以练习一下,如果遇到问题解决不了的,可以在评论区提出来,我会帮大家看看。
好了,今天就讲到这里,晚上继续更新这个系列的文章,觉得可以的话,希望点下推荐哈~你们的推荐是我的动力。
作者:郭峥
出处:http://www.cnblogs.com/runningsmallguo/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
.Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限的更多相关文章
- .Neter玩转Linux系列之六:Linux下MySQL的安装、配置、使用
一.Linux安装MySQL (1)下载安装包:https://dev.mysql.com/downloads/mysql/ (2)解压并安装 命令:tar zxvf 文件名 解压完成之后,重名一下文 ...
- .Neter玩转Linux系列之三:Linux下的分区讲解
基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...
- .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础
基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...
- Linux学习之二-Linux系统的目录结构
Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...
- spice在桌面虚拟化中的应用系列之二(Linux平台spice客户端的编译安装,支持USB映射)
1.系统环境 1.1 测试环境 centos6.4最小化安装(centos6.x桌面版也适用) 使用yum源为163源加EPEL源 1.2 spice客户端介绍 spice作为远程连接工具,可以支持远 ...
- linux系列(二):cd命令
1.命令格式: cd [目录名] 2.命令功能: 切换当前目录至目录名目录 3.常用实例 (1).进入系统根目录 命令: cd / 输出: felix@felix-computer:~/软件$ cd ...
- linux系列(二十):find命令
1.命令格式 find pathname -options [-print -exec -ok ...] 2.命令功能 用于在文件树种查找文件,并作出相应的处理 3.命令参数 pathname: fi ...
- linux系列(二十一):chmod命令
1.命令格式 chmod [-cfvR] [--help] [--version] mode file 2.命令功能 用于改变文件或目录的访问权限,用它控制文件或目录的访问权限. 3.命令参数 必要参 ...
- linux系列(二十二):tar命令
1.命令格式 tar[必要参数][选择参数][文件] 2.命令功能 用来压缩和解压文件.tar本身不具有压缩功能.他是调用压缩功能实现的 3.命令参数 必要参数: -A 新增压缩文件到已存在的压缩 - ...
随机推荐
- HDU 6185 Covering 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6185 题意:用 1 * 2 的小长方形完全覆盖 4 * n的矩形有多少方案. 解法:小范围是一个经典题 ...
- Android事件传递机制详解及最新源码分析——Activity篇
版权声明:本文出自汪磊的博客,转载请务必注明出处. 在前两篇我们共同探讨了事件传递机制<View篇>与<ViewGroup篇>,我们知道View触摸事件是ViewGroup传递 ...
- 【ASP.NET MVC】View与Controller之间传递数据
1 概述 本篇文章主要从操作上简要分析Controller<=>View之间相互传值,关于页面之间传值,如果感兴趣,可参考我另外一篇文章ASP.NET 页面之间传值的几种方式 . Co ...
- Mycat 设置全局序列号
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt332 全局序列号介绍 在实现分库分表的情况下,数据库自增主键已无法保证自增主 ...
- [ASP.NET MVC]笔记(一)模型和HTML辅助方法
1.ModelState.IsValid 检验模型有效性 2.显示模型绑定(操作方法中没有参数): UpdateModel(album):模型绑定期间出错会抛出异常 TryUpdateModel ...
- java基础学习——集合
-------|List: 有存储顺序, 可重复-----------|ArrayList: 数组实现, 查找快, 增删慢,由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢. ...
- Nand Flash驱动(实现初始化以及读操作)
简单制作一个Nand Flash驱动(只需要初始化Flash以及读Flash) 打开2440芯片手册,K9F2G08U0M芯片手册(因为2440中Nand Flash是用的256MB(2Gb)内存,8 ...
- ajax中后台string转json
首先导入alibaba的fastJson包 后台: String thirdPage1=prop.getProperty("thirdPage1"); String thirdPa ...
- 201521123025《java程序设计》第七周学习总结
1. 本周学习总结 2. 书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { r ...
- 201521123090 《Java程序设计》第7周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: XMind 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代 ...