1.文件的权限
文件属性的查看 :ls -l 文件名 或 ll 文件名
[root@foundation74 Desktop]# ll file
-rw-rw-r--. 1 kiosk kiosk 30 Jan 3 13:02 file
1 2 3 4 5 6 7 8
各字段含义:
1:文件类型
-"-":普通文件。
-"b":块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件 /dev/sda1 就是这种文件。
-"c":字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。
-"d":目录文件。Linux 中一切皆文件,所以目录也是文件的一种。
-"l":软链接文件。
-"p":管道符文件。这是一种非常少见的特殊设备文件。
-"s":套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样的文件。
2:rw-r--r--:文件读写权限
r
对文件:可以查看文件的字符(内容)
对目录:可以查看目录中文件/目录的信息
w
对文件:可以更改文件内的字符
对目录:在目录中增删改查
x
对文件:可以运行文件中记录的程序动作
对目录:可以进入目录
3:对文件:文件内容被系统记录的次数 。 对目录:
4:文件的拥有者
5.文件的所属组
6.文件的内容大小
7.文件最后一次被修改的时间
8.文件的名字
2.修改文件拥有者和所属组
方式:
chown username file|dir ##修改文件拥有者
chgrp groupname file|dir ##修改文件所属组
chown username.groupname file|dir ##同时修改文件拥有者和所属组
chown -R username file|dir (递归)
chgrp -R groupname file|dir (递归)
修改文件拥有者
-rw-rw-r--. 1 kiosk kiosk 30 Jan 3 13:02 file
[root@foundation74 Desktop]# chown root file ##修改文件拥有者为root
-rw-rw-r--. 1 root kiosk 30 Jan 3 13:02 file
修改文件所属组
-rw-rw-r--. 1 root kiosk 30 Jan 3 13:02 file
[root@foundation74 Desktop]# chgrp root file ##修改文件所属组为root
-rw-rw-r--. 1 root root 30 Jan 3 13:02 file
同时修改文件拥有者和所属组
-rw-rw-r--. 1 root root 30 Jan 3 13:02 file
[root@foundation74 Desktop]# chown kiosk.kiosk file ##修改文件拥有者和所属组为kiosk
-rw-rw-r--. 1 kiosk kiosk 30 Jan 3 13:02 file
修改目录拥有者(修改所属组同上,略)
drwxrwxr-x. 3 kiosk kiosk 49 Dec 27 23:11 dir
[root@foundation74 Desktop]# chown root dir ##修改目录拥有着者为root
drwxrwxr-x. 3 root kiosk 49 Dec 27 23:11 dir
第归修改目录拥有者所属组
[root@foundation74 Desktop]# chown -R root dir
[root@foundation74 Desktop]# cd dir/
[root@foundation74 dir]# ll ##目录下的目录和文件拥有者全部被修改
total 4
-rw-rw-r--. 1 root kiosk 15 Dec 26 09:33 a
-rw-rw-r--. 1 root kiosk 0 Dec 27 22:35 a.c
-rw-rw-r--. 1 root kiosk 0 Dec 27 22:35 b.c
drwxrwxr-x. 2 root kiosk 240 Dec 27 23:17 dir1
3.系统默认权限的设定
umask 默认权限是Linux权限的一种,主要用于让 Linux 中的新建文件和目录拥有默认权限
设定方式:
umask(普通用户和超级用户) # 查看系统减掉的权限
umask xxx #修改该系统减掉xxx,此设定是临时设定,只在当前shell生效(临时设定)
永久设定方式:
vim /etc/bashrc
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002 #普通用户的umask
72 else
73 umask 022 #超级用户的umask
74 fi
vim /etc/profile
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 077
61 else
62 umask 022
63 fi
以上两个文件的umask值必须保持一致
[root@desktop0 pub]# source /etc/bashrc
[root@desktop0 pub]# source /etc/profile
让系统重新加载配置文件,让设定立即生效
对文件来讲,新建文件的默认最大权限是 666,没有执行(x)权限。这是因为执行权限对文件来讲比较危险,不能在新建文件的时候默认赋予,而必须通过用户手工赋予。
对目录来讲,新建目录的默认最大权限是 777。这是因为对目录而言,执行(x)权限仅仅代表进入目录,所以即使建立新文件时直接默认赋予,也没有什么危险。
4.文件的访问控制(acl列表)
1.acl的定义
acl=access control
指定特殊的用户对特殊的文件有特殊的权限,由于我们在实际生活中的角色很多,所需要的权限种类也很多,系统提供的权限往往会不够用,这时就可以使用acl来给你特定的用户自定义分配权限。
[kiosk@foundation0 ~]$ ls -dl /home/kiosk/
drwx--x---+ 44 kiosk kiosk 4096 Dec 31 08:59 /home/kiosk/
^
标示开启了acl访问控制列表 ##注意:当文件/目录开启权限列表时,ls -l 看到的权限是不准确的
设定acl列表
[root@foundation74 dir1]# setfacl -m u:student:rwx file ##为用户student设定对file文件的rwx权限
[root@foundation74 dir1]# ll
total 0
-rw-rwxr--+ 1 root root 0 Jan 4 11:59 file ##+标志acl列表已开启
查看acl列表
[root@foundation74 dir1]# getfacl file ##查看acl列表
# file: file ##目录/文件的名称
# owner: root ##d/f 的拥有者
# group: root ##d/f 的所属组
user::rw- ##拥有者的权限
user:student:rwx ##acl列表中(特殊用户)的权限
group::r-- ##特殊组的权限
mask::rwx ##权限掩码
other::r-- ##其他人的权限
删除列表中的用户或组
[root@foundation74 dir1]# setfacl -x u:student file
[root@foundation74 dir1]# getfacl file ##student用户被删除
# file: file
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
关闭acl列表
[root@foundation74 dir1]# setfacl -b file
[root@foundation74 dir1]# ll
total 0
-rw-r--r--. 1 root root 0 Jan 4 11:59 file ##权限的最后一位由"+"变为".",说明列表已关闭
5.特殊权限位
1.suid ##冒险位
只针对二进制可执行文件
文件内记录的程序产生的进程的拥有者为文件的拥有者
和进程的发起人没关系
方式:chmod u+s /usr/bin/touch 或 chmod 4755 /usr/bin/touch
ls -l一下,发现/use/bin/touch 变红,说明已经开启冒险位
下面在student用户中执行touch命令
[student@foundation74 ~]$ touch file
[student@foundation74 ~]$ ll
total 0
-rw-r--r--. 1 root kiosk 0 Jan 4 12:45 file ##针对二进制可执行文件,文件内记录的程序产生的进程的拥有者为文件的拥有者,我刚刚在root下开启冒险位.现在touch这个命令不管哪个用户执行,建立出的文件拥有者也只属于root,这就是冒险位。
2.sgid ##强制位
设定方式:chmod g+s file|dir或chmod 2xxx file|dir
1.对文件:只针对二进制可执行文件,
任何人运行二进制文件程序时程序产生的进程的所属组都是文件的所有组
和程序发起人组的身份无关。
与上面演示的方式一致,只不过改变了所属组,不再演示。
2.对目录:当目录有sgid权限后,目录中新建的所有文件的所有组
都自动归属到目录的所有组之中,和文件建立者所在的组无关
[root@foundation74 /]# chmod g+s /li
[kiosk@foundation74 li]$ ll
total 0
-rw-r--r--. 1 root root 0 Jan 4 12:57 file ##在/li目录下创建的文件和目录的所有组都变为root
3.sticky ##粘制位
t权限:只针对于目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除
设定方式:chmod o+t direcotry 或chmod 1777 direcotry\
[root@foundation74 test]# chmod 777 /test
[root@foundation74 test]# ll -d
drwxrwxrwx. 2 root root 18 Jan 5 10:35 .
[root@foundation74 test]# chmod o+t /test
[root@foundation74 test]# ll -d
drwxr-xr-t. 2 root root 18 Jan 5 10:35 . ##设置粘贴位后末尾多了一个t
[kiosk@foundation74 test]$ rm -f file
rm: cannot remove ‘file’: Operation not permitted ##设置粘贴位后其他用户不能删除目录以及目录下的文件