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

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

$ 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/目录下创建目录的原因是您没有写权限。要解决这个问题,您可以:

  • 以root用户身份创建目录。
  • 请求管理员更改/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/ 中创建目录的直接原因是缺乏必要的写入权限。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容