Linux中的用户和权限

目录

su [-] [用户名]

sudo 其他命令

用户和用户组配置

getent passwd

getent group

用户管理

用户组管理

创建用户组

删除用户组

权限管控级别

权限表示方法

ls -l

权限设置

chmod命令

示例

chown命令

示例


无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。

在Linux操作系统中,root 账户是具有最高系统权限的特殊用户,通常被称为超级管理员。该账户可以执行系统中的任何操作,包括系统文件的修改、安装软件、管理系统服务等。

普通用户通常只有有限的权限,这有助于保护系统免受意外操作或恶意行为的损害。普通用户只能访问和修改自己家目录中的文件,以及在拥有相应权限的情况下访问其他共享资源。

普通用户的权限,一般在其HOME目录内是不受限的
一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限

在Linux系统中,通常推荐以下操作习惯:

  1. 尽量避免使用 root 账户进行日常操作,以减少出错的风险。
  2. 使用 sudo 命令来执行需要管理员权限的操作。sudo 命令可以让普通用户执行一些特权命令,而不需要切换到 root 账户。
  3. 确保了解每个命令的含义和潜在影响,在执行前要谨慎。

su [-] [用户名]

通过su命令可以切换到root账户。

su命令的功能,即用于账户切换的系统命令,其英文单词为“Switch User”。

  • “-”符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
  • 参数:用户名表示要切换的用户,用户名也可以省略,省略表示切换到root。
  • 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键: ctrl + d。
  • 使用普通用户切换到其它用户需要输入密码,如切换到root用户
  • 使用root用户切换到其它用户,无需密码,可以直接切换

当我们知道root密码时,可以通过su命令切换到root用户来获得最大权限。

但建议不要长期使用root用户,以避免系统损坏。


sudo 其他命令

sudo命令可以为普通的命令授权,允许用户暂时以root身份执行这些命令。

在其它命令之前加上sudo,即可为这条命令临时赋予root授权。

但是,并不是所有的用户都有权利使用sudo,我们需要为普通用户配置sudo认证。

为普通用户配置sudo认证

  1. 切换到root用户:通常使用 su 命令来切换到root用户,可能需要输入root用户的密码。

    su
    
  2. 执行visudo命令visudo 命令是用来安全地编辑 /etc/sudoers 文件的一个工具。这个命令会锁定sudoers文件,防止多个编辑会话同时进行,并在保存更改之前进行语法检查。

    visudo
    
  3. 编辑/etc/sudoers文件:在打开的 /etc/sudoers 文件中,您需要在文件的适当位置添加以下行:

    要授权的用户名 ALL=(ALL) NOPASSWD: ALL
    

    这行的含义是:

    • 要授权的用户名。
    • ALL:表示该用户可以从任何终端(或主机)执行sudo命令。
    • (ALL):表示要授权的用户名可以以任何用户身份执行命令。
    • NOPASSWD: ALL:表示要授权的用户名执行sudo命令时不需要输入密码。
  4. 保存更改:在编辑器中保存更改,通常是通过按下 Esc 键,然后输入 :wq 并按 Enter 键。

    :wq
    
  5. 切换回普通用户:完成编辑后,可以使用 exit 命令退出root用户,回到普通用户。

    exit
    
  6. 使用sudo执行命令:现在,作为已经被授权的用户,可以使用sudo命令以root权限执行任何命令,而无需输入密码。

    sudo command
    

    例如,要以root权限更新系统包,可以执行:

    sudo apt update
    

虽然NOPASSWD: ALL可以提供便利,但它也可能降低系统的安全性,因为它允许用户无需密码即可获得root权限。在生产环境中,建议谨慎使用此选项。


在Linux系统中,权限管理是非常重要的一个方面,它确保了系统的安全性和数据的完整性。

以下是关于用户、用户组和权限控制的详细说明。

用户和用户组配置

  1. 配置多个用户

    在Linux系统中,可以创建多个用户账号,每个用户可以有自己的家目录、配置文件和独立的权限设置。
  2. 配置多个用户组

    用户组是权限分配的单位,可以创建多个用户组,并将用户分配到这些组中。
  3. 用户可以加入多个用户组

    一个用户可以成为多个用户组的成员。这允许用户继承多个用户组的权限和属性。

getent passwd

使用getent命令,可以查看当前系统中有哪些用户

共有7份信息:用户名:密码(x):用户ID:ID:描述信息(无用):HOME目录:执行终端(默认bash)

getent group

使用getent命令,同样可以查看当前系统中有哪些用户组

包含3份信息:组名称:组认证(显示为x):ID

