今天实验室的机器由于长时间不用,忘记Linux密码,在修改密码的过程中涉及到对文件/etc/shadow文件的操作,shadow文件中保存着用户的具体信息,包括用户名,密码,等重要的信息。系统为了保持安全性shadow文件默认的属性是只读属性。下面就详细的解释一下Linux文件的属性。
Window操作系统中把文件的属性分为只读,隐藏和存档属性。Linux下文件的属性和Windows相似,但具体又有一些区别。
Linux下一个文件的操作人员有三类,第一类是ROOT,第二类是添加的用户,第三类是其他地人员。Linux下每一类操作人员对文件操作地权限有3 种,读权限(用r表示),写权限(用w表示),执行权限(用x表示)。例如我们可以使用命令:ls -l 显示文件地具体属性,我为以shadow文件为例,在/etc下使用命令ls -l
观察文件shadow的默认属性表示如下:
0 1 2 3 4 5 6 7 8 9
-r -------- shadow 第0位表示该文件是不是目录(用d表示),第1位表示root对文件有读(用r表示)权限,第2位表示root对文件有写(用w表示)权限,第3位表示root对文件有执行(用x表示)权限,第4位表示自定义用户对文件有读(用r表示)权限,第5位表示自定义用户对文件有写(用w表示)权限,第6位表示自定义用户对文件有执行(用x表示)权限,第7位表示其他用户对文件有读(用r表示)权限,第8位表示root对文件有写(用w表示)权限,第9位表示root对文件有执行(用x表示)权限。对每一位用0表示没有相应的权限,1表示有相应的权限。
我们可以使用命令chmod +number shadow 修改文件的属性。例如文件shadow的默认属性是-r--------,我们希望添加写的权限,使用命令chmod +600 shadow 责修改后shadow的属性为-rw-------。其中中间的600是八进制的数值通过下面所述的计算方法得到的:
-rw-------对应的二进制表示为-110000000则对应的八进制为600,一次类推,如果要对一个文件改为可以执行的属性,则属性值为700,属性为-rwx------。