文件权限与目录配置
1. 档案拥有者
若你有文档放在自己的目录而不希望给别人看到时,把文档设置成只有文件拥有者才能修改档案的内容,那么即时其他人知道你有这个文件,由于你设定了适当的权限,他人则无法查看
2. 群组的概念
设有一个组为project,内有成员class1,class2,class3,设置群组则可以限制非自己团队的其他人不能阅览内容,而且也可以让自己团队成员修改自己所简历的文件,如果自己有私人文件,仍可以设定成让自己的团队成员看不到我的文件数据。
如何改变文件属性与权限
一、改变所属群组,chgrp
语法:chgrp [-R] filename
参数:-R:进行递归的持续变更,即连同次目录下的所有档案、目录都更新成为这个群组。常常用在变更某一目录内所有的档案。
范例:chgrp users install.log 改变install.log文件的群组
tips:要改变的组名必须要在/etc/group档案内存在
二、改变档案拥有者,chown
语法:chown [-R] 账号名称文件或目录
chown [-R] 账号名称:组名文件或目录
参数:-R 进行递归的持续变更,即连同次目录下的所有文件都变更
范例:将install.log的拥有者改为bin这个账号
chown bin install.log
将install.log的拥有者与群组改为root
chown root:root install.log
三、改变权限,chmod
1. 数字类型改变档案权限
语法: chmod [-R] xyz 文件或目录
参数:xyz 数字类型的权限属性,为rwx属性数值的相加。
-R
范例:将a这个文件的所有权限都设定启用
chmod 777 a
2. 符号类型改变档案权限
范例:user(u):具有可读、可写、可执行的权限;
group(g): 具有读与写的权限;
others(o): 具有读与写的权限;
chmod u=rwx,go=rx a
权限的重要性
r 表示具有读取目录结构列表的权限,所以当你具有读取一个目录的权限时,表示可以查询该目录下的文件名数据。
w 有下面的权限
建立新的文件与目录;
删除已经存在的文件与目录;
将已存在的文件或目录进行更名;
搬移该目录内的档案、目录位置;
x 表示用户能否进入该目录成为工作目录的用途。
文件与目录的管理
cd:变换目录
pwd:显示当前目录
mkdir:建立一个新的目录
rmdir:删除一个空目录
mkdir [-mp] 目录名称
参数: -m 配置文件的权限
-p 可以直接将所需要的目录递归建立起来
范例:在/temp底下建立数个新目录
cd /tmp
mkdir test //建立一个名为test的新目录
mkdir test1/test2/test3 //错误,没办法直接建立此目录
mkdir –p test1/test2/test3 //加上-p的参数后,可以建立多层目录
范例:建立权限为 rwx—x—x的目录
mkdir –m 711 test2
rmdir:删除一个空目录
rmdir [-p] 目录名称
参数:-p连同上层空的目录也一起删除
范例:将mkdir范例中建立的目录删除
rmdir test //只有单层目录可以直接删除
rmdir test1 //里面有内容,无法删除
rmdir –p test1/test2/test3/test4 //使用-p参数,可以一次性删除
ls 文件与目录的检查
ls [-aAdfGhilnrRSt]目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称
参数: -a:全部文件,连同隐藏文件(开头为.的文件)一起列出来
-d:仅列出目录本身,而不是列出目录内的档案数据
-l:长数据串列出,包括文件的属性与权限等
--color=never:不依据文件特性给予颜色显示
--color=always:显示颜色
--color=auto:让系统自行依据设定来判断是否给予颜色
--full-time:以完整时间模式(包含年、月、日、时、分)输出
cp (复制文件或目录)
cp [-adfilprsu] 来源文件 目标文件
参数:-a相当于-pdr的意思
-i::若目标文件已经存在时,在覆盖时会先询问动作的进行
-p:连同文件的属性一起复制过去,而非使用默认属性;
-r:递归连续复制,用于目录的复制行为;
范例:变换目录到/tmp,并将/var/log/wtmp 复制到/tmp
cd /tmp
cd /var/log/wtmp . cd第二个参加为“.”表示复制到当前目录
rm(移除文件或目录)
rm [-fir]文件或目录
参数:-f 就是force的意思,忽略不存在的文件,不会出现警告信息;
-i:互动模式,在删除前会询问使用者是否动作
-r:递归删除,常用在目录的删除
范例:通过匹配符*,将/tmp底下开头为bashrc的文件通通删除
rm –I bashrc*
mv(移动文件与目录,或更名)
mv [-fiu]source destination
mv [options]source1 source2 source3 … directory
参数:-f 就是force的意思,如果目标文件已存在,不会询问而直接覆盖;
-i:若目标文件已经存在时,就会询问是否覆盖
-u:若目标文件已存在,且source比较新,才会更新
范例:复制一文件,建立一目录,将文件移动到目录中
cd /tmp
cp ~/.bashrc bashrc
mkdir mvtest
mv bashrc mvtest
将刚刚的目录更名为mvtest2
mv mvtest mvtest2
建立2个文件,全部移动到/tmp/mvtest2中
cp ~/.bashrc bashrc1
cp ~/.bashrc bashrc2
mv bashrc1 bashrc2 mvtest2
umask(档案的预设权限)
·建立文件的预设权限为666,即-rw-rw-rw-
·建立目录的预设权限为777,即drwxrwxrwx
tips: umask的分数是指默认值要减掉的权限
范例:设定文件的权限为-rw-rw-r- -
umask 002 //默认文件的权限为-rw-rw-rw- 减掉w权限即可
chattr(配置文件隐藏属性)
chattr [+-=] [ASacdistu] 文件或目录
参数:+ 增加某一个特殊参数,其他原本存在存在则不动。
- 移除某一个特殊参数,其他原本存在参数则不动。
= 设定一定,且仅有后面接的参数
a:设定a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设定这个属性。
i:可以让一个文件不能被删除、改名、设定连接也无法写入或新增资料,只有root能设定此属性
范例:在/tmp下建立文件,并加入i的参数
cd /tmp
touch attrtest //建立一个空文件
chattr + I attrtest //给予i的属性
将该文件的i属性取消
chattr –i attrtest
lsattr(显示文件隐藏属性)
lsattr [-adR] 文件或目录
参数:-a 将隐藏文件的属性显示出来;
-d:如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
-R:连同子目录的数据也一并列出来;