linux 学习笔记 (六)
linux 是一个文件系统,用户使用linux就是使用linux自带的或者安装的文件去进行自己想要的操作,
而对常用的文件, linux将其做成指令,或者声明环境变量,可以在命令行直接使用。
对于一个在linux系统上的文件,我们首先要了解的是它的属性,而属性则限定了文件的用途。
[root@localhost ~]# ll
total 64
-rw-------. 1 root root 1129 Aug 8 2014 anaconda-ks.cfg
-rwxr-xr-x. 1 root root 354 Aug 8 2014 backup.sh
drwxr-xr-x. 2 root root 4096 Aug 8 2014 Desktop
drwxr-xr-x. 2 root root 4096 Aug 8 2014 Documents
drwxr-xr-x. 2 root root 4096 Aug 8 2014 Downloads
drwxr-xr-x. 2 root root 4096 Aug 8 2014 Music
drwxr-xr-x. 2 root root 4096 Aug 8 2014 Pictures
针对文件backup.sh,它的属性为
-rwxr-xr-x.
以此为例,第一列代表文件类型,文件类型包括,目录d,文件-,链接l,c字符文件,b块存储文件,s插销文件(用作本地通信),p管道文件等
之后每三个为一组,分别代表的是user(所属主),group(所属组),others(其他,非所属主,非所属组)
r 可读,w 可写,x 可执行
另外其他几列,数字是指文件的连接数,所属主,所属组,文件大小,最后修改时间 ,文件(文档名)
对于文件属性的数字表达。r = 4, w = 2 ,x = 1
而修改权限最常用的指令是chmod
系统默认umask 0022,而新建的目录属性一般是755,drwxr-xr-x,而对新建文件属性则是644,-rw-r--r--
chmod 格式: chmod 777 文件
chmod a+r 文件 为所属主,所属组,其他成员都添加读权限
chmod u+w 为所属主添加写权限
还有种不提倡的用法chmod u=rwx;o=rwx 文件 设置所属主的权限为rwx,设置其他人的权限为rwx
而 chmod -R 则是修改目录的属性,其中的子目录会继承其属性的改变。
chown 改变档案属主属组
格式 chown 用户名 文件/目录 ,修改属主
也可以 chown 群组名 文件/目录,chown gropu1 /etc/2.txt 修改属组
而chown -R 选项则是包含子目录的修改
文件的隐藏属性:chatter 文件隐藏属性
lsattr 就是列出文件或文档的特殊属性,默认的属性是e。
[root@master ~]# lsattr
-------------e- ./2.txt
-------------e- ./bd_logo1_31bdc765.png
-------------e- ./install.log
-------------e- ./echo
-------------e- ./usb.sh
-------------e- ./test
-------------e- ./anaconda-screenshots
lsattr -R 可以查看当前目录及子目录下所有文件的属性
lsattr -d 只查看当前目录而不会查看子目录
chattr 更改文件的属性命令
有两个特殊的选项:a不可移动,不可重命名,不可删除,不可以直接编辑,但是可以通过重定向输入进行内容的编辑。
i选项,不可移动,不可编辑,不可删除,不可通过重定向进行内容编辑,不可重命名
子目录下的文件若含i选项,则包含此文件的目录,也不可删除。
set_suid的意义是给临时赋予非所属主的用户可以执行部分文件的权限。
以/etc/shadow为例,因为此文件属性是所有人不可读不可写,
但/bin/passwd 属性为-rws-xr-x-,s属性赋予了普通用户临时执行该命令的权利,所以普通用户也可以执行passwd。
[root@master ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月 22 2012 /usr/bin/passwd
通过 chmod u+s 文件来设置suid,限制:必须是二进制文件,必须是可执行的。
若文件没有x属性 +s后,变成S,而不是s。 但非root用户,使用此文件时则不可执行。
因为umask默认值为0022,之前我们设置的是后三位r 4,w 2,x 1,而suid 为4,sgid为2,sticky这位1
设置的是第一位。
sgid 的意义是让普通用户临时拥有所属组的权限。
sgid可以作用于文件,以及目录,改变父目录的所属组权限,新建的子目录以及文件的所属组权限也会跟随父目录。
同样的所属组的若没有x 权限,这设置sgid后,同样变为S.
课后习题错了一道,将 chmod g=rws file 选择了,因为这个格式容易造成混淆,所以摒弃这种方式。
防删除位sticky_bit
这里讲到了普通用户更改了所属组所属主为root的文件,其实这个文件已经不是原来的文件,原来的文件被删除后,重新创建了相同名字的新文件,而所属组和所属主的文件已变更为普通用户。
而同样说明,当一个目录的权限,其他人可读可写可执行的时候,其他人都可以更改删除所有文件包括root用户的文件。
chmod o+t 目录,若将目录的可执行权限取消,则变成T
设置了sticky_bit后,则目录下的内容不可被普通用户删除。
备注:echo >>文件 输入重定向,直接输入到文件的最后一行,并且不会清空源文件内容
echo >则会清空原来文件内容。