《鸟哥的Linux私房菜》note5 php
第六章、Linux的档案权限与目录分配 node
1、Linux通常将档案可存取的身份分为三个类别, linux
分别是onwer/group/others,使用者/群组/非本群组外的其余人 数据库
各自有read/write/execute等权限。 ubuntu
群组的概念 安全
默认,系统上的账号与通常身份使用者,还有root的相关信息,记录在/etc/passwd; spa
我的的密码记录在/etc/shadow; .net
全部组名记录在/etc/group。 orm
2、ls—[list],显示档案的文件名与相关属性 递归
ls -al:列出全部的档案详细的权限与属性(包含隐藏文件,就是文件名第一个字符为[.]的档案)。
示范说明:
drwx------ 2 root root 4096 Sep 5 14:09 .gconfd
-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log
-rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog
(1)第一栏表明这个档案的类型与权限(permission)
-rw-r—r-- :共有10个字符【-】【rw-】【r--】【r--】
第一个字符表示这个档案是【目录、档案或连接文件等等】
当为【d】则是目录,例如上表档名为【.gconf】的那一行;
当为【-】则是档案,例如上表档名为【install.log】的那一行;
当为【l】则表示为连结档(link file);
当为【b】则表示为装置文件里面的可供存储的接口设备(可随机存取装置);
当为【c】则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置);
(*重要) 接下来的字符中,以三个为一组,且均为【rwx】的三个参数的组合。其中,
【r】表明可读(read);
【w】表明可写(write);
【x】表明可执行(execute)。
要注意的是,这三个权限的位置不会改变,若是没有权限,就会出现减号【-】。
*第一组为【档案拥有者的权限】,以【install.log】那个档案为例,该档案的拥有者能够读写,但不可执行;
*第二组为【同群组的用户权限】
*第三组为【其余非本群组的用户权限】
另外,目录与档案的权限意义并不相同,这是由于目录与档案所记录的数据内容各不相同所致。
(2)第二栏表示有多少档名连结到此点(i-node):
每一个档案都会将他的权限与属性记彔到文件系统的 i-node 中,不过,咱们使用的目录树倒是使用文件 名来记彔, 所以每一个档名就会连结到一个 i-node 啰!这个属性记录的,就是有多少不一样的档名连结到 相同的一个 i-node 号码去;
(3)第三栏表示这个档案(或目录)的【拥有者帐号】;
(4)第四栏表示这个档案的所属群组;
(5)第五栏为这个档案的容量大小,默讣单位为 bytes;
(6)第六栏为这个档案的建档日期或者最近的修改日期:
这一栏的内容分别为日期(月/日)及时间。若是这个档案被修改的时间距离如今太丽了,那举时间部分会 仅显示年份而已。
备注:若是想要显示完整的时间格式,能够利用 ls 的选项,亦即:【ls -l –full-time】就可以显示出完整的时 间格式。
(7)第七栏为这个档案的档名(*意义重要)
若是档名以前多一个【 . 】,则表明这个档案为【隐藏档】。
Ls :显示非隐藏文档
ls -a :显示全部文档(包括隐藏文档)
-----------------------------------------------------------------------------------------------
例题:
假设 test1, test2, test3 同属二 testgroup 这个群组,若是有下面的两个档案,请说明两个 档案的拥有者不其相关的权限为什么?
-rw-r--r-- 1 root root
-rwxr-xr-- 1 test1 testgroup
238 Jun 18 17:22 test.txt
5238 Jun 19 10:25 ping_tsai
答:
档案 test.txt 的拥有者为 root,所属群组为 root。至二权限方面则只有 root 这个帐 号能够存取此档案,其余人则仅能读此档案;
另外一个档案 ping_tsai 的拥有者为 test1,而所属群组为 testgroup。其中:
o test1 能够针对此档案具备可读可写可执行的权力;
o 而同群组的 test2, test3 两我的不 test1 一样是 testgroup 的群组帐号,则仅
可读可执行但丌能写(亦即丌能修改);
o至二非 testgoup 这一个群组的人则仅能够读,不能写也不能执行!
-----------------------------------------------------------------------------------------------
Linux档案权限的重要性:【数据安全性】
3、如何改变文件属性和权限
修改的指令 :
chgrp :改变档案所属群组
chown :改变档案拥有者
chmod :改变档案的权限, SUID, SGID, SBIT 等等的特怅
(1)改变所属群组, chgrp ----change group
*要改变的组名不准在/etc/group档案内存在才行,不然就显示错误!
[root@www ~]# chgrp [-R] dirname/filename ...
选项不参数:
-R : 进行递归(recursive)的持续变动,亦即连同次目彔下的全部档案、目录
都更新成为这个群组之意。经常用在变动某一目彔内全部的档案之状况。
范例:
[root@www ~]# chgrp users install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
[root@www ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 发生错诨讯息啰~找丌到这个群组
名~
备注Ubuntu目录结构
/ 根目录
bin //系统程序
boot //内核和启动程序,全部和启动相关的文件都保存在这里
grub //引导器相关文件
dev //设备文件
etc //系统软件的启动和配置文件,系统在启动过程当中须要读取的文件都在这个目录。如LILO参数、用户帐户和密码。
home //用户的主目录。下面是本身定义的用户名的文件夹
lib //系统程序库文件,这个目录里存放着系统最基本的动态连接共享库,相似于Windows下的system32目录,几乎全部的应用程序都须要用到这些共享库。
media //挂载媒体设备,如光驱、U盘等
mnt //目录是让用户临时挂载别的文件系统,如挂载Windows下的某个分区,ubuntu默认仍是挂载在/media目录。
opt //可选的应用软件包(不多使用)
proc //这个目录是系统内存的映射,咱们能够直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。
sbin //管理员系统程序
selinux
srv
sys //udev用到的设备目录树,/sys反映你机器当前所接的设备
tmp //临时文件夹
usr //这是个最庞大的目录,咱们要用到的不少应用程序和文件几乎都存放在这个目录下。]
bin // 应用程序
game //游戏程序
include
lib //应用程序的库文件
lib64
local //包含用户程序等
sbin //管理员应用程序
share //应用程序资源文件
src //源代码
var //动态数据,全部服务的登陆文件或错误信息文件(log file)都在 /var/log下。此外一些数据库,如MYSQL则在/var/lib下,还有用户未读邮件的默认存放地点为/var/spool/mail。
lost_found //磁盘修复文件,存放因非法关机而丢失的文件