掘金 后端 ( ) • 2024-04-11 10:45

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

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

linux普通用户关系图

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

或者

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

示例:

/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用户的家目录

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

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

/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
  1. 设置新用户的密码
sudo passwd username

查看密码:

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

  1. 切换到所创建的新用户
su - username
  1. 输入用户密码,如果成功切换到了新用户,说明密码设置成功。

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

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

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

  1. 切换到root用户
sudo su -
  1. 重置当前用户密码
passwd current_username

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

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