Linux(Ubuntu) 如何让普通用户访问 /root 目录下的文件/文件夹

场景

在使用 Linux 过程中,总会意外地将文件或者文件夹存放在 /root 目录下,但是这个时候,普通用户无法访问到这个文件,即使我们将文件夹/文件移动到 /home/xxx 目录下,也会发现还是不能正常访问。

比如我们以管理员身份在 /root 目录下将一个 Music-Get/ 移动到 /home/xxx 目录下,以普通用户身份执行 cd Music-Get/ ,会提示 bash: cd: Music-Get/: 权限不够

分析

通过 sudo su 命令进入到 root 管理员模式下,执行以下两个指令查看 /root 目录的权限:

root@myvm:/# cd ~
root@myvm:~# ll

可以看到:

drwx------   7 root root       4096 10月 23 10:42 root/

r 用数字4表示,代表读权限
w 用数字2表示,代表写权限
x 用数字1表示,代表执行权限

/root 文件夹的权限为 700(d rwx - - - - - -),拥有者为root,除管理员 root 用户外,其他用户无法访问此目录内的文件,如果想要普通用户可以访问它,其中一个办法是给这个文件夹赋一个 755以上 的权限,但是作为 /root 目录,为了安全着想,我们一般不这么做。

解决方案

方案一

以管理员身份将文件/文件夹移动到 /home/xxx 目录下,执行以下指令赋予普通用户(如:ximu)读写、访问此文件/文件夹的权限:

chown -R ximu:ximu /root/Music-Get/

其中,-R 代表处理指定目录及子目录下的所有文件,第一个 ximu 代表要赋予其使用权限,第二个 ximu 代表 ximu 用户对应的组。

此时,可以在普通用户(ximu)下对此文件夹进行操作,如果发现还是没有权限对其进行操作,使用 ll 命令查看此文件夹的权限,此文件夹至少拥有 d rwx --- --- (即700-777)的权限才可以被普通用户操作,可以通过 chmod 700 Music-Get/ 指令对 Music-Get/ 目录进行授权。

方案二

以管理员身份将文件/文件夹移动到 /home/xxx 目录下,执行以下指令修改此文件/文件夹的权限属性:

chmod 700 Music-Get/

如果此文件/文件夹的拥有者是 root,需要赋予 777 的权限才行,这样普通用户才可以对此文件/文件夹进行读、写、执行操作。

总结

  1. 如果文件夹拥有者为 root,至少赋予其 d --- --- rwx (即 007)的权限,才可以被普通用户读、写、执行。
  2. 如果文件夹拥有者为 root,其权限为 001,则只能对其进行执行操作,比如 cd 到这个目录(文件夹)里,但是进入后不能进行任何操作,比如:执行 ls 命令会报 ls: 无法打开目录’.’: 权限不够, 执行 vim 写文件会报 无法打开并写入文件
  3. 如果文件夹拥有者为普通用户,至少赋予其 d r-x --- --- (即 500)的权限,才可以被普通用户写、执行(500权限可以 cd 到其文件夹下,执行 ls 操作,但是无法写入)。
  4. 如果文件夹拥有者为普通用户,其权限为 100,则可以对其进行 cd 操作,但是进入到此文件夹下无法执行 ls (读)操作,亦无法对其进行写操作。
Ubuntu 22.04 中,如果你不想使用 root 用户来安装 Docker,可以按照以下步骤进行: 1. 在另一台联网的机器上,下载 Docker 的 deb 包和依赖包。可以从 Docker 的官方网站下载对应版本的 deb 包和依赖包,也可以使用 wget 命令下载。 例如,如果要安装 Docker 20.10.8 版本,可以使用以下命令下载对应的 deb 包和依赖包: ``` mkdir docker cd docker wget https://download.docker.com/linux/ubuntu/dists/hirsute/pool/stable/amd64/containerd.io_1.4.9-1_amd64.deb wget https://download.docker.com/linux/ubuntu/dists/hirsute/pool/stable/amd64/docker-ce-cli_20.10.8~3-0~ubuntu-hirsute_amd64.deb wget https://download.docker.com/linux/ubuntu/dists/hirsute/pool/stable/amd64/docker-ce-rootless-extras_20.10.8~3-0~ubuntu-hirsute_amd64.deb wget https://download.docker.com/linux/ubuntu/dists/hirsute/pool/stable/amd64/docker-ce_20.10.8~3-0~ubuntu-hirsute_amd64.deb ``` 2. 将下载的 deb 包和依赖包复制到目标机器上。 可以使用 scp 命令将文件复制到目标机器上,例如: ``` scp *.deb user@remote:/path/to/folder ``` 其中,user 是目标机器上的用户名,remote 是目标机器的 IP 地址或域名,/path/to/folder 是目标机器上的文件夹路径。 3. 在目标机器上安装依赖包。 使用以下命令安装依赖包: ``` sudo dpkg -i containerd.io_1.4.9-1_amd64.deb docker-ce-cli_20.10.8~3-0~ubuntu-hirsute_amd64.deb docker-ce-rootless-extras_20.10.8~3-0~ubuntu-hirsute_amd64.deb docker-ce_20.10.8~3-0~ubuntu-hirsute_amd64.deb ``` 如果出现依赖关系错误,可以使用以下命令修复: ``` sudo apt-get install -f ``` 4. 将非 root 用户添加到 docker 用户组中。 使用以下命令将当前用户添加到 docker 用户组中: ``` sudo usermod -aG docker $USER ``` 其中,$USER 是当前用户名。 5. 重新登录或重启系统。 为了让用户组变化生效,需要重新登录或重启系统。 6. 验证 Docker 是否安装成功。 使用以下命令验证 Docker 是否安装成功: ``` docker run hello-world ``` 如果输出以下信息,说明 Docker 安装成功: ``` Hello from Docker! This message shows that your installation appears to be working correctly. ... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九思梦鹿

喜欢,请记得点赞或赞赏哟

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值