linux权限管理
一、chmod命令
1.参数
u 用户user,文件或目录的所有者。 g 用户组group,文件或目录所属群组 o 其它用户others
a 所有用户all,系统默认使用此项
+ 添加某些权限
- 取消某些权限
= 设置文件的权限为给定的权限
r 表示可读权限
w 表示可写权限
x 表示可执行权限
s 设置权限suid和sgid,使用权限组合“u+s”设定文件的用户的ID位,“g+s”设置组ID位 t 只有目录或文件的所有者才可以删除目录下的文件
-R 递归处理,将指令目录下的所有文件及子目录一并处理
2.实例
[root@ce-003 ce]# ll
total 8
-rw-r--r--. 1 root root 985 Mar 20 20:41 a.gz
-rw-r--r--. 1 root root 5 Mar 20 20:16 eof.txt
drwxr-xr-x. 2 root root 6 Mar 20 20:33 qwe
[root@ce-003 ce]# chmod o+x a.gz
[root@ce-003 ce]# ll
total 8
-rw-r--r-x. 1 root root 985 Mar 20 20:41 a.gz
-rw-r--r--. 1 root root 5 Mar 20 20:16 eof.txt
drwxr-xr-x. 2 root root 6 Mar 20 20:33 qwe
3.特殊权限参数
-t 是对目录设置特殊权限,用户只能删除自己的文件。
u+s 设置使文件在执行阶段具有文件所有者的权限;
g+s 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
4.注意
将目录权限设置为其他用户可写,这时普通用户是可以进入到目录中随意删除,修改文件名(即使不是自己的文件),对文件的其他用户权限为不可写的文件也可以强制保存。将目录权限设置为其他用户不可写(目录默认权限755),这时普通用户就无法删除,修改文件名,但 是如果文件本身有其他可写权限,还是可以写数据的。
二、chown命令
修改指定文件的所有者或者属组。
[root@ce-003 ce]# chown qwe:qwe a.gz
[root@ce-003 ce]# ll
total 8
-rwxr----x. 1 qwe qwe 985 Mar 20 20:41 a.gz
# 修改文件所有者为qwe:
chown qwe a.gz
# 修改文件的所有者和属组:
chown qwe:qwe a.gz
# 修改文件的所有者和属组:
chown qwe. a.gz
# 递归修改文件的所有者和属组:
chown qwe. -R /data/
三、 setfacl命令
设置文件访问控制列表
1.参数
-m --modify-acl 更改文件的访问控制列表
-M --modify-file=file 从文件读取访问控制列表条目更改
-x --remove=acl 根据文件中访问控制列表移除条目
-X --remove-file=file 从文件读取访问控制列表条目并删除
-b --remove-all 删除所有扩展访问控制列表条目
-k --remove-default 移除默认访问控制列表
--set=acl 设定替换当前的文件访问控制列表
--set-file=file 从文件中读取访问控制列表条目设定
--mask 重新计算有效权限掩码
-n --no-mask 不重新计算有效权限掩码
-d --default 应用到默认访问控制列表的操作
-R --recursive 递归操作子目录
-L --logical 依照系统逻辑,跟随符号链接
-P --physical 依照自然逻辑,不跟随符号链接
--restore=file 恢复访问控制列表,和“getfacl -R”作用相反
--test 测试模式,并不真正修改访问控制列表属性
-v --version 显示版本并退出
2.实例
1.查看cal权限
[root@ce-003 ce]# getfacl a.gz
# file: a.gz
# owner: qwe
# group: qwe
user::rwx
group::r--
other::--x
2.设置用户权限
[root@ce-003 ce]# setfacl -m u:qwe:rw a.gz
[root@ce-003 ce]# getfacl a.gz
# file: a.gz
# owner: qwe
# group: qwe
user::rwx
user:qwe:rw-
group::r--
mask::rw-
other::--x
#第一个user没有写用户名,代表是默认属主root的权限 user::rwx
#第二个user代表得是qwe用户得权限 user:qwe:rw-
3.取消其他用户的所有权限
[root@ce-003 ce]# setfacl -m o::- a.gz
[root@ce-003 ce]# getfacl a.gz
# file: a.gz
# owner: qwe
# group: qwe
user::rwx
user:qwe:rw-
group::r--
mask::rw-
other::---
4.批量修改用户权限
#先创建一个文件:
touch acl.txt
#添加要设置得权限:
u:qwe:rwx
u:qwe1:rw
u:qwe2:x
u:qwe:rx
#执行,其中abc.txt是要进行权限设置得文件:
setfacl -M acl.txt abc.txt
3.注意
用户必须存在,否则会报错。
四、chattr命令
改变文件属性
1.参数
+a 让某个文件只能往里面追加内容,不能删除。
+i 完全限制系统中某个关键文件,不能被修改,删除。
五、useradd命令
创建的新的系统用户
1.参数
-b指定用户家目录的根目录,会自动创建用户家目录。
-d指定用户的家目录,即指定的目录即为家目录,也会自动创建。
-r指定创建系统用户。
-s指定用户登入后所使用的shell。
2.实例
[root@ce-003 ce]# useradd asd
[root@ce-003 ce]# su asd
[asd@ce-003 ce]$
六、passwd命令
修改用户密码
1.参数
-l 锁定用户密码,用户登录不了。
-u 解锁用户密码。
-e 使用户密码立即失效。
2.实例
#管理员修改用户密码:
passwd qwe
#用户修改自己的密码:
passwd
七、userdel命令
删除用户以及相关数据,但是如果不加参数,则只删除用户,不删除其家目录。
1.参数
-r 删除用户的同时,删除与用户相关的所有文件。
-f 强制删除用户,即使用户已经登录,默认情况下,用户在线,是不能删除的,因为用户可能正在执行相关操作。
2.实例
[root@localhost ~]# userdel -r qwe
[root@localhost ~]# ls /home
qwe
八、usermod命令
修改用户的基本信息,不允许改变正在线上的使用者帐号名称。
1.参数
-l 修改用户名。
-a 用户添加附加组。
-d 修改用户登入时的目录,这个参数只是修改/etc/passwd中用户的家目录配置信息,不会自动创建新的家目录,通常和-m一起使用。
-m 移动用户家目录到新的位置,不能单独使用,一般与-d一起使用。
九、 groupadd命令
创建一个新的工作组
1.实例
#创建普通组
groupadd qwe
#创建系统组
groupadd -r qwe
#创建指定id的组
[root@localhost ~]# groupadd -g 500 qwe
[root@localhost ~]# grep "qwe" /etc/group
qwe:x:500:
查看组信息:
tail /etc/group
十、groupdel命令
删除指定的工作组
1.实例
[root@localhost ~]# groupdel qwe
[root@localhost ~]# grep "qwe" /etc/group
十一、groupmems命令
管理组内成员
1.实例
# 添加成员:
groupmems -g qwe -a jfedu
# 删除成员:
groupmems -g qwe -d jfedu
# 查看成员:
groupmems -g qwe -l