四、Linux普通用户和超级管理员
1.认知root用户
(1)创建普通用户
- 创建用户命令: 使用
useradd -m <用户名>
命令可以创建普通用户,例如useradd -m itheima。 - 设置用户密码: 使用
passwd <用户名>
命令为新建用户指定密码,例如passwd itheima。 - 用户目录: 创建普通用户后,会在
/home
路径下创建与用户名相同的文件夹,作为用户的家目录。 - 示例:ty 12345678;heihei 45678912
- 普通用户的权限,一般在其HOME目录内是不受限的;一旦处了HOME目录,大多数地方,普通用户仅有制度和执行权限,无修改权限
(2)root用户
超级管理员: root用户是Linux系统中的超级管理员,拥有最大的系统操作权限。
(3)sudo命令
a.su和exit命令
- 语法:
su [-] [用户名]
-
符号是可选的,表示是否在切换用户后加载环境变量,建议带上- 参数,用户名,表示要切换到用户,用户名也可以省略,省略表示切换到root
- 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d
- 使用普通用户,切换到其他用户需要输入密码,如切换到root用户
- 使用root用户切换到其他用户,无需密码,可以直接切换
b. sudo命令
知道root密码,可以通过su命令切换到root得到最大权限,但不宜长期使用root用户,避免带来系统损坏。故我们可以使用sudo命令,为普通命令授权,临时以root身份执行
-
语法:
sudo 其他命令
,在其它命令之前带上sudo,即可为这一条命令临时赋予root授权 -
注意: 并不是所有用户都有权利使用sudo,需要为普通用户配置sudo认证
c.为普通用户配置sudo认证
-
步骤
- 切换到root用户,执行
visudo
命令,会自动通过vi编辑器打开/etc/sudoers文件。 - 在文件最后添加
itheima ALL=(ALL) NOPASSWD: ALL
,表示itheima用户在使用sudo命令时无需输入密码。 - 用wq保存并退出编辑器。
- 切换回普通用户
- 切换到root用户,执行
-
配置效果: 配置完成后,普通用户可以使用sudo命令临时获得root权限,执行需要管理员权限的操作。
2.用户,用户组管理
(1)用户组管理
-
创建用户组
- 命令:
groupadd 用户组名
- 示例: 创建一个名为
itcast
的用户组:groupadd itcast
- 命令:
-
删除用户组
- 命令:
groupdel 用户组名
- 命令:
(2)用户管理
以下命令需root用户执行
- 创建用户
- 命令:
useradd [-g -d] 用户名
- 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
- 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
- 命令:
- 删除用户
- 命令:
userdel [-r] 用户名
- 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
- 命令:
- 查看用户所属组
- 命令:
id [用户名]
- 参数:用户名,被查看的用户,如果不提供则查看自身
- 命令:
- 修改用户所属组
- 命令:
usermod -aG 用户组 用户名
- 将指定用户加入指定用户组
- 命令:
3.查看权限控制
(1)权限信息的查看方式
- 命令: 使用ls -l命令可以以列表形式查看文件或文件夹的权限细节
- 输出内容: 输出内容包括文件类型、权限、所属用户、所属用户组等信息。
(2)文件类型与权限表示
权限细节有十个槽位,第一个槽位表示文件类型,后面九个槽位三个一组,依次代表所属用户权限,所属用户组权限,其他用户权限
- 文件类型
d
表示文件夹(directory)-
表示普通文件l
表示软链接(link)
- 权限表示
r
: 读权限(read),可以查看文件内容或文件夹内的文件列表。w
: 写权限(write),可以修改文件内容或在文件夹内创建、删除、重命名文件。x
: 执行权限(execute),可以执行文件或进入文件夹。
(3)权限对文件和文件夹的不同影响
- 文件:
- r: 可以查看文件内容。
- w: 可以修改文件内容。
- x: 文件可以作为程序执行。
- 文件夹:
- r: 可以查看文件夹内的文件列表,如使用ls命令。
- w: 可以在文件夹内创建、删除、重命名文件。
- x: 可以进入文件夹,即使用cd命令进入。
4.修改权限控制
(1)chmod命令
-
功能:修改文件,文件夹的权限信息
-
限制:只用文件,文件夹的所属用户或root用户可以修改
-
语法:
chmod[-R] 权限 文件或文件夹
- 选项:-R,对文件夹内的全部内容应用同样的操作
-
示例
-
chmod u=rwx,g=rx,o=x hello.txt
,将文件权限修改为:rwxr-x--x
。-
u
: user,所属用户权限。 -
g
: group,组权限。 -
o
: other,其它用户权限。 -
chmod -R u=rwx,g=rx,o=x test
,将文件夹test及文件夹内全部内容权限设置为:rwxr-x--x
。
-
-
-
权限的数字序号(转化成二进制,
0
即代表-
):- r: 记为4
- w: 记为2
- x: 记为1
- 组合:
- 0(000): 无任何权限,即—
- 1(001): 仅有x权限,即–x
- 2(010): 仅有w权限,即-w-
- 3(011): 有w和x权限,即-wx
- 4(100): 仅有r权限,即r–
- 5(101): 有r和x权限,即r-x
- 6(110): 有r和w权限,即rw-
- 7(111): 有全部权限,即rwx
(2)chown命令
-
功能:可以修改文件,文件夹的所属用户和用户组
-
限制:普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户执行
-
语法:
chown [-R] [用户][:][用户组] 文件或文件夹
chown [用户] [文件或文件夹]
:修改文件或文件夹的所属用户。chown :[用户组] [文件或文件夹]
:修改文件或文件夹的所属用户组。chown [用户]:[用户组] [文件或文件夹]
:同时修改文件或文件夹的所属用户和用户组。chown -R [用户] [文件夹]
:递归地修改文件夹及其内部所有内容的所属用户。- 选项,-R,同chmod,对文件夹内全部内容应用相同规则
- 选项,用户,修改所属用户
- 选项,用户组,修改所属用户组
- :,用于分隔用户和用户组
-
示例
chown root hello.txt
,将hello.txt的所属用户修改为root。chown :root hello.txt
,将hello.txt的所属用户组修改为root。chown root:itheima hello.txt
,将hello.txt的所属用户修改为root,用户组修改为itheima。chown -R root test
,将文件夹test的所属用户修改为root,并对文件夹内全部内容应用同样规则。
(3)注意事项
- 权限问题: 普通用户无法直接修改文件或文件夹的所属用户或组,需要临时提升为root用户来执行chown命令。这可以通过su命令或其他方式实现临时的权限提升。
- 操作谨慎: 修改文件或文件夹的所属用户和用户组可能会影响系统的安全性和文件的访问权限,因此应谨慎操作。
a. sudo权限
(1)sudo权限的添加
- 适用场景: 在生产环境下,不建议直接使用root用户,而是使用普通用户,并在需要超级管理员权限时做临时申请。
- 添加方法: 通过编辑/etc/sudoers文件,给普通用户添加sudo权限。
- 具体操作:
- 使用visudo命令安全地编辑/etc/sudoers文件。
- 在文件末尾添加如下内容:itheima ALL=(ALL) NOPASSWD: ALL,表示用户itheima可以在任何地方以任何用户身份执行任何命令,且不需要输入密码。
(2)sudo权限的使用
- 权限不足的情况: 普通用户在没有相应权限的情况下,无法修改某些文件的所有者或所属组。
- 解决方法: 通过在命令前添加sudo,临时提升权限来执行该命令。例如,使用sudo chown root test.txt来修改文件test.txt的所有者为root。
(3)sudoers文件的编辑
- 编辑工具: 推荐使用visudo命令编辑/etc/sudoers文件,因为它包含语法检查,可以防止错误配置导致的问题。
- 配置内容:
- 可以为特定用户或用户组配置sudo权限。
- 配置示例:itheima ALL=(ALL) NOPASSWD: ALL,允许用户itheima无密码执行所有命令。
(4)配置实例与注意事项
- 配置实例: 在/etc/sudoers文件中添加itheima ALL=(ALL) NOPASSWD: ALL,使itheima用户无需密码即可执行sudo命令。
- 注意事项:
- 如果没有配置NOPASSWD,则每次执行sudo命令时都需要输入密码。
- 配置sudo权限时需谨慎,避免给予不必要的权限,以防安全风险。
(5)普通用户与root用户的区别
- 权限范围:
- root用户具备系统所有权限,可以执行任何操作。
- 普通用户权限受限,只能在自己家目录下有完全权限,无法访问或修改其他用户的家目录。
- 使用建议: 在生产环境中,推荐使用普通用户进行日常操作,仅在需要超级管理员权限时通过sudo临时提升权限。
(6)sudo权限的验证
- 验证方法: 通过执行需要超级管理员权限的命令(如 s u d o sudo sudo c h o w n chown chown),观察命令是否成功执行,来验证 s u d o sudo sudo权限是否配置成功。
- 成功案例: 配置 s u d o sudo sudo权限后,普通用户 i t h e i m a itheima itheima能够成功使用
sudo chown root test.txt
命令修改文件所有者。