6 Linux 的文件权限与目录配置

来源:互联网 发布:win10未识别的网络wifi 编辑:程序博客网 时间:2024/06/05 21:42
三种身份:owner/group/others;三种身份各有 read/write/execute 等权限。
/etc/passwd:记录用户(包括root)的相关信息;
/etc/shadow:记录密码;
/etc/group:记录用户组信息。
chgrp, chown等指令可能都需要使用root的身份才能够使用

因为目录与文件所记录的数据内容不相同,所以目录与文件的权限意义并不相同。
目录主要的内容在记录文件名列表, r, w, x 对目录的意义:
r:表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
w:表示具有改变该目录结构列表的权限,也就是底下这些权限:
  • 建立新的文件与目录;
  • 删除已经存在的文件与目录(不论该文件的权限为何!)
  • 将已存在的文件或目录进行重命名;
  • 搬移该目录内的文件、目录位置。
x:目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的作用! 所谓的工作目录(work directory)就是你目前所在的目录啦!

能不能进入某一个目录,只与该目录的x权限有关。
要注意:要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给! 
例题:
假设有个账号名称为dmtsai,他的主目录在/home/dmtsai/,dmtsai对此目录具有[rwx]的权限。 若在此目录下有个名为the_root.data的文件,该文件的权限如下:
-rwx------ 1 root  root  4365 Sep 19 23:20  the_root.data
请问dmtsai对此文件的权限为何?可否删除此文件?
答:
如上所示,由于dmtsai对此文件来说是『others』的身份,因此这个文件他无法读、无法编辑也无法执行, 也就是说,他无法变动这个文件的内容。但是由于这个文件在他的主目录下, 他在此目录下具有rwx的完整权限,因此对于the_root.data这个文件来说,他是能够『删除』的! 结论就是,dmtsai这个用户能够删除the_root.data这个文件!


 x 在目录当中是与『能否进入该目录』有关, 至于那个 w 则具有相当重要的权限,因为它可以让使用者删除、更新、新建文件或目录,
 
 Linux目录配置的依据---FHS:在于规范每个特定的目录下应该要放置什么样子的数据。
 
 根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分割槽内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。

另外要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分区去!开机过程有关的目录:
  • /etc:配置文件
  • /bin:一般身份可用执行文件
  • /dev:所需要的设备文件
  • /lib:执行文件所需的函式库与内核所需的模块
  • /sbin:系统管理员可用指令


/usr目录:其实usr是Unix Software Resource的缩写,与user无关。 也就是『Unix操作系统软件资源』所放置的目录,而不是用户的数据!有点类似Windows 系统的『C:\Windows\ + C:\Program files\』这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。


若你的执行文件放置在一个目录下,并且本目录并非正规的执行文件目录(/bin, /usr/bin等为正规),此时要执行指令就得要严格指定该执行文件。『./』代表『本目录』的意思,所以『./run.sh』代表『执行本目录下, 名为run.sh的文件』!

uname -r:查看实际的核心版本
lsb_release -a:查看 Linux 标准的版本,distribution 的版本


注意:/home(用户主目录), /usr(软件资源), /var(变动幅度较大的数据), /tmp(系统暂存), 因为数据量较大或者是读取频率较高,或者是不明的使用情况较多,因此建议不要与根目录放在一起, 也会有助于系统安全。


/etc/:几乎系统的所有配置文件均在此,尤其 passwd,shadow;
/etc/init.d:系统开机的时候加载服务的 scripts 的存放地方;
/boot:开机配置文件,也是存放核心 vmlinuz 的地方;
/usr/bin, /bin:一般执行文件存放的地方;
/usr/sbin, /sbin:系统管理员常用指令集;
/dev:存放所有系统设备文件的目录;
/var/log:存放系统注册表文件,系统日志的地方;

原创粉丝点击