目录文件权限chmod
格式:
chmod [-R] u=rwx,g=r-x,o=--- 绝对路径
其中-R表示递归修改目录和目录下的任何文件的对应权限
r为读,w为写,x为执行,-为无权限
1.修改权限的方法:符号法
chmod u(所属者) g(所属组) o(其他人) +,-,= 绝对路径
[root@loaclhost ~]# chmod u+r+w+x,g+r-w+x,o+r-w+x /dir
#递归修改dir以及dir以下的权限(所属者没有了执行的权限,其他人增加了写的权限)
[root@loaclhost ~]# chmod u-x,o+w /dir -R
2.修改权限的方法:数字法
其中r的值为4,w的值为2,x的值为1
#递归修改dir以及dir以下的权限(所属者,所属组,其他人全部为最高权限)
[root@loaclhost ~]# chmod 777 /dir -R
普通文件的权限
格式:
chmod u=rwx,g=r-x,o=--- 绝对路径
其中-R表示递归修改目录和目录下的任何文件的对应权限
r为读,w为写,x为执行,-为无权限
1.修改权限的方法:符号法
chmod u(所属者) g(所属组) o(其他人) +,-,= 绝对路径
[root@loaclhost ~]# chmod u+r+w+x,g+r-w+x,o+r-w+x /dir/file1
#修改file1文件的权限(所属者没有了执行的权限,其他人增加了写的权限)
[root@loaclhost ~]# chmod u-x,o+w /dir/file1
2.修改权限的方法:数字法
其中r的值为4,w的值为2,x的值为1
#修改file1文件的权限(所属者,所属组,其他人全部为最高权限)
[root@loaclhost ~]# chmod 777 /dir/file1
修改文件的所属者和所属组chown
格式:
chown [-R] [所属者]:[所属组] 文件路径
其中:-R表示递归修改文件的所属者和所属组
#递归修改文件的所属者
[root@loaclhost ~]# chown root /dir -R
#单单修改文件的所属者
[root@loaclhost ~]# chown root /dir
#递归修改文件的所属组
[root@loaclhost ~]# chown :redhat /dir -R
#递归修改文件的所属者和所属组
[root@loaclhost ~]# chown root:root /dir -R
#dir文件之下的所有文件权限都是777(无递归)
[root@loaclhost ~]# chmod 777 /dir/*
总结
1.普通用户要拥有修改文件权限的能力所要满足的条件:该文件的所属者属于该用户
2.哪个用户创建的文件,该文件的所属者就是那个用户
3.如果某用户在某个文件的所属组中,则该用户可以拥有该所属组的权限
facl----访问控制列表
1.当文件的所属者,所属组,其他人的位置不够给某个用户设置权限的时候,这时就可以设置acl
#查看dir文件acl属性信息(权限,文件名,所属者,所属组)
[root@loaclhost ~]# getfacl /dir
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
#设置file1文件的acl,允许redhat用户的权限为r-x
[root@loaclhost ~]# setfacl -m u:redhat:r-x /dir/file1
[root@loaclhost ~]# getfacl /dir/file1
# file: dir/file1
# owner: root
# group: root
user::rwx
user:redhat:r-x
group::r-x
mask::r-x
other::r--
#删除文件中的acl单个用户
[root@loaclhost ~]# setfacl -x u:redhat /dir/file1
#删除文件中的acl所有用户
[root@loaclhost ~]# setfacl -b /dir/file1
特殊权限
1.suid(u+s)
给程序文件u+s之后,所有用户执行该程序的时候,程序运行后就变成了进程,该进程的所属者是程序文件的所属者
[root@loaclhost ~]# ll /etc/shadow
----------. 1 root root 1241 7月 29 18:27 /etc/shadow
[root@loaclhost ~]# su -l redhat
[redhat@loaclhost ~]$ less /etc/shadow
/etc/shadow: 权限不够
[redhat@loaclhost ~]$ su -l root
密码:
#给程序文件特殊权限
[root@loaclhost ~]# chmod u+s /usr/bin/less
[root@loaclhost ~]# ll /usr/bin/less
-rwsr-xr-x. 1 root root 203632 4月 19 2022 /usr/bin/less
[root@loaclhost ~]# su -l redhat
[redhat@loaclhost ~]$ less /etc/shadow
[redhat@loaclhost ~]$ su -l root
密码:
#去除特殊权限
[root@loaclhost ~]# chmod u-s /usr/bin/less
[root@loaclhost ~]# su -l redhat
[redhat@loaclhost ~]$ ll /usr/bin/less
-rwxr-xr-x. 1 root root 203632 4月 19 2022 /usr/bin/less
[redhat@loaclhost ~]$ less /etc/shadow
/etc/shadow: 权限不够
2.sgid(g+s)
给目录g+s后,任何用户在该目录下创建的文件的所属组都是该目录的所属组
[root@loaclhost ~]# chown :redhat /dir
[root@loaclhost ~]# ll -d /dir
drwxr-xr-x. 2 root redhat 32 7月 30 17:44 dir
#给文件设置特殊权限
[root@loaclhost ~]# chmod g+s /dir
[root@loaclhost ~]# touch /dir/file3
[root@loaclhost ~]# ll /dir
总用量 8
-rwxr-xr--. 1 root root 216 7月 30 17:28 file1
-rwxr-xr--. 1 root root 12 7月 30 17:44 file2
-rw-r--r--. 1 root redhat 0 7月 30 20:07 file3
#去除特殊权限
[root@loaclhost ~]# chmod g-s /dir
[root@loaclhost ~]# touch /dir/file4
[root@loaclhost ~]# ll /dir
总用量 8
-rwxr-xr--. 1 root root 216 7月 30 17:28 file1
-rwxr-xr--. 1 root root 12 7月 30 17:44 file2
-rw-r--r--. 1 root redhat 0 7月 30 20:07 file3
-rw-r--r--. 1 root root 0 7月 30 20:28 file4
[root@loaclhost ~]#
3.sticky(o+t)
如果给目录o+t后,普通用户只能删除自己创建的文件,不能删除其他普通用户创建的文件