Linux是一个多用户多任务的操作系统,每个用户都有自己的账号和密码,以及相应的权限和资源。为了有效地管理用户和保护系统的安全,我们需要了解Linux的权限和用户管理机制
root用户(超级管理员)
root
用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的
例如,在普通用户账号下
cd / mkdir test
这会提示权限不够,表示普通用户不能在根目录下创建文件夹。
-
普通用户的权限一般在
HOME
目录内是不受限的 -
一旦出了
HOME
目录,大多数地方,普通用户只有只读和执行的权限,没有修改权限
切换账户的命令su和exit
su [-] [用户名]
-
-是可选的,表示在切换用户后是否加载环境变量(建议加上)
-
参数用户名,表示要切换的用户,若缺省则默认切换到
root
-
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键
ctrl+d
也可以这样切换到root
:
su -
注意:
-
使用普通用户切换到其他用户需要输入密码
-
使用
root
用户切换到其他用户无需密码
我们可以通过su
命令切换到root
得到最大权限,但不建议长期使用root
用户,避免带来系统损坏。
我们可以使用sudo
命令为普通的用户授权,临时以root
身份执行
sudo 其他命令
-
在其他命令之前,带上
sudo
,即可为这一条命令临时赋予授权 -
需要为普通用户配置
sudo
认证
配置过程:
-
切换到
root
用户,执行visudo
命令,会自动通过vi
编辑器打开/etc/sudoers
-
在文件的最后添加:
liurunze ALL=(ALL) NOPASSWD: ALL(二者之间有一个tab键)
-
最后通过
wq
保存
配置好之后:
-
切换回普通用户
-
执行的命令均以
root
运行(记得加上sudo
命令)
用户与用户组
Linux
中可以:
-
配置多个用户
-
配置多个用户组
-
用户也可以加入到多个用户组中
Linux
中关于权限的管控有两个级别:
-
针对用户的权限控制
-
针对用户组的权限控制
以下需要root
用户执行:
-
创建用户组
groupadd 用户组名
-
删除用户组
groupdel 用户组名
用户管理
系统上的每个进程(正在运行的程序)都以特定用户的身份运行
每个文件都由特定的用户拥有
对文件和目录的访问受用户限制
与正在运行的进程关联的用户确定该进程可访问的文件和目录
需要root
用户执行:
-
创建用户
useradd [-g -d] 用户名
-g
指定用户的组,不指定-g
,会创建同名组并自动加入,指定-g
需要组已经存在,如果已经存在同名组,必须使用-g
-d
指定用户HOME
路径,不指定默认HOME
目录为/home/用户名
-
删除用户
userdel [-r] 用户名
-r
表示删除用户的HOME
目录
不适用-r
,删除用户并不会删除HOME
目录
-
查看用户所在组
id [用户名]
用户名即被查看的用户,如果不提供则查看自身
-
修改用户所属组
usermod -aG 用户组 用户名
将指定用户名加入到指定用户组里
getent
利用以下命令查看系统中用户信息
getent passwd
有7份信息,分别是:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME
目录:执行终端(默认bash
)
也可以查看系统中的用户组信息
getent group
有3份信息,分别是:
组名称:组认证(显示为x):组ID
权限控制
可以通过ls -l
命令来查看内容并显示权限细节
第一列表示文件、文件夹的权限控制信息
第二列表示文件、文件夹所属的用户
第三列表示文件、文件夹所属的用户组
权限细节共分为10个槽位
第一个若为-
,代表这是一个文件;若为d
,代表这是一个文件夹;若为l
,则为软链接
其余9个槽分为三份:前三份为所属用户权限,中间三份为所属用户组权限,最后三份为其他用户权限
在这里边,-
代表没有该权限,排序为rwx
rwx
权限的含义
-
r
代表读权限 -
w
代表写权限 -
x
代表执行权限
文件与文件夹权限
-
r
针对文件可以查看文件内容,针对文件夹可以查看文件夹内容(即可以ls
) -
w
针对文件表示可以修改此文件,针对文件夹表示可以在文件夹内进行创建、删除、改名等操作 -
x
针对文件表示可以将文件作为程序执行,针对文件夹表示可以更改工作目录到此文件夹(即可以cd
)
chmod
chmod [-R] 权限 文件或文件夹
注意:只有文件、文件夹的所属用户或root
用户可以修改
-
-R
表示对文件夹内的全部内容应用同样的操作
例如,对文件:
chmod u=rwx,g=rx,o=x hello.txt
对文件夹,例如:
chmod -R u-rwx,g=rx,o=x test
其中u,g,o
分别代表user,group,other
修改之后文件或文件夹颜色高亮表示权限危险
快捷写法:
chmod 751 test.txt
user = 7
group = 5
other = 1
权限可以用3位数字来表示,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其他人权限,记r=4,w=2,o=1,则
-
0:无任何权限 即
---
-
1:仅有x权限 即
--x
-
2:仅有w权限 即
-w-
-
3:有w和x权限 即
-wx
-
4:仅有r权限 即
r--
-
5:有r和x权限 即
r-x
-
6:有r和w权限 即
rw-
-
7:有全部权限 即
rwx
751
组合即rwx r-x --x
chown
可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其他用户或用户组,此命令只适用于root
用户执行
chown [-R] [用户][:][用户组] 文件或文件夹
-
-R
,与chmod
一样,对文件夹内全部文件采用相同规则 -
用户即被修改之后的用户
-
用户组即被修改之后的用户组
-
:用来分隔用户和用户组(:前面是用户,后面是用户组)
这里修改之后的用户和用户组必须是已经存在的