使用chmod管理权限
1.查看文件详情
ls -l file1
ls -d dir1/ #查看本目录信息
2.权限类型
r 读(4)
w 写(2)
x 执行(1)
- 无权限(0)
3.权限详情:
drwxr-xr-x. 1 root root 0 Jun 15 16:05 dir1
1)root用户对dir1的权限是:rwx(7)
2)root组对dir1的权限是:rx(5)
3)other用户对dir1的权限是rx(5)
4.权限分配:
1)数字方式
chmod 755 file1
2)英文参数方式
chmod a+x file1
u 用户
g 组
o other
a 所有,包括用户,组,和other
3)umask权限掩码(默认022)
(1)默认权限:文件666,目录777
(2)文件644(默认权限666 - 644 = 权限掩码022)
(3)目录755(默认权限777 - 755 = 权限掩码022)
4)目录权限
对于目录来说,w代表可以在目录里创建新目录或文件。
x代表有权cd到该目录.
acl权限管理
setfacl命令可以用来细分linux下的文件权限。
chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。换句话说,setfacl可以更精确的控制权限的分配。
1.设置权限
setfacl -m u:user1:rwx /test1
#-m, --modify-acl 更改文件的访问控制列表
[root@ywops tmp]# getfacl test1.txt
# file: test1.txt
# owner: root
# group: root
user::rw-
user:user1:rwx #user1先存在
group::r--
mask::rwx
other::r--
-rw-rwxr--+ 1 root root 32 Jun 14 11:23 test1.txt
#使用acl设置的权限,会在最后多一个+号
2.查看权限
getfacl /test
3.删除user1在/test上的权限
setfacl -x u:user1 /test
#-x, --remove=acl 根据文件中访问控制列表移除条目
#删除权限后,user1划为other
4.删除/test上的所有acl权限
setfacl -b /test
#-b, --remove-all 删除所有扩展访问控制列表条目
5.设置acl的默认权限
setfacl -m d:u:user1:rwx dir1
#只有目录才能设置默认权限
#多个用户共用一个目录,设置默认权限后,不管是哪个用户在这个共用目录下创建的目录,其他用户都能通过默认权限访问
[root@ywops mnt]# setfacl -m u:user1:rwx dir1/
[root@ywops mnt]# setfacl -m u:user2:rwx dir1/
[root@ywops mnt]# setfacl -m d:u:user1:rwx dir1/
[root@ywops mnt]# setfacl -m d:u:user2:rwx dir1/
[root@ywops mnt]# getfacl dir1/
# file: dir1/
# owner: root
# group: root
user::rwx
user:user1:rwx #当前权限
user:user2:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:user1:rwx #创建目录的默认权限
default:user:user2:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
sudo权限管理
如果希望用户user1来执行一些root的命令,可以使用sudo授权。
1)设置sudo权限
通过visudo命令编辑/etc/sudoers
#在末行添加
#user1 sudo(root)
user1 localhost=/usr/sbin/init, /usr/sbin/useradd
#给user1增加两条命令init和useradd的执行权限
2)sudo useradd user5
#user1执行时,必须在开头加sudo