红帽Redhat—Linux文件目录权限管理
二、权限管理普通权限:read ,write ,execute查看文件权限属性:[root@server ~]# su - bash[bash@server ~]$ touch file.txt[bash@server ~]$ ls -l file.txt-rw-rw-r--. 1 bash bash 0 Dec 23 15:39 file.txt或简写[bash@server ~]$ ll fi
提示:以下是本篇文章正文内容,下面案例可供参考
一、权限管理
1. 普通权限
read
读 ,write
写 ,execute
执行
2.查看文件权限属性
[root@server ~]# su - bash
[bash@server ~]$ touch file.txt
[bash@server ~]$ ls -l file.txt
-rw-rw-r--. 1 bash bash 0 Dec 23 15:39 file.txt
或简写
[bash@server ~]$ ll file.txt
-rw-rw-r--. 1 bash bash 0 Dec 23 15:39 file.txt
3.查看目录的权限属性
[bash@server ~]$ mkdir dir
[bash@server ~]$ ll -d dir/
drwxrwxr-x. 2 bash bash 6 Dec 23 15:40 dir/
4. 文件权限应用
[root@server tmp]# cd
[root@server ~]# cd /tmp/
[root@server tmp]# su bash
[bash@server tmp]$ touch file.txt
[bash@server tmp]$ su rhel
Password:
[rhel@server tmp]$ ll file.txt
-rw-rw-r--. 1 bash bash 0 Dec 24 10:04 file.txt
[rhel@server tmp]$ cat file.txt
[rhel@server tmp]$ echo 123 > file.txt
bash: file.txt: Permission denied
翻译:bash:文件。txt:拒绝访问
file.txt该文件的属主和属组都是bash,因此rhel这个用户对该文件的身份就属于others,只有读(r)的权限,因此不能写入数据。
5.目录权限应用
[bash@server home]$ ll
total 4
drwx------. 3 1002 1002 78 Dec 22 16:50 ansible
drwx------. 5 bash bash 140 Dec 23 17:32 bash
drwx------. 16 rhel share 4096 Dec 24 10:06 rhel
drwx------. 3 student student 78 Dec 23 10:22 student
drwx------. 3 1500 share 78 Dec 22 16:55 test
[bash@server home]$ cd rhel/
-bash: cd: rhel/: Permission denied
[bash@server home]$ cd bash/
[bash@server ~]$ pwd
/home/bash
6.权限修改
chown
修改文件或目录属主/属组
chown username filename
修改属主
[root@server tmp]# ll file.txt
-rw-rw-r--. 1 bash bash 0 Dec 24 10:04 file.txt
[root@server tmp]# chown rhel file.txt
[root@server tmp]# ll file.txt
-rw-rw-r--. 1 rhel bash 0 Dec 24 10:04 file.txt
[root@server tmp]# su rhel
[rhel@server tmp]$ echo 123 > file.txt
[rhel@server tmp]$ cat file.txt
123
[rhel@server tmp]$ su bash
Password:
[bash@server tmp]$ ll file.txt
-rw-rw-r--. 1 rhel bash 8 Dec 24 10:56 file.txt
[bash@server tmp]$ echo 456 >> file.txt
[bash@server tmp]$ cat file.txt
123
456
chown :grpname filename
修改属组
[bash@server tmp]$
[root@server tmp]# chown :rhel file.txt
[root@server tmp]# ll file.txt
-rw-rw-r--. 1 rhel rhel 8 Dec 24 10:56 file.txt
chown username:grpname filename
修改属主和属组
[root@server tmp]# chown bash:bash file.txt
[root@server tmp]# ll file.txt
-rw-rw-r--. 1 bash bash 8 Dec 24 10:56 file.txt
-R
递归修改
[root@server ~]# su - bash
[bash@server ~]$ cd /tmp/
[bash@server tmp]$ mkdir -p folder/{folder01,folder02,folder03}
[bash@server tmp]$ su root
Password:
[root@server tmp]# ll folder/
total 0
drwxrwxr-x. 2 bash bash 6 Dec 28 15:08 folder01
drwxrwxr-x. 2 bash bash 6 Dec 28 15:08 folder02
drwxrwxr-x. 2 bash bash 6 Dec 28 15:08 folder03
[root@server tmp]# chown -R web:web folder/
[root@server tmp]# ll folder/
total 0
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder01
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder02
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder03
chgrp
修改文件或目录属组
chgrp grpname filename
-R
递归修改
[root@server tmp]# ll folder/
total 0
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder01
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder02
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder03
[root@server tmp]# chgrp bash /tmp/folder/folder01
[root@server tmp]# ll folder/
total 0
drwxrwxr-x. 2 web bash 6 Dec 28 15:08 folder01
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder02
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder03
chmod
修改文件/目录权限
-R
递归修改
chmod
u+r
文件 为属主增加读的权限
chmod
o=rx
文件 将其他人的权限设置为读和执行
chmod
a=r
文件 将属主的权限设置为只读
chmod
gx
文件 减去属组执行的权限
权限位是由rwx组成,没有权限可以不写或用“”填充
chmod
u
[root@server tmp]# ll file.txt
-rw-rw-r--. 1 bash bash 8 Dec 24 10:56 file.txt
[root@server tmp]# chmod u+x file.txt
[root@server tmp]# ll file.txt
-rwxrw-r--. 1 bash bash 8 Dec 24 10:56 file.txt
[root@server tmp]# chmod u-w file.txt
[root@server tmp]# ll file.txt
-r-xrw-r--. 1 bash bash 8 Dec 24 10:56 file.txt
chmod
o
[root@server tmp]# chmod o=rwx file.txt
[root@server tmp]# ll file.txt
-r-xrw-rwx. 1 bash bash 8 Dec 24 10:56 file.txt
chmod
g
[root@server tmp]# ll folder/
total 0
drwxrwxr-x. 2 web bash 6 Dec 28 15:08 folder01
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder02
drwxrwxr-x. 2 web web 6 Dec 28 15:08 folder03
[root@server tmp]# chmod -R g=--- folder/
[root@server tmp]# ll folder/
total 0
drwx---r-x. 2 web bash 6 Dec 28 15:08 folder01
drwx---r-x. 2 web web 6 Dec 28 15:08 folder02
drwx---r-x. 2 web web 6 Dec 28 15:08 folder03
[root@server tmp]# ll -d folder/
drwx---r-x. 5 web bash 54 Dec 28 15:08 folder/
7. MODE:八进制权限模型
--- --- ---
rwx r-x r-x
111 101 101 = 755
--- 0
--x 1
-w- 2
-wx 3
r-- 4
r-x 5
rw- 6
rwx 7
分别修改三类用户的权限
三类用户:
u:属主
g:属组
o:其它用户
a:所有用户
使用+
-
=
设置各类用户的权限
chmod u+x filename
chmod o-w filename
chmod a+x filename
chmod o=r-x filename
没有权限直接接补为
文件访问控制列表
setfacl
: 文件系统访问控制列表,针对具体用户设定权限,而非u,g,o三类用户
-m
设定权限
-x
取消权限
8.setfacl
setfacl m u:username:rw filename
设定用户acl
[root@server ~]# cd /home/
[root@server home]# ls
ansible bash rhel student test
[root@server home]# touch file01.txt
[root@server home]# ll file01.txt
-rw-r--r--. 1 root root 0 Dec 28 17:11 file01.txt
[root@server home]# setfacl -m u:bash:rw file01.txt
[root@server home]# ll file01.txt
-rw-rw-r--+ 1 root root 0 Dec 28 17:11 file01.txt
[root@server home]# getfacl file01.txt
# file: file01.txt
# owner: root
# group: root
user::rw-
user:bash:rw-
group::r--
mask::rw-
other::r--
[root@server home]# su bash
[bash@server home]$ echo 123 >> file01.txt
[bash@server home]$ cat file01.txt
123
setfacl -m g:grpname:rx filename
--设定组acl
[root@server home]# touch file02.txt
[root@server home]# setfacl -m g:bash:rw file02.txt
[root@server home]# getfacl file02.txt
# file: file02.txt
# owner: root
# group: root
user::rw-
group::r--
group:bash:rw-
mask::rw-
other::r--
setfacl x username filename
取消用户acl
[root@server home]# setfacl -x bash file01.txt
[root@server home]# getfacl file01.txt
# file: file01.txt
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
getfacl filename
获取文件的acl
9.特殊权限
-
SUID权限:
在user位设置,以文件的属主身份而非当前操作者的身份操作文件。
对目录无影响。
数值表示为4
表现为s或S,s表示含有x权限,S则表示没有x权限。
如passwd 命令就含有s权限,当普通用户执行passwd修改密码时会获得root权限,以root身份将密码写入shadow文件中。 -
SGID权限:
在group位设置,以文件属组的身份操作文件。对于目录,用户在该目录下创建文件的属组将自动和目录属组一致。
数值表示为2 -
Sticky权限:在others设置,在公共目录(用户都具有写权限的目录)中,用户只能删除自己拥有的文件。
数值表示为1
chmod u+s filename
chmod g+s filename
chmod o+t filename
-
默认权限umask。
文件默认权限=666umask。
文件默认没有执行权限,若通过掩码计算的默认权限中有执行权限,默认权限将自动加1。
目录默认权限=777umask
。
root用户默认umask
值位0022
。
普通用户默认umask
值位0002
。
- umask 设定。
在bash全局配置文件/etc/profile设定 ,对所有用户生效。
在~/.bash_profile 中设定,对当前用户生效。
END
更多推荐
所有评论(0)