首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mkdir失败,尽管该目录存在,并且我似乎具有写入权限

根据提供的问答内容,问题是"mkdir失败,尽管该目录存在,并且我似乎具有写入权限"。以下是一个完善且全面的回答:

问题分析:

  1. 系统权限问题:尽管目录存在且有写入权限,但可能存在其他限制或不兼容的权限设置。
  2. 目录已存在:尽管提示目录存在,但可能是由于目录存在但是不可写入。

解决方案:

  1. 确保完整的路径:在使用mkdir命令时,请确保提供的路径是目标目录的完整路径,包括所有父级目录。例如,如果目标目录是/var/www/example/,请确保/var/www/目录已经存在。
  2. 检查权限:使用ls -l命令检查目标目录的权限。确保您对目标目录拥有写入权限。如果没有权限,请使用chmod命令修改权限。例如,使用chmod +w /path/to/directory将目标目录更改为可写入。
  3. 检查目录属性:使用ls -ld命令检查目标目录的属性。确认目录的属性是否与其他文件或目录相同。如果目录属性不正确,请使用chown命令更改所有者和组。例如,使用chown -R user:group /path/to/directory将目标目录的所有者更改为user,组更改为group。
  4. 确保磁盘空间足够:检查目标目录所在的磁盘空间是否足够,确保磁盘没有写保护或已满。

若以上解决方案未能解决问题,可以进一步尝试以下措施:

  1. 检查其他进程或服务:确保没有其他进程或服务锁定或占用目标目录。可以通过使用lsof命令检查正在使用目标目录的进程,然后关闭或重启这些进程。
  2. 检查文件系统类型:某些文件系统类型可能不支持特定的操作。请确保目标目录所在的文件系统类型支持mkdir操作。
  3. 查看系统日志:查看系统日志文件,如/var/log/messages或/var/log/syslog,以获取任何与目标目录创建相关的错误或警告信息。
  4. 联系系统管理员:如果您是在一个共享的服务器环境中工作,可能是因为服务器的配置或限制导致了该问题。请联系系统管理员寻求进一步的帮助。

值得注意的是,上述解决方案提供了一般性的应对措施,具体解决方法可能因操作系统、环境设置、文件系统等因素而有所不同。

希望上述回答对您有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Centos7系统备份与恢复

Centos系统备份与恢复教程 tar:   特点   1、保留权限   2、适合备份整个目录   3、可以选择不同的压缩方式   4、如果选择不压缩还能实现增量备份,部份还原,参考man tar dd   特点   1、对块进行操作,能备份整个硬盘(包括分区表、MBR,其他Linux不能很好支持的文件系统)   2、可以进行压缩(麻烦一点)   3、由于是备份整个硬盘,文件系统上没有使用的“空白”空间也会被保存起来,备份文件比较大   备份   备份硬盘sda,放到/backup(/backup挂载在其他硬盘如sdb) tar方法教程 Linux不像windows,它不限制根用户存取任何东西,因此,你完全可以把一个分区上每一个的文件放入一个TAR文件中。 使用root用户切换到根目录 然后,使用下面的命令备份完整的系统: tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys 或者 tar cvpzf /state/partition1/home/backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys 说明: tar 部分就是我们将要使用的软件。 'cvpfz'是我们给tar加的选项,像“创建一个压缩文档”(这是显然的),“保存权限”(以便使每一个相同的文件有相同的权限),以及“gzip”(缩减大小)。接下来,是压缩文档将获得的名称,在我们的例子中是backup.tgz。 紧随其后的是我们想要备份的根目录。既然我们想备份所有东西:/。接着就是我们要剔除的目录了:我们不想备份每一样东西,因为包括有些目录不是非常有用。同时确保你没有把备份文件本身也加进去了,否则,你会得到怪异的结 果的。你也许同样不打算把/mnt文件夹包括进来——如果你在那儿挂载了其他分区——否则最终你会把那些也备份的。同时确保你没有任何东西挂载在 /media(即没有挂载任何cd或可移动介质)。否则,剔除/media。 在进程的最后,你也许会得到一条信息,写着“tar:由于先前错误的耽搁而存在错误”或者其他什么,不过大多数情况下你可以仅仅忽略它。 作为选择,你可以使用Bzip来压缩你的备份。这意味着较高的压缩比但是也意味着较低的速度。如果压缩比对你很重要,只需用“j”替换命令中的“z”,同时给备份命一个相应的扩展名。这些会使命令变成这样: tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys 恢复: 如果系统被毁坏,那么我们就可以用备份好的tar包进行恢复。 在分区的根目录下的backup.tgz文件 再一次确保你是根用户以及备份文件在文件系统的根目录。 Linux美妙的地方之一就是这一项工作甚至可以在一个正在运行的系统上进行;没必要被引导cd或者任何东西搞得晕头转向。当然,如果你使你的系统 无法被引导了。你也许别无选择,只能使用一张live-cd了,但是结果是一样的。你甚至可以在Linux系统正在运行的时候,移除它里面所有文件。可是 我不告诉你那个命令! 这是我要用的命令: tar xvpfz backup.tgz -C / 如果你使用 bz2: tar xvpfj backup.tar.bz2 -C / 警告:这会把你分区里所有文件替换成压缩文档里的文件! 确保在你做其他任何事情之前,重新创建你剔除的目录: mkdir proc mkdir lost+found mkdir mnt mkdir sys /proc 权限:文件所有者:root群组:root 所有者:读取 执行 群组:读取 执行 其它:读取 执行 /lost+found 权限:文件所有者:root群组:root 所有者:读取 写入 执行 群组:读取 执行 其它:读取 执行 /mnt 权限:文件所有者:root群组:root 所有者:读取 写入 执行 群组:读取 执行 其它:读取 执行 /sys 权限:文件所有者:root群组:root 所有者:读取 写入 执行 群组:读取 执行 其它:读取 执行 当你重启以后,所以的事情都会和你备份的时候一模一样。 用户参照了上面的教程做的备份和恢复,普遍反映:重启电脑后还是会一直提示用户名和密码 输入以后一闪还是提示用户名

