linux

【Linux】非root用户在root用户目录下创建文件夹权限问

2024-09-30  本文已影响0人  Bogon

根据下面信息分析为什么没有权限创建目录?

$ id test
uid=1500(test) gid=1500(test) groups=1500(test)

$ ls -ld /data/
drwxr-xr-x 6 root root 61 Sep 25 16:20 /data/

$ umask
0022

$ mkdir  /data/mysqlBackup
mkdir: cannot create directory ‘/data/mysqlBackup’: Permission denied

根据您提供的信息,无法创建目录的原因如下:

  1. 权限问题:您尝试在/data/目录下创建mysqlBackup目录,但该目录的权限为drwxr-xr-x。这表示:

    • 所有者(root)有读、写和执行权限。
    • 同组用户(root)有读和执行权限,但没有写权限。
    • 其他用户(如test)也有读和执行权限,但没有写权限。

    因此,用户test(UID 1500)没有权限在/data/目录下创建新目录。

  2. umask设置:您查看的umask值为0022,这意味着新创建的目录默认将会有rwxr-xr-x的权限,这与/data/目录的权限相符。因此,umask设置不会影响您创建目录的权限。

综上所述,您无法在/data/目录下创建目录的原因是您没有写权限。要解决这个问题,您可以:

# mkdir /data/mysqlBackup
# chown -R test:test  /data/mysqlBackup

用户 test 无法在 /data/ 目录下创建目录的原因主要是由于该目录的权限设置和用户身份。

  1. 权限设置/data/ 的权限是 drwxr-xr-x,具体如下:

    • 所有者(root)具有读、写和执行权限。
    • 同组用户(root)和其他用户(如 test)只有读和执行权限,没有写权限。
  2. 用户身份:用户 test 的 UID 是 1500,并且该用户不属于 root 组(gid 是 1500,与 UID 相同),因此它没有权限在 /data/ 目录下写入。

  3. 写入权限:创建目录需要在父目录中具有写权限。由于 test 没有对 /data/ 目录的写权限,所以无法在该目录下创建任何子目录。

因此,test 用户无法在 /data/ 中创建目录的直接原因是缺乏必要的写入权限。

上一篇 下一篇

猜你喜欢

热点阅读