文件类型
与windows不同,linux中不同类型文件颜色不尽相同,可以通过文件名颜色或者文件属性来查看文件类型
使用file命令查看文件类型
[root@justin file]# ls check_traffic_v1.2.2.zip Common_file Directory ifcfg-eth0 [root@justin file]# file Directory/ Directory/: directory [root@justin file]#
权限、归属
在Linux系统中,系统中的每一个文件或目录都赋予了两种属性:访问权限和文件所有者,简称为“权限”和“归属”,Linux系统根据文件或目录的归属、访问权限来对用户访问数据的过程进行控制。
root用户是系统的超级用户,拥有完全的管理权限,因此文件、目录的权限限制对root用户将不起作用。
[root@justin file]# ls -l /etc/shadow ----------. 1 root root 1080 10月 11 10:04 /etc/shadow [root@justin file]# su - justin [justin@justin ~]$ cat /etc/shadow cat: /etc/shadow: 权限不够 [justin@justin ~]$ su - root 密码: [root@justin ~]# tail -1 /etc/shadow study::15988:0:99999:7::: [root@justin ~]#
/etc/shadow文件第一部分权限位显示任何用户均无权限,实际上root用户还是能够进行正常的读写操作,而普通用户是无法进行任何操作的
文件、目录的权限和归属
linux文件、目录权限分为属主、属组和其他用户三种权限,每种权限由三部分组成即读、写、执行权限,三种权限关系为属主权限>=属组权限>=其他用户权限。
[root@justin ~]# ll !$ ll /home/test -r--rw-r-x. 1 justin study 0 10月 11 15:08 /home/test [root@justin ~]#
justin对/home/test有读权限,也可以修改文件,此时需要强制执行才可
文件、目录默认权限
文件的默认是没有可执行权限,权限为644;由于x权限是控制切换目录的权限,默认目录拥有读取执行权限,权限为755
[root@justin default]# touch file [root@justin default]# mkdir dir [root@justin default]# ll 总用量 4 drwxr-xr-x. 2 root root 4096 10月 11 15:21 dir -rw-r--r--. 1 root root 0 10月 11 15:21 file [root@justin default]#
权限设置
chmod
[root@justin default]# ll 总用量 4 drwxr-xr-x. 2 root root 4096 10月 11 15:21 dir -rw-r--r--. 1 root root 0 10月 11 15:21 file [root@justin default]# chmod ug=rwx,o=r dir file [root@justin default]# ll 总用量 4 drwxrwxr--. 2 root root 4096 10月 11 15:21 dir -rwxrwxr--. 1 root root 0 10月 11 15:21 file [root@justin default]# chmod 665 dir file [root@justin default]# ll 总用量 4 drw-rw-r-x. 2 root root 4096 10月 11 15:21 dir -rw-rw-r-x. 1 root root 0 10月 11 15:21 file [root@justin default]# chmod a+r,u+w,u+x,g+x dir file [root@justin default]# ll 总用量 4 drwxrwxr-x. 2 root root 4096 10月 11 15:21 dir -rwxrwxr-x. 1 root root 0 10月 11 15:21 file [root@justin default]#
归属设置
[root@justin ~]# touch file1 [root@justin ~]# ll file1 -rw-r--r--. 1 root root 0 10月 14 16:56 file1 [root@justin ~]# chown justin file1 [root@justin ~]# ll file1 -rw-r--r--. 1 justin root 0 10月 14 16:56 file1 [root@justin ~]# chown :justin file1 [root@justin ~]# ll file1 -rw-r--r--. 1 justin justin 0 10月 14 16:56 file1 [root@justin ~]# chown root:root file1 [root@justin ~]# ll file1 -rw-r--r--. 1 root root 0 10月 14 16:56 file1 [root@justin ~]#
Linux的chattr与lsattr命令
这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。
chattr 用于设置文件文件系统属性(attribute),使用权限超级用户。
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录
-R:递归处理所有的文件及子目录。
-V:详细显示修改内容,并打印输出。
-:在原有参数设定基础上,移除参数。
+:在原有参数设定基础上,追加参数。
= :更新为指定参数设定。
A:Atime,告诉系统不要修改对这个文件的最后访问时间。
S:Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a:Append Only,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全。
i:Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。
lsattr 显示文件属性。
lsattr [-adlRvV][文件或目录...]
-a 显示所有文件和目录,包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".."。
-d 显示,目录名称,而非其内容。
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
[root@Zabbix_server html]# lsattr /etc/resolv.conf -------------e- /etc/resolv.conf [root@Zabbix_server html]# echo "nameserver 8.8.8.8" >> /etc/resolv.conf [root@Zabbix_server html]# cat /etc/resolv.conf ; generated by /sbin/dhclient-script nameserver 192.168.100.189 nameserver 202.96.209.5 nameserver 202.96.209.133 nameserver 210.22.70.3 nameserver 8.8.8.8 [root@Zabbix_server html]# chattr +i /etc/resolv.conf [root@Zabbix_server html]# lsattr /etc/resolv.conf ----i--------e- /etc/resolv.conf [root@Zabbix_server html]# echo "nameserver 8.8.4.4" >> /etc/resolv.conf -bash: /etc/resolv.conf: Permission denied [root@Zabbix_server html]#
更改linux的root密码 报:passwd: Authentication token manipulation error
[root@Zabbix_server var]# passwd root Changing password for user root. New password: BAD PASSWORD: it is based on a dictionary word Retype new password: passwd: Authentication token manipulation error [root@Zabbix_server var]# lsattr /etc/passwd /etc/shadow ----i--------e- /etc/passwd ----i--------e- /etc/shadow [root@Zabbix_server var]# chattr -i /etc/passwd /etc/shadow [root@Zabbix_server var]# lsattr /etc/passwd /etc/shadow -------------e- /etc/passwd -------------e- /etc/shadow [root@Zabbix_server var]# passwd root Changing password for user root. New password: BAD PASSWORD: it is based on a dictionary word Retype new password: passwd: all authentication tokens updated successfully. [root@Zabbix_server var]#