赞
踩
文件权限的读取
用ls查看目录或文件信息。
格式:-|rw-r–r--| 1 | root |root| 0 | Mar 30 21:17 |5.unit5
【1】【2】 【3】 【4】【5】【6】 【7】 【8】
1.文件类型
文件的类型:-:空文件或文本
d:目录
l:软连接(快捷方式)
c:字符设备
s:socket套接字符
b:block块设备
2.文件的权限
rw-|r–|r–
(1) (2) (3)
(1) [u]root对文件进行的操作(root在所有文件中的操作都是畅通无阻的,即使设置权限也没有作用)
(2)[g]文件所有组对文件能做什么操作
(3)[o]其他人能对文件做什么操作
3.文件个数或子目录个数
对文件:文件硬连接个数(文件内容被记录的次数)
对目录:目录中子目录的概述
4.文件所有人
5.文件所有组
6.文件大小或目录中元数据
对文件:文件大小
对目录:目录中子文件元数据(matedate可以理解为文件的属性)
7.文件的内容被修改的时间
8.文件的名称
如何改变文件的所有人和所有组
chown | chgrp
chown username file|dir 改变文件或目录的所有人
chown user:group file|dir 改变文件或目录的所有人和所有组
chown -R user:group file|dir 递归改变目录或文件的所有人和所有组
chgrp group file|dir 改变文件或目录的所有组
chgrp -R group dir|dir 递归改变文件或目录的所有组
用超级用户创建文件file,可以看到文件的所有人和所有组皆为root。
chown student file 改变文件file的所有人为student
chgrp student file 改变文件file的所有组为student
在root用户下建立递归目录1,并将建立的文件file{1,2,3}移动至该目录中,随后用chgrp -R student 1与chown -R student 1改变该目录下所有目录与文件的所有人和所有组。等价于 chown -R
student:student 1
同时递归改变目录的所有人和所有组为root
如何改变文件的权限
1.对权限的理解
r
对文件:是否可以查看文件中的内容 —>cat file
对目录:是否可以查看目录中有什么子文件或者子目录
w
对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行修改
x
对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
2.更改方式
chmod <u|g|o><+|-|=><r|w|x> file|dir
chmod u+x /mnt/file1
chmod g-r /mnt/file2
chmod ug-r /mnt/file3
chmod u-r,g+x /mnt/file4
chmod -r /mnt/file5
chmod o=r-x /mnt/file6
r=4(给r权限为数字4) w=2(给w权限为数字2) x=1(给操作权限为数字1)
若不规定给ugo那位加命令,则全部加。eg:chmod +r /mnt/linux 给该文件所有为都加r权限,等价与:chmod a+r /mnt/linux
未改变权限之前的文件chmod 777 1/file1 改变目录1中的文件file的权限为公共
chmod -r 1/file 去除file1中所有人读的权限 等价于chmod 333 1/file
chmod u+r,u-w 1/file1 给文件file1使用者添加都的权限,削减其写的权限
chmod 660 1/file1 给文件file1使用者和组用户读写的权限,不给其他人任何权限
umask
umask 系统建立文件是默认保留的权力
系统建立的文件权限应该为777-umask的权限,这并不是数字加减。如下图所示,系统的默认umask为022,所以新建目录的权限为755(rwxr-xr-x)
umask 770 ##临时设定系统umask为770
在临时设定系统umask为770后,新建目录dir的权限为007(------rwx)
永久更改umask
vim /etc/profile ##系统配置文件
59if [ $ UID -gt 199 ] && ["‘id-gn’"="‘id-un’"];then
60 umask 002 ##普通用户的umask
61else
62 umask 077 ##超级用户的umask
63fi
修改/etc/profile中普通用户与超级用户的umask都设置为077
vim /etc/bashrc ##系统配置文件
70 if [ $ UID -gt 199 ] && ["‘id-gn’"="‘id-un’"];then
71 umask 002 ##普通用户的umask
72else
73 umask 077 ##超级用户的umask
74fi
修改/etc/bashrc中普通用户与超级用户的umask都设置为077
source /etc/profile #让更改立即生效
source /etc/bashrc
修改完系统配置文件后运行source /etc/profile 与source /etc/bashrc让配置文件立刻生效,然后建立文件,建立文件的权限为700(rwx------)
特殊权限
1.sticky ##粘制位
作用:
只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者所删除,其他用户无法删除
设定方式:
chmod o+t dir
chmod 1xxx dir
给公共目录dir设定sticky
所有的用户都可以在该目录下进行读写操作。虽然该文件是公共文件,但加了sticky位后,其他用户无法在该目录下对别人创建的文件进行的操作。并不是权限不允许,而是这个请求会被拒绝,这就是sticky的作用。
2.sgid ##强制位
作用
对文件:只针对与二进制可执行文件,当文件上有sgid时任何人执行此文件生成的进程都属于文件的组
对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式:
chmod g+s file|dir
chmod 2xxx file|dir
给监视命令添加sgid后,当使用者tom调用watch命令时,可以看到tom的组身份上升为root。
3.suid ##冒险位
只针对与二进制可执行文件
当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
先去除刚刚给watch命令添加的sgid,然后添加suid给watch命令,当普通用户tom再次运行watch命令时,可以看到,tom的使用者权限上升为root。
设定方式:
chmod u+s file
chmod 4xxx file
注:chmod 6xxx file同时具有23的效果。
ack权限列表
1.作用
让特定的用户对特定的文件具有特定权限。
2.acl
acl列表查看
-rw-rwxr--+ 1 root root 0 Jul 21 15:45 file
^
查看要加入特定权限的文件,若+号存在,表示acl已经开启,加号不存在,则acl没有开启
getfacl 获取某个文件/目录的acl设置选择项。
setfacl 设置牧歌文件/目录的adl规范。
#file: file 文件的名字
#owner: root 此文件的拥有者
#group: root 此文件的所属用户组
user::rw- 使用者列表栏为空:文件拥有者的权限
user:kiosk:rwx 针对用户kiosk权限设置为rwx
group::r-- 针对文件用户组的权限仅有r
mask::rwx 此文件默认的有效权限
other::r-- 其他人拥有的权限
setfacl -m g:用户组名:权限 file|目录 设置单一用户组的权限设置
setfacl -m u: m:权限 file|dir
添加用户tom对文件1/file的权限为7(wrx)为文件file添加用户组tom,权限为6。删除之前添加的acl参数并递归添加用户tom,设置权限为4(r–)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。