当前位置 博文首页 > ChangWen的博客:Linux权限管理(基本权限、默认权限、
-rw-r--r--
? - 第一个"-"表示文件类型(- 文件,d 目录,l 软链接文件)
? - rw-?????? r--?????? r--
??? u所有者?? g所属组?? o其它人
其中r读,w写,x执行
(1).chmod? [选项]? 模式? 文件名
? - 选项
??? . -R? 递归
? - 模式
??? [ugoa] [+-=] [rwx]
??? [mode=421]
#为所有者添加rw权限, 所属组去除w权限
chmod u+rw, g-w test.txt
权限的数字表示(用二进制转的数)
r---4;? w----2;? x ----1;
如rwxr-xr-x,则对应7 5 5
r: 读取文件内容(cat more? head tail)
w: 编辑、新增、修改文件内容(vi echo)
? -但是不包含删除文件,因为文件名和文件数据存放位置不同
x: 可进入目录
注意:
? 对文件来讲:最高权限是 x
? 对目录来讲:最高权限是 w
? head:默认是查看文件的前10行
? tail:默认是查看文件的最后10行
??? -n 指定查看多少行
? more:显示满一页时暂停,按空格健继续显示下页,或按Q停止显示。
(2).chown: 修改文件的所有者
格式:chown? 用户名? 文件名
(3).chgrp:修改文件的所属组
格式:chgrp? 组名? 文件名
实例要求
? - 拥有一个test目录
? - 让testuser拥有所有的权限
? - 让用户组有查看的权限
? - 其他所有人不许查看这个目录
# 拥有一个test目录
changwen@ubuntu:~$ ll -d test
drwxrwxr-x 3 changwen changwen 4096 Jul 24 05:41 test/
# 添加一个testuser用户
changwen@ubuntu:~$ sudo useradd testuser
# 设置该用户的密码
changwen@ubuntu:~$ sudo passwd testuser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
# 在用户组里添加两个用户
changwen@ubuntu:~$ sudo useradd -g usergroup user1
changwen@ubuntu:~$ sudo useradd -g usergroup user2
# 设置test目录的所有者:所属组
changwen@ubuntu:~$ sudo chown testuser:usergroup test
changwen@ubuntu:~$ ll -d test
drwxrwxr-x 3 testuser usergroup 4096 Jul 24 05:41 test/
# 按实例要求设置权限
changwen@ubuntu:~$ sudo chmod 750 test
changwen@ubuntu:~$ ll -d test
drwxr-x--- 3 testuser usergroup 4096 Jul 24 05:41 test/
??? ACL就是用来解决用户身份不足的问题
# 查看分区ACL权限是否开启
(5).dupe2fs 命令是查询指定分区详细文件系统信息的命令
?dupe2fs -h /dev/sda51
?? -h? 仅显示超级块中信息,而不是磁盘块的详细信息
# 临时开启分区ACL权限
mount? -o? remount, acl? /
? - 重新挂载根分区,并挂载加入acl权限
# 永久开启分区ACL权限(不建议修改)
vi? /etc/fstab
#加入acl
然后修改UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2? /? ext4? defalults? acl? 1 1
# 重新挂载文件系统或重启系统,使修改生效
mount? -o? remount? /
# 查看acl权限
getfacl? 文件名
# 设定acl权限
setfacl? 选项? 文件名
? -m? 设定ACL权限
? -x? 删除指定的ACL权限
? -b? 删除所有的ACL权限
? -d? 设定默认ACL权限
? -k? 删除默认ACL权限
? -R? 递归设定ACL权限
changwen@ubuntu:~$ mkdir av
# 增加所有者和用户组,并设置av目录的权限
changwen@ubuntu:~$ sudo useradd tony
changwen@ubuntu:~$ sudo groupadd stu
changwen@ubuntu:~$ sudo chown tony:stu av
# 设置av权限
changwen@ubuntu:~$ sudo chmod 770 av
# 添加老王用户并设置密码
changwen@ubuntu:~$ sudo useradd lw
changwen@ubuntu:~$ sudo passwd lw
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
# 给用户lw赋予r-x权限,使用 "u:用户名:权限" 格式
changwen@ubuntu:~$ sudo setfacl -m u:lw:rx /home/changwen/av
# 为用户组tgroup2分配ACL权限。使用 "g:组名:权限" 格式
setfacl -m g:tgroupt2:rwx /home/changwen/av
上面getfacl av可以看到有一个mask
mask:是用来指定最大有效权限的。如果我给用户赋予ACL权限,是需要和mask的权限”相与”才能得到用户的真正权限。
# 修改最大有效权限
setfacl -m m:rx 文件名
?- 设定mask权限为r-x。使用"m:权限"格式
删除ACL权限
# 删除指定用户的ACL权限
setfacl -x u:用户名? 文件名
# 删除指用户组的ACL权限
setfacl? -x g:组名? 文件名
# 删除文件的所有的ACL权限
setfacl -b 文件名
?? 1).递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。递归权限仅能赋予目录,不能赋予文件。
setfacl -m u:用户名:权限 -R? 文件名
? -R 如果不加R,那么该目录下创建的文件没有ACL权限
???? 但加R,会有权限溢出
所以建议少用ACL权限
?? 2).默认ACL权限的作用是如果给们目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。
setfacl -m d:u:用户名:权限? 文件名