您的位置:首页 > 运维架构 > Linux

文件权限问题

2016-09-19 23:47 148 查看
1. 查看文件属性: l
ls -l <filename> ##查看文件属性
ls -ld <directory> ##查看目录属性

ls -al ##列出当前目录下的所有文件及其属性信息,参数"-al"表示列出所有文件详细的权限与属性(包含隐藏文件,就是文件名第一个字符为"."的文件)。如下:



d rwxr-xr-x 5 root root 4096 Jul 27 21:26 pdf
文件类型 文件权限 链接数 文件所有者 文件所属组 文件大小 最后被修改时间 文件名
(1)文件类型:d:目录;
-:文件;
l:链接文件;
b:表示设备文件里面的可供存储的接口设备;
c:表示设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备);
(2)文件权限:3个为一组,“rwx”,r代表可读,w代表可写,x代表可执行。三个权限的位置不变,若无某个权限用“-”表示。 第一组代表文件所有者(user)的权限,第二组代表同用户组(group)的权限,第三组代表其他非本用户组(others)的权限。
(3) 链接数:表示有多少不同的文件名连接到此节点(i-node)。在linux系统中,每个文件都会将它的权限与属性记录到文件系统的i-node中,我们使用的目录树使用文件名来记录,因此,每个文件就会连接到一个i-node。
(4)文件所有者:文件所属的用户。
(5)文件所属组:文件所在组的名称。
(6)文件大小:默认单位是B。
(7)最后被修改时间:文件最近被修改的时间(月/日/时间),如果文件被修改的时间距离现在太久,那么时间部分仅现实年份。 如:drwx------ 6 kiosk kiosk 4096 Sep 5 2007 学习视频
(8)文件名:如果文件名之前多一个“.”,则代表这个文件为隐藏文件。
2.权限种类:
r
r权限针对文件,表示可以查看文件内容
r权限针对目录,表示可以ls 查看目录中存在的文件名称

w
w权限针对文件,表示可以更改文件的内容
w权限针对目录,表示是否可以删除目录中的子文件或者子目录

x
x权限对于文件,表示是否可以开启文件当中记录的程序
x权限对于目录,表示是否可以进入目录中

3.改变文件属性、权限:
()chgrp:改变文件所属组
chgrp 组名称 文件 ##更改文件所有组
chgrp -R 组名 目录 ##更改目录本身以及目录中的子文件的所有组,“-R”指递归。
(2)chown:改变文件所有者
chown 用户名称 文件 ##更改文件所有人
chown -R 用户 目录 ##更改目录本身以及目录中的子文件的所有人
chown 所有者:所属组 文件 ##更改文件的所有者以及所属组

(3)chmod:改变文件权限
用数字来表示权限: r:4 w:2 x:1
因此,改变文件权限有两种表达方式,一种是用“rwx”,一种是直接用其所对应的数字。
①chmod [-R] xyz 文件或者目录 ##x,y,z分别代表文件(目录)所有者、所属组、其他非本用户组的权限。
如:chmod 642 file ##表示文件所有者对该文件有可读、可写的权限,所属组的成员对该文件有可读的权限,其他非本用户组的成员对该文件有可写的权限。
② chmod u/g/o +/-/= r/w/x file ##给user/group/others用户加/减/赋予某些权限。
如:chomd ug+x file ##表示给user/group用户加上对file的可执行权限
chmod u=rwx,go=rx file ##表示该文件权限为766
chmod -w file ##表示所有用户对file都没有可写的权限
4.文件的默认权限
umask:目前用户在新建文件或目录时的权限默认值。是从权限中“拿走”相应的位。
默认的情况如下:
用户创建文件则默认没有可执行权限,即最大为666;

用户新建目录时,默认所有权限均开放,即最大为777。




上图中的“0022”的第一位为特殊权限位,后三位为八进制数。
如:umask值为022时,默认情况下,group和others用户的可写权限被去掉了(注意umask是八进制数,不能直接进行加减)。

新建文件时:(-rw-rw-rw-)-(-----w--w-)==(-rw-r--r--)
新建目录时:(drwxrwxrwx)-(d----w--w-)==(drwxr-xr-x)



5.特殊权限
(1) SetUID(SUID):当s出现在文件所有者的x权限上时,所有者和超级用户对该文件有可执行权限。SUID仅可用在二进制程序上,不能用在shell scipt上。SUID为数字4。

如:
[root@lmy Desktop]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 30 2014 /usr/bin/passwd
[root@lmy Desktop]# ls -l /etc/shadow
---------- 1 root root 1282 Sep 12 00:50 /etc/shadow
这样,用户就可以修改自己的密码
命令: chmod u+s file
chmod 4777 file

(2)SetGID(SGID): 粘制位。
g+s ##针对目录,在目录中创建的文件都自动归属到目录所在组,针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的。SGID为数字2
如:
[root@lmy Desktop]# ls -l /usr/bin/locate
-rwx--s--x. 1 root slocate 40504 Jan 27 2014 /usr/bin/locate
[root@lmy Desktop]# ls -l /var/lib/mlocate/mlocate.db
-rw-r----- 1 root slocate 3059899 Sep 19 21:30 /var/lib/mlocate/mlocate.db
如此,当普通用户执行locate时,能够读取mlocate.db。

命令: chmod g+s file|directory
chmod 2777 file|directory
(3)Sticky Bit(SBIT):强制位,只针对目录有效,SBIT为数字1。
o+t ##只针对目录,当一个目录上有t权限时,这个目录中的文件只能被文件拥有者删除
命令:chmod o+t directroy
chmod 1777 directory
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文件 权限 Llinux