Linux服务器之多用户主目录切换

注册掘金很久了,一直以来都是看其他大佬的故事,我也主要是在公众号上发表文章,后续慢慢同步到这里吧,博客网站还是更方便阅读的。

当前用户不是root用户无法进入root权限的目录怎么办?

linux普通用户关系图

1.非root用户怎么切换到root权限才能访问的目录

【背景描述】:有一个test用户,加入了sudoers,可以通过sudo使用root权限进行操作,但是不知道root用户密码,只知道test用户密码。

问:怎么切换到root权限的目录,如/etc/redis下 ?

【解决办法】:

在Linux中,cd 命令是shell内置命令,无法直接使用 sudo 来切换目录。一种解决方法是使用 sudo -s 或 sudo -i 命令来以root权限启动一个新的shell,并在其中切换目录。以下是具体的步骤:

  1. 使用以下命令以root权限启动一个新的shell:

    sudo -s

或者

css 复制代码
sudo -i
  1. 输入您当前用户的密码以确认权限。
  2. 在新的root权限的shell中, 尝试切换到Redis目录,例如:
bash 复制代码
cd /path/to/your/redis/directory

示例:

ruby 复制代码
/etc$ sudo -s
root@:/etc# cd redis/
root@:/etc/redis# ls
redis.conf
root@:/etc/redis# exit
exit
test@:/etc$ sudo -i
root@:~# cd /etc/redis
root@:/etc/redis# ls
redis.conf
root@:/etc/redis#

2.用户访问权限知识:

在典型的Linux系统中,非root用户通常只能访问和操作自己的 home 目录下的文件和目录,以保护系统安全和用户数据隐私。这是通过用户权限和文件系统的权限设置来实现的。

具体来说,通常情况下:

  1. 非root用户权限限制:Linux系统中的非特权用户(即非root用户)只能访问自己的主目录(也就是用户的home目录)以及共享的系统目录。
  2. 用户权限设置:每个用户的home目录都有严格的文件权限设置,通常情况下只允许用户本人访问和修改这个目录下的文件和子目录。
  3. 目录属主设置:用户的home目录通常以该用户的用户名作为属主(owner),这样该用户就拥有了该目录和其中文件的访问权限。
  4. 其他用户的home目录权限:对于其他用户的home目录,非root用户通常没有读取和写入权限,因此不能直接访问其他用户的文件和子目录。

总的来说,这种设置有助于确保用户数据的安全和隐私,防止用户之间相互干扰或访问彼此的敏感信息。管理员可以通过设置不同用户的权限来控制用户的访问范围,以维护系统的安全性。当用户需要与其他用户共享文件时,可以通过其他方式(例如共享文件夹、ACL设置等)来实现共享,而不是直接访问其他用户的home目录。

【详细示范】:

在linux系统中新增一个test用户,就会在/home目录下新建一个/home/test目录作为test用户的家目录

php 复制代码
$ sudo adduser username # 添加新的用户
$ sudo passwd username #设置用户密码

现在/home目录下有两个用户,zhangshan和test,还有一个共享文件夹Download用来不同用户之间传输文件,目前是在zhangshan用户登录状态下,所以无法直接访问切换到test目录中。

bash 复制代码
/home$ ls
zhangshan  Download  test
zhangshan@:/home$ ls -$ cd ..
$ ls
byzoro  Download  testll
总计 12
drwxr-x--- 24 zhangshan  zhangshan  4096  4月 10 15:12 byzoro
drwxr-xr-x  4 root   root   4096 12月 26 15:45 Download
drwxr-x---  5 test   root   4096 12月  6 12:44 test
zhangshan@:/home$ mkdir Test
mkdir: 无法创建目录 "Test": 权限不够

# 从zhangshan用户切换到test用户
$ su - test
密码:
$ ls
readme.txt
$ pwd
/home/test$ cd ..
$ ls
zhangshan Download  test
$ cd zhangshan
-sh: 10: cd: can't cd to zhangshan 

3.如何添加新的用户和设置密码

在Linux系统中,可以通过以下步骤来创建新用户、设置密码以及进行密码管理:

创建新用户:

  1. 使用adduser命令创建新用户:

    sudo adduser username

  2. 设置新用户的密码:

    sudo passwd username

查看密码:

一般来说,Linux系统不会直接显示已设置用户的密码,这是出于安全考虑。可以通过以下方式验证用户的密码是否有效:

  1. 切换到所创建的新用户:

    su - username

  2. 输入用户密码,如果成功切换到了新用户,说明密码设置成功。

不建议查看当前用户的密码:

从安全角度考虑,通常不建议直接查看普通用户的密码。Linux密码通常存储在加密格式中,不是以明文形式存储在系统中。如果您是系统管理员,可以通过重置密码的方式来更改当前用户的密码。

重置当前用户密码(仅管理员操作):

  1. 切换到root用户:

    sudo su -

  2. 重置当前用户密码:

    passwd current_username

这样,您可以重置当前用户的密码。如果您忘记了密码,这是一个常用的方法来重新设置密码。

​大家学会了嘛,感谢大家点赞,收藏加关注,我是西里小诸葛,永远热爱思考,热爱生活,持续分享更多有价值的文章,与君共勉,共同成长。现在开放我的个人微信,有想要交流的小伙伴可以,搜索微信wx_songiszheng,或者进入CoderSong公众号,输入联系我,我们就加为好友啦~。

相关推荐
0+1112 小时前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋3 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
2601_949847756 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906946 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
水饺编程8 小时前
第2章:Linux 基础,exit 命令
linux·c语言·汇编
木子欢儿8 小时前
Debian 13 + vsftpd 搭建FTP服务
linux·服务器·前端·网络·debian
GeW9 小时前
新质生产力落地实践:企业级Linux迁移与数据库国产化
linux
雯宝9 小时前
usb_serial_generic_register
linux
疯狂的Meng10 小时前
我把第一周的 Linux 命令整理成了自己的手册(附 7 个我踩的坑)
linux
wt952710 小时前
VMware 虚拟机静态 IP 配置
linux