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

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

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

linux普通用户关系图

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

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

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

【解决办法】:

在Linux中,cd 命令是shell内置命令,无法直接使用 sudo 来切换目录。一种解决方法是使用 sudo -ssudo -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目录下有两个用户,zhangshantest,还有一个共享文件夹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公众号,输入联系我,我们就加为好友啦~。

相关推荐
独行soc2 分钟前
2025年渗透测试面试题总结-2025年HW(护网面试) 33(题目+回答)
linux·科技·安全·网络安全·面试·职场和发展·护网
java龙王*19 分钟前
开放端口,开通数据库连接权限,无法连接远程数据库 解决方案
linux
bcbobo21cn1 小时前
Linux命令的命令历史
linux·histsize·histfile
jingyu飞鸟2 小时前
linux系统源代码安装apache、编译隐藏版本号
linux·运维·apache
世事如云有卷舒2 小时前
Ubunt20.04搭建GitLab服务器,并借助cpolar实现公网访问
linux·服务器·gitlab
2401_858286113 小时前
OS15.【Linux】gdb调试器的简单使用
linux·运维·服务器·开发语言·gdb
zjw_rp5 小时前
centos停止维护后更换yum源
linux·运维·centos
行止65 小时前
OpenStack云平台管理
linux·openstack
岁岁岁平安6 小时前
CentOS-7-x86_64解决:使用NAT模式无法ping通www.baidu.com或无法ping 8.8.8.8问题。
linux·运维·centos·centos-7
运维小贺6 小时前
各服务器厂商调整BIOS睿频教程
linux·运维·服务器·性能优化