1、使用者与群组
Linux用户身份与群组记录的文件
在Linux系统中,默认情况下,所有的系统上的账号包括一般使用者和root的相关信息,都记录在/etc/passwd文件中。个人的密码记录在/etc/shadow文件中,此外,Linux所有的群组信息都记录在/etc/group文件中。
Linux文件属性
输入ls -al 后显示如下图所示
下面来介绍每条记录中七个字段分别的意思
第一个字段的含义:
第一个字符代表这个文件是文件夹、文件或者链接文件等等
- d表示文件夹
- -表示文件
- l表示链接文件(link file)
- c对应面向字符的设备如键盘
- b对应面向字块的设备如磁盘
第二个字段的含义:
表示有多少文件名链接到此几点(i-node)
第七个字段的含义:
文件名称。以.开头的文件表示为隐藏文件。
改变文件属性与权限
- chgrp 改变档案所属群组
- chown 改变档案所有者
- chmod 改变档案的权限,SUID、SGID、SBIT等
chgrp [-r] groupName fileName [-r]递归
chown [-r] 账号名称 文件名称
chown [-r] 账号名称:用户组名称 文件名称 [-r]递归
亊实上,chown 也可以使用『chown user.group file』,亦即在拥有者不群组间
加上小数点『.』也行!不过很多人在设定账号时,喜欢在账号当中加入小数点(例如
vbird.tsai 这样的账号格式) ,这就会造成系统的误判!所以我们比较建议使用
加上小数点『.』也行!不过很多人在设定账号时,喜欢在账号当中加入小数点(例如
vbird.tsai 这样的账号格式) ,这就会造成系统的误判!所以我们比较建议使用
『:』来分开拥有者和群组啦!此外,chown 也能单纯的修改所属群组!例如
『chown .sshd install.log』就是修改群组!
『chown .sshd install.log』就是修改群组!
chomod 改变权限
文档权限的变更使用chmod命令,权限设定的方法有两种方式,可以使用数字和符号来进行权限变更。
- 数字类型改变文档权限
Linux的文件权限总共9个,分别是owner/group/others三种身份各自有read/write/execute权限。这9个权限三个三个一组,可以用数字代表各个权限,各个权限和数字对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分别累加。
例如当权限为[-rwxrwx---]的表示为:
owner = r+w+x= 4+2+1 = 7
group = r+w+x = 4+2+1 = 7
others =-+-+- = 0+0+0 = 0
所以变更权限就为770
chmod命令为
chmod [-r] xyx 文件或文件夹 xyz分别是owner/group/others的累加和 -r递归
符号类型改变文件权限
可以看出基本上9个权限分别是(1)user(2)group(3)others三种身份。因此我们可以有u、g、o来代表三种身份的权限。
a(all)代表全部身份,r、w、x代表指定权限。
例如,设定权限为[-rwxr-xr-x]表示为
chmod u=rwx,go=rx fileName
也可以使用 + -来消除权限
chmod u-x filaName 减去u的执行权限
特别需要注意的是:w权限是针对文件内容,w权限并不能删除文件本身,想要删除文件本身,需要有父目录的w权限。
权限对目录(文件夹)的重要性
- r(read contents in directory):表示具有读取目录结构列表的权限,可以用ls获取目录下文件列表
- w(modify contents of dirctory):写入权限对于目录来说非常有用,包括以下功能
1、建立新的文件和目录
2、删除文件或者目录
3、更改文件或目录的名称
4、移动文件或目录位置
- x(access directory):表示用户是否可以进入目录
Linux文件种类与扩展名
我们在基础篇一直强调一个概念,那就是:任何设备在 Linux底下都是文件, 不仅如此,连数据沟通
的接口也有专属的文件在负责。
的接口也有专属的文件在负责。
- 文件的种类
- 正规文件 第一个属性为 [ - ],例如 [drwxrwxrwx]。包括1、ASCII文件 可以直接使用 cat filaName查看。2、二进制文件(binary file)可执行文件,例如cat 等。 3、数据格式文件(data)我们的Linux在使用者登录时,都会将登录的数据记录在/var/log/wtmp 那个文件内,该文件是一个data file,他能够透过last这个指令读出来! 但是使用 cat时,会读出乱码。因为他是属于一种特殊格式的文件。
- 目录(directory) 第一个属性为 [ d ],例如 [drwxrwxrwx]。
- 连结档(link) 就是类似Windows 系统底下的快捷方式! 第一个属性为 [ l ](英文L 的小写),例如
[lrwxrwxrwx] ;
- 设备与装置文件(device) 不系统周边及储存等相关的一些文件,通常都集中在/dev 这个目录下!通常又分为两种1、区块(block)设备文件:就是一些储存数据,以提供系统随机存取的接口设备,例如
- 硬盘和软盘等! 你可以随机的在硬盘的不同区块读写,这种装置就是存储设备,你可以自行查一下/dev/sda 看看, 会发现第一个属性为[ b ]! 2 字符(character)设备文件:即是一些串行端口的接口设备, 例如键盘、鼠标等等!这些设备的特色就是『一次性读取』的,不能够截断输出。 举例来说,你不可能让鼠标『跳到』另一个画面,而是『滑动』到另一个地方啊!第一个属性为 [ c ]。
- 资料接口文件(sockets):
既然被称为数据接口文件, 想当然尔,这种类型的文件通常被用在网络上的数据承接了。我们
可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个 socket 来进行数据的沟通
了。第一个属怅为 [ s ], 最常在/var/run 这个目彔中看到这种文件类型了。
- 数据输送文件(FIFO, pipe):
FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误
问题。 FIFO是first-in-first-out 的缩写。第一个属性为[p] 。
Linux目彔配置的依据--FHS
FHS(Filesystem Hierarchy Standard )
FHS依据文件系统使用的频繁与否,是否允讲使用者随意更改, 而将目录定义成为四种交互作用的形态,用表 格来说有点像底下这样
| 可分享的(shareable) | 不可分享的(unshareabl) |
不可变的(static) | /usr (软件放置处) | /etc (配置文件) |
/opt (第三方协力软件) | /boot (开机与核心文件) | |
可变动的(variable) | /var/mail (使用者邮件信箱) | /var/run (程序相关) |
/var/spool/news (新闻组) | /var/lock (程序相关) |
1、 可分享的:可以分享给其他系统挂载使用的目录,所以包括执行文件不用户的邮件等数据, 是
能够分享给网络上其他主机挂载用的目录;
2、 不可分享的:自己机器上面运作的装置档案或者是不程序有关的 socket 档案等, 由于仅与自身
机器有关,所以当然就不适合分享给其他主机了。
3、 不变的:有些数据是不会经常变动的,跟随着 distribution 而不变动。 例如函式库、文件说明
文件、系统管理员所管理的主机朋务配置文件等等;
4、 可变动的:经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。
FHS规定的目录仅有以下三个
- /(root,根目录):与开机系统有关。
- /usr(unix software resource): 与软件安装/执行有关。
- /var(variable ):与系统运行有关。