用户管理

需root用户执行以下命令

创建用户
useradd [-g -d] 用户名

  • 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
  • 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

删除用户
userdel [-r] 用户名

  • 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留

查看用户所属组
id [用户名]

  • 参数:用户名,被查看的用户,如果不提供则查看自身

修改用户所属组
usermod -aG 用户组 用户名

  • 将指定用户加入指定用户组

用户组管理

在Linux系统中,创建和删除用户组通常需要root权限。

以下是这两个命令的详细说明:

创建用户组

使用 groupadd 命令可以创建一个新的用户组。

命令格式如下:

groupadd [选项] 用户组名

其中,用户组名 是您想要创建的用户组的名称。这个命令还有一些选项可以用来设置用户组的详细信息,比如GID(组ID)等。

删除用户组

使用 groupdel 命令可以删除一个已经存在的用户组。

命令格式如下:

groupdel 用户组名

其中,用户组名 是您想要删除的用户组的名称。

请注意以下几点:

  • 在删除用户组之前,确保没有用户将该组作为其主组。如果有用户的主组是您要删除的组,您需要先更改这些用户的主组,然后再删除用户组。
  • 如果用户组中有用户,groupdel 命令可能会拒绝删除该组,除非您使用 -f 选项强制删除(不推荐,因为这可能会导致系统中出现不一致的情况)。

在执行这些操作时,建议谨慎行事,以避免影响系统的稳定性和安全性。


权限管控级别

Linux系统中权限的管控分为两个级别:

  1. 针对用户的权限控制

    • 对于文件和目录,可以设置特定用户的读(read)、写(write)和执行(execute)权限。
    • 用户权限通常通过chmod命令和chown命令来设置。
  2. 针对用户组的权限控制

    • 类似于用户权限,用户组权限也可以针对文件和目录设置读、写和执行权限。
    • 用户组权限同样可以通过chmod命令和chgrp命令来设置。

权限表示方法

在Linux中,权限通常用-rwxrwxrwx这样的形式表示,其中:

  • 第一个rwx代表文件所有者的权限(用户权限)。
  • 第二个rwx代表文件所属用户组的权限(用户组权限)。
  • 第三个rwx代表其他所有用户的权限。

r表示权限

w表示权限

x表示执行权限

针对文件、文件夹的不同,rwx的含义有细微差别
r:针对文件可以查看文件内容;针对文件夹,可以查看文件夹内容,如ls命令
w:针对文件表示可以修改此文件;针对文件夹,可以在文件夹内:创建、删除、改名等操作
x:针对文件表示可以将文件作为程序执行;针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

例如,如果一个文件的权限设置为-rw-rw-r--

  • 文件所有者和文件所属用户组有读和写权限。
  • 其他用户只有读权限。

ls -l

通过ls -l 可以以列表形式查看内容,并显示权限细节

输出内容说明:

  • 第一列:文件或文件夹名称(包括.开头的隐藏文件)
  • 第二列:文件或文件夹的所有者
  • 第三列:文件或文件夹的所有者组
  • 第四列:文件或文件夹的权限位
  • 第五列:文件大小(以字节计)

权限设置

chmod命令

chmod命令的功能:使用该命令可以修改文件、文件夹的权限信息。

(只有文件、文件夹的所有者或root用户才能修改其权限)

chmod命令的语法: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

权限可以用3位数字来代表:

  • 第一位数字表示用户权限
  • 第二位表示用户组权限
  • 第三位表示其它用户权限

数字的细节如下:r记为4w记为2x记为1,可以有:

  • 0:无任何权限,  ---
  • 1:仅有x权限,  --x
  • 2:仅有w权限  -w-
  • 3:有wx权限  -wx
  • 4:仅有r权限  r--
  • 5:有rx权限  r-x
  • 6:有rw权限  rw-
  • 7:有全部权限  rwx

 rwx(7) r-x(5) --x(1)

所以还有快捷写法:chmod 751 hello.txt
将hello.txt的权限修改为751

chown命令

使用chown命令,可以修改文件、文件夹的所属用户和用户组

普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

语法:chown [-R] [用户][ : ][用户组] 文件或文件夹

  • 选项,-R,同chmod,对文件夹内全部内容应用相同规则
  • 选项用户,修改所属用户
  • 选项用户组,修改所属用户组
  • :用于分隔用户和用户组

示例

  • chown root hello.txt,将hello.txt所属用户修改为root
  • chown :root hello.txt,将hello.txt所属用户组修改为root
  • chown root:ad hello.txt,将hello.txt所属用户修改为root,用户组修改为ad
  • chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值