在linux中,任何一个文件都有User、Group、Others三种身份的个别权限
一、linux文件权限
分为三组:
第一组为文件所有者权限
第二组为同用户组的权限
第三组为其他非本用户组的权限
注意:第五列文件容量大小的默认单位为B
改变文件属性与权限
chgrp : 改变文件所属用户组
chowm : 改变文件的所有者
chmod : 改变文件的权限
1.chgrp
改变的组名必须在/etc/group
文件内存在才行
chgrp [-R] dirname/filename ...
-R 进行递归,子目录下的所有文件
2.chown
同样的,用户必须是存在与系统中的账号才能进行用户名称更改
chowm [-R] owner filename/dirname
事实上,chown也能修改用户组,将文件修改为root用户组
chowm .root practice01.txt
cp复制会复制执行者的属性和权限,将复制后的文件给与另外一个用户则需要修改这个文件的所有者和用户组。
3.chmod
文件的权限字符:
-rwxrwxrwx r:代表4 w:代表2 x:代表1
chmod [-R] 777 filename/dirname 赋予所有用户所有权限
chomod [-R] 770 filename/dirname 赋予拥有者和用户组所有权限
符号类型改变文件权限
如果只需让文件可执行,可利用
chmod a+x filename
目录与文件的权限意义
对于文件:
r:读取文件的实际内容
w:编辑,新增或是修改文件的内容
x:可以被系统执行的权限
对于目录:
r:具有读取目录结构列表的权限,可以查询到该目录下的文件名数据
w:可以更改目录的结构列表的权限,包括:
- 新建新的文件与目录
- 删除已存在的文件与目录
- 将已存在的文件或目录重命名
- 转移该目录内的文件、目录位置
x:代表的是用户能进入该目录成为工作目录的用途,如果要开放目录让任何人浏览时,至少也要赋予r和x权限
linux文件种类与扩展名
文件种类:
- 普通文件(属性-开头)
- 纯文本文件
- 二进制文件
- 数据格式文件
- 目录(directory)(属性d开头)
- 连接(link)文件(属性l开头)
- 设备与设备文件(块(block)设备文件b开头,字符(character)设备文件c开头)
- 套接字(socket,s开头)
- 管道(FIFO,pipe,p开头)
扩展名:
linux文件能否被执行只与10个属性有关,与文件名没有任何关系。我们通常是希望通过扩展名知道文件是什么东西
.sh 脚本或批处理文件
.tar .tar.gz .zip .tgz:经过打包的压缩文件
.html .php :网页文件
linux文件限幅,单一目录或文件最大容许的文件名为255字符,包含完整路径名称及目录(/)的完整文件名为4096个字符
二、Linux目录配置
linux的目录配置标准:FHS(Filesystem Hierarchy Standard)
FHS将目录定义成四种交互作用形态:
可分享的(shareable) | 不可分享的(unshareable) | |
---|---|---|
不变的(static) | /usr(软件放置处) | /etc(配置文件) |
/opt(第三方软件) | /boot(开机与内核文件) | |
可变动的(variable) | /var/mail(用户邮件信组) | /var/run(程序相关) |
/var/spool/news(新闻组) | /var/lock(程序相关) |
- (root,根目录):与开机系统有关
- /usr(Unix software resource):与软件安装/执行有关
- /var(variable):与系统运作过程有关
FHS希望根目录(/)越小越好,分区越大会放入越大的数据,就会增加发生错误的机会。
鉴于上述说明,因此根目录应该要有这些子目录才好。
目录 | 应该存放的文件 |
/bin | 单用户模式下还能执行的命令,如cat、chmod、date、mv、cp等 |
/boot | linux内核与相关开机所需的配置文件等 |
/dev | 接口设备文件 |
/etc | 系统的主要配置文件,不建议将可执行文件放在这个目录 |
/home | 用户主文件夹 |
/lib | 系统的函数库,/lib放置的则是系统在开机时会用到的函数库,以及在/bin和/sbin下面的命令会调用到的函数库而已 |
/media | 可删除的设备 |
/mnt | 暂时挂载的额外设备 |
/opt | 第三方软件存放目录 |
/root | 系统管理员的主文件夹 |
/sbin | 包含开机、修复、还原系统所需的命令,如fdisk,fsck,ifconfig等 |
/srv | 网络服务启动之后,需要取用的数据目录 |
/tmp | 暂时存放文件的地方,任何人可以访问 |
/etc /bin /dev /lib /sbin这五个目录不可与根目录分开放置
因为系统启动时仅有根目录会被挂载,其他分区是在开机完成之后才会持续进行挂载,而这些目录下的文件与系统的开机有关,所以需要与根目录在同一个分区。
/var 目录主要针对常态性变动的文件,比如缓存(cache)、登录文件(log file)、以及某些软件运行所产生的文件,包括程序(lock file,run file)或者数据库文件等。该文件夹在系统运行后会渐渐占用磁盘的容量,最好能将/var独立出来,这样/var挂掉后,根目录不会跟着一起挂,还能进入救援模式。