Linux之文件权限与目录设置

1. 文件权限基本知识

文件的属性有10位如-rwxrwx—分别是(-ugr),其中第一个代表文件的类型,主要有以下几种:
[d] 表示目录;
[-] 表示普通文件;
[l]表示链接文件;
[b]表示为设备文件中的可供存储的接口设备;
[c]表示设备文件中的串行端口设备,如键盘、鼠标等。

问题:什么是设备文件?
答案:设备文件形式上也是文件系统中的文件,与普通文件不同的是,它没有具体的内容,对设备文件的读写操作实际上是与某个设备的;
输入输出操作关联在一起。设备文件是系统中重要的文件,不要随便修改。/dev中大都是设备文件

注意Linux文件名限制为单一文件最大允许名为255个字符,包含完整路径名称及目录(/)之完整文件名为4096个字符
对于目录文件,特别注意x权限,如一个目录文件的权限表示为drwxr–r–。该文件是root所有,虽然其他用户也有读权限,但却不能进入该目录,因为x与目录的关系很重要如果你不能再改目录下执行任何指令,那么也就不能执行ls。cd等命令,也就无法进入,因此,如果您想特别开放某个目录,请记得将该目录的x属性也开放*

  • 能不能进入一个目录,就看该目录有没有x权限,若没有就不能切换到该目录下,也无法执行该目录下的任何指令,即使你有r权限
  • 如果您想特别开放某个目录,请记得将该目录的x属性也开放。

Linux文件的重要性

  • 系统保护的功能
    比如有些文件通常只有root才能读写或执行,如/etc/shadow的权限设置为[-rx——-]
  • 团队共享
    比如可以将一个文件共享给同一团队的不同用户,设置权限为[-rwxrwx—]

2.改变文件属性与权限

  • 改变群组chgrp
    chgrp 群组名称 文件或目录,注意群组名称一定要在/etc/group中存在。
  • 改变拥有者chown
    chown [-R] 账号名称 文件或目录
    chown [-R] 账号名称:群组名称 文件或目录
    要注意账号名称必须是在/etc/passwd中存在的。
    还可以直接修改群组名称,
    -R参数:将目录下的所有子目录或文件同时修改。
#-R参数递归修改目录中的文件
chgrp -R root /david
#用户名:组名
chown root:root install.log
chown root.root install.log

问题:什么时候需要使用以上这两个命令?
答案:将文件复制给其他人的时候。如意文件是root所有,复制给其他人还是root所有,如不更改,则没法用。(其实可以强制修改)
- 改变权限chmod
不详细讲。举一些例子:我么以vi编辑一个 shell文本后,它的属性一般为-rw-rw-rw-即666的属性,如果要将它变为可执行文件,并且不让别人修改,即-rwxr-xr-x,即755的属性,chmod 755 文件名即可。
还有一种方式chmod +/-/= 来更改即可

Linux 支持的文件格式与文件种类

  • 文件格式
    什么是文件格式,就是你的操作系统用来存取数据的的格式。
  • 文件种类
    主要有以下几种:
    一般文件:包含文本文件(ASCII文件)和二进制文件。
    目录文件;
    链接文件;
    设备文件
    1. 块设备文件,主要有硬盘
    2. 字符设备文件,也就是一些串行端口的设备,如键盘、鼠标等。
  • Linux文件的后缀名
    1. Linux不靠后缀名没有意义,主要靠其权限;
    2. 常用的后缀名用来标识,如sh,tar等等。

3.Linux目录配置FHS

事实上,FHS仅注定了三个目录:

  • /
  • /usr(unis software resource):与软件安装/执行有关
  • /var(variable):与系统运作有关
  1. /bin:系统可执行文件的目录,在/bin底下爱的指令可以被root和一般账号所使用
  2. /boot:开机会用到的文件
  3. /dev:任何装置或接口设备都是以文件形式存在于这个目录当中,比较重要的有/dev/null,/dev/zero,/dev/tty,/dev/lp*,/dev/hd*,/dev/sd*
  4. /etc:系统的配置文件存放于此,比较重要的有/etc/inittab,/etc/init.d(所有服务的预设启动脚本都是在这,如要启动或关闭iptables的话 [/etc/init.d/iptable start] [/etc/init.d/iptable stop])
  5. /home:新增一个一般者使用账号时,默认家目录会放在这里
  6. /lib:放置开机时会用到的函数库及在/bin或/sbin下的指令会调用的库,尤其注意/lib/modules这个目录,防止核心相关模块,如驱动
  7. /mnt:挂在一些额外的装置
  8. /opt:放置i第三方软件
  9. /root:希望和/放在一个分区中
  10. /sbin:Linux中很多设置指令只能root才能用,其他用户顶多查询,因此/sbin底下的为开机过程中所需要的,包括开机、修复、还原系统等。至于其他服务器软件程序则放在/usr/bin
  11. /srv:service的缩写,是一些网络服务启动后,这些服务所需要取用的数据的目录,常见服务如WWW,FTP等,如WWW服务器需要的网页资料就可以放置在/srv/www里
  12. /tmp:临时目录,防止临时数据

下面再说下比较重要的目录
1. /lost+found:这个目录使用标准的ext2/etx3文件系统格式才会产生的一个目录,目的在于文件系统文件系统发生错误时,将一些遗失的片段防止在此目录中
2. /proc:这个目录存在一个虚拟文件系统中,放置的数据都是在内存当中,如系统核心,进程信息,网络状态等;因为这个目录下的数据都是在内存中,不占有硬盘空间,比较重要的有如/proc/cpuinfo,/proc/dma,/proc/interrupts,/proc/net/*等
3. /sys:这个目录其实跟/proc非常类似,也是个虚拟的文件系统

  • /usr的意义与内容

    1. /usr/bin:绝大部分用户的可使用指令放在这!
    2. /usr/include:c/c++等语言的头文件在此
    3. /usr/lib:各种应用程序的库
    4. /usr/sbin:非系统正常运作所需要的系统的指令
    5. /usr/share:防止文件共享的地方,如/usr/share/man联机帮助文件,/usr/share/doc软件杂项的文件说明
    6. /usr/src:一般建议源代码防止这里
  • /var的意义与内容
    /usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运行后才会渐渐占用硬盘容量的目录,因为/var目录主要针对经常变动的文件,包括cache,log file以及某些软件运作产生的文件,如成勋文件或MySql数据库的文件等等

    1. /var/cache/:应用程序运行中会产生一些中间文件
    2. /var/lib/:应用程序执行过程中,需要用到的数据文件的目录,如MySql的数据库放置到/var/lib/mysal,而rpm的数据库则放到/var/lib/rpm去
    3. /var/log/:重要,登录文件放置的目录,较重要的文件如/var/log/messages,/var/log/wtmp(记录登录信息)
    4. /var/run/:某些程序运行后 后,将他们的PID防止在这个目录下
    5. /var/spool/
  • 主机的硬盘划分
    通常一般的大型主机都不会讲所有的数据都放置在一个硬盘分区中(就是只有一个”/”目录),有以下几个原因:

    1. 安全考虑:系统文件一般放在/usr/中,个人数据在/home中,一些系统启动数据放在/etc/中。以免被人侵入后数据全丢失。
    2. 便利性。。。。

以下简单参考:
自己安装时候划分如下:/boot 500M,/swap(虚拟内存)内存两倍,
剩下的是/ 。这个事比较简单的划分了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值