03

nfs 挂载

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。本文的两个linux环境分别为CentOS和Ubuntu,其他版本类似。将Ubuntu下的/home/dhcc/nfs挂载到CentOS下/home/shao/nfs。 Ubuntu: 1.安装配置NFS服务器 sudo apt-get install nfs-kernel-server nfs-common 2.配置参数 vim /etc/exports 文件最后加入一行,注意不要加到注释 /home/dhcc/nfs *(rw,sync,no_root_squash)      #该目录为nfs服务根目录,*表示允许所有的网段访问,也可以使用具体的IP,参数详解在最后 3.建立nfs目录(如果配置了已存在的目标可跳过此步) sudo mkdir /home/dhcc/nfs 4.查看配置是否生效 exportfs -r  #更新配置 showmount -e 如果生效会显示 Export list for Ubuntu: home/dhcc/nfs 5.重启nfs服务 /etc/init.d/nfs-kernel-server restart CentOS: 1.创建挂载目录(如果已存在请跳过) mkdir /data 2.安装nfs-utils yum install nfs-utils mount -t nfs cpnas01.cloud.cnpc:/fs_nfs016  /data vi  /etc/fstab cpnas01.cloud.cnpc:/fs_nfs016  /data             nfs    rw,tcp,intr   0  0 vim /etc/rc.d/rc.local sudo mount -t nfs cpnas01.cloud.cnpc:/fs_nfs016  /data 2.mount直接挂载 mount -t nfs 10.18.105.116:/home/dhcc/nfs /home/shao/nfs      #Ubuntu的ip为10.18.105.116 3.开机自动挂载 vim /etc/rc.local 添加一行 sudo mount -t nfs 10.18.105.116:/home/dhcc/nfs /home/shao/nfs 如果出现mount.nfs:access denied by server while mounting问题,可通过以下几种途径尝试解决: 1.修改需挂载的nfs目录权限 chmod 755 /home/dhcc/nfs 2.如果端口号大于1024,则需要将 insecure 选项加入到配置文件(/etc/exports): vim /etc/exports 文件最后加入一行 /home/dhcc/nfs *(insecure,rw,sync,no_root_squash)   3.修改/etc/sysconfig/nfs文件 # Turn off v2 and v3 protocol support #  RPCNFSDARGS="-N 2 -N 3" # Turn off v4 protocol support #RPCNFSDARGS="-N 4"    /*把这句话的#号去掉*/  NFS分为三个版本,即NFS-2 NFS-3 NFS-4,该配置文件默认关闭了这三个的NFS版本,我们只需要打开NFS-4即可。 附录:NFS常用参数如下: ro 只读访问 rw 读写访问sync 所有数据在请求时写入共享 async nfs在写入数据前可以响应请求 secure nfs通过1024以下的安全TCP/IP端口发送 insecure nfs通过1024以上的端口发送 wdelay 如果多个用户要写入nfs目录,则归组写入(默认) no_wdelay 如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。 hide 在nfs共享目录中不共享其子目录 no_hide 共享nfs目录的子目录 subtree_check 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认) no_subtree_check 和上面相对,不检查父目录权限 all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 no_all_squash 保留共享文件的UID和GID(默认) root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)

01
领券