阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

linux中安全和权限那些事

30次阅读
没有评论

共计 1856 个字符,预计需要花费 5 分钟才能阅读完成。

导读 众所周知,Linux 是一个分时多用户操作系统,每个用户都有独立权限且相互隔离。其中 root 用户的权限是最大的,其能够操作所有的文件以及执行所有的命令。当然,正因为如此,使得其风险很大,若操作不当,就会产生严重的问题,更严重者可以导致系统崩溃。

因而在大多数的时候,我们并不会直接使用 root 用户登录系统,而是使用一些有着特定权限的普通用户。因此在做某些操作的时候,就会遇到权限不足的情况,比如修改其他普通用户的密码 (当然这种操作有些不合理,只是为了举例。

假定我们的系统中有有两个普通用户:user1 和 user2,当前登录系统的用户为 user1,此时需要修改 user2 的命令,如果直接执行如下命令,就会报权限不足的提示:

linux 中安全和权限那些事

此时有两种方式可以解决,分别是:切换其他用户执行和以其他用户的权限执行。

切换其他用户执行

对于切换用户而言,我们最先想到的就是,先退出当前的登录用户,然后选择目标用户进行重新登录。但是这种方式操作起来有些麻烦,因而我们可以使用更简洁的方式,也就是 su 命令来实现直接切换用户。

以上面的例子来说,先使用 su 切换到 root 用户,接着再次执行之前的操作,结果如所示:

linux 中安全和权限那些事

如果我们想回退到之前的用户,只需要执行 exit 命令,执行结果如下所示:

linux 中安全和权限那些事

对于 su 来说,默认情况下是切换为 root 用户,如果需要切换为指定的用户,则可以在 su 后面指定用户名。比如 user1 切换为 user2,使用到的命令如下所示:

su user2

执行结果如下所示:

linux 中安全和权限那些事

需要说明一点的是,如果从 root 用户切换为普通用户,则可以进行直接切换,而无需输入对应用户的密码。比如从 root 用户切换为 user1 用户,执行结果如下所示:

linux 中安全和权限那些事

对于 su 命令来说,其还可以加一个参数:”-“。加上该参数之后,不仅身份会变成对应的用户,甚至对应的用户环境也会跟着改变,当然最直观的感受就是主目录。

下面来分别演示一下这两种情况:

  • 带“-”参数

使用 user1 用户进行登录,执行“su -”命令切换后,使用 pwd 命令来查看当前所属的目录:

linux 中安全和权限那些事

  • 不带“-”参数

使用 user1 用户进行登录,执行“su”命令切换后,使用 pwd 命令来查看当前所属的目录:

linux 中安全和权限那些事

以其他用户的权限执行操作

大多数时候,我们只是需要以某个用户的权限来执行对应的命令即可,而不是非要切换成对应的用户。
对于以其他用户权限执行某个操作的命令为:sudo。比如上面提到的例子,此时可以使用如下命令:

sudo passwd user2

执行后如所示:

linux 中安全和权限那些事

看到这大家是否会有所困惑呢? 不是说使用 sudo 命令可以使用其他用户的权限做某些操作吗? 怎么还提示错误了呢?

实际上运行该命令有一定的限制条件,那就是该用户必须在 /etc/sudoers 中存在。也只有当用户在 /etc/sudoers 配置文件中被配置过时,才能够拥有使用 sudo 命令的权限,才能使用 sudo 以其他用户的身份执行某些操作。

当然,作为普通用户是没有编辑 /etc/sudoers 配置文件的权限的,该操作必须使用 root 用户登录系统,来将该用户添加到 /etc/sudoers 配置文件中。这种限制在一定程度上避免了安全风险,毕竟所有能够使用 sudo 命令的人都是被 root 用户进行过授权。

以 root 用户登录系统后,就可以通过执行如下命令进入到 /etc/sudoers 配置文件的编辑页面:

vi /etc/sudoers
或
visudo

对于以上的两个命令,推荐使用 visudo,因为这种方式有自动的语法检查功能。

执行命令的页面如下所示:

linux 中安全和权限那些事

接着在该配置文件中新增一条配置信息:

user1 ALL=(ALL) ALL ## 复制上一行的内容

如下所示:

linux 中安全和权限那些事

接着保存并退出。此时再次执行上面修改 user2 用户的密码的命令,结果如下所示:

linux 中安全和权限那些事

也就是说,此时通过使用 sudo 命令,就可以使得普通用户 user1 能够以 root 用户的权限来完成修改其他普通用户 user2 的密码的操作。

通过观察发现,每次执行 sudo 命令时都需要输入当前登录用户的密码,这似乎让人有点恼火,那么是否有办法避免这个事呢? 解决方法就是使用 root 用户来对刚才的配置进行修改,在 user1 的记录的最后一个 ALL 前面增加一个参数:NOPASSWD,修改后的记录为:

user1 ALL=(ALL) NOPASSWD:ALL

保存退出后,再次重复之前的操作,发现这次无需再次输入密码:

linux 中安全和权限那些事

到此,如何做自己权限之外的操作的方法已经介绍完毕,希望可以对大家有所帮助。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1856字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中