Linux文件属性
1.用户与用户组
由于Linux是多用户、多任务的系统,所以“用户和用户组”是健全安全防护措施的必要手段,根据文件的保密和个人的隐私针对用户和用户组所拥有的权限进行针对性设定。
-用户(user)
-用户组(group):用户组主要用于团队开发;用户属于用户组;每个用户可支持多用户组。
-其他人(others):既非用户,也非该用户所在用户组。
在Linux中,任何一个文件都具有“用户、用户组、其他人”3个权限。
通过对文件权限的设定,可以划分用户间、用户组内各用户间、其他人对用户文件,从而拥有不同的权限。另,在Linux系统中,root身份拥有绝对的权限。
2.Linux文件权限
2.1Linux文件属性
以root身份登入后,使用ls -al命令查看文件。
内容例:-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
drwx------ 3 root root 4096 Jun 25 08:35 .ssh
1.第一列表示文件的属性:
d:目录(dictionary);
-:文件(file);
l:连接文件(link file);
b:设备文件中可供存储的接口设备;
c:设备文件中的串行端口设备;
接下来的属性,3个为一组,均为rwx的3个参数的组合。
r:可读(read);
w:可写(write);
x:可执行(excute);
三组分别表示拥有者、同用户组、其他非本用户组的权限。
例:-rwxr-xr--表示该文件,拥有者可读可写可执行,同用户组用户可读可执行,其他非本用户组仅可读。
除此之外,Linux中,文件的是否可执行由文件属性x决定。
drwx---r-- 3 root root 4096 Jun 25 08:35 .ssh
上述例子中.ssh这个目录针对其他非本用户组的权限是可读,所以其他用户看似可以进入.ssh这个目录,但由于目录如果不能执行等同于无法进入,而其他用户没有拥有可执行x权限,所以无法进入。如果需要对其他用户开放目录,需开放x属性。
2.第二列表示连接占用的节点
3.第三列表示文件的拥有者
4.第四列表示拥有者所在的用户组
2.2更改文件权限
-chgrp:改变用户组
-chown:改变拥有者
-chmod: 改变文件的属性、SUID等特性
2.2.1chgrp
chgrp:change group,更改用户组。所改成的用户组必须存在于/etc/group中,否则会出现invalid group name错误信息。
例:chgrp users install.log
参数:-R:进行递归的持续更改,连同子目录下的文件一起更改用户组。
2.2.2chown
chown:change owner,更改拥有者。所改成的拥有者必须存在于/etc/passwd文件中。
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:用户组名称 文件或目录
参数:-R:进行递归的持续更改。
例: chown bin install.log
chown root:root install.log
更改文件拥有者最常见的应用在将文件复制给其他人。
例:我们需要把拥有者为root的文件复制给bin,使用cp命令。 cp .bashrc .bashrc_test 此时,.bashrc_test的拥有者还是root,用户bin还是无法修改,所以必须更改文件的拥有者和用户组。
2.2.3更改9个属性,chmod
使用chmod命令改变文件的属性。
2.2.3.1数字类型改变文件权限
r.w.x.三个属性的数字对应表为:
r:4
w:2
x:1
将同一组的三个属性数字相加得到owner,group,others的权限属性。
当属性为rwxrwx---时;
owner:rwx=4+2+1=7;
group:rwx=4+2+1=7;
others: ---=0+0+0=0;
该属性的数字就是770.
使用chmod命令更改文件属性:
chmod [-R] xyz 文件或目录
参数:
-R:递归持续更改
xyz:需要改成的数字类型的权限属性
例:-rw-r--r-- 1 root root 95 Jul 4 11:45 .bashrc
chmod 777 .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
2.2.3.2符号类型改变文件权限
chmod
通过u,g,o来表示3组的属性,all表示全组,读写属性包括r,w,x.可利用+(加上)、-(除去)、=(设置)来指定属性。
例:将.bashrc文件的属性改成-rwxr-xr-x
chmod u=rwx,go=rx .bashrc
例:不知道.bashrc文件原来的属性,想要将三组都加上可写属性
chmod a+w .bashrc
2.3目录属性的意义
针对目录时,r,w,x的意义:
-r(read contents in directory):具有读取目录的权限,可以使用ls命令将目录内容列出来。
-w(modify contents of directory):有权更改该目录:
-建立新的文件与目录
-删除文件与目录
-重命名文件与目录
-移动目录内的文件与目录
如我的账号为eva1994,则在/home/eva1994这个目录中,无论文件的属性,eva1994这个账号都可以更改.
-x(access directory):决定能否进入该目录。