cp – 无法创建常规文件:权限被拒绝

我想复制到/lib/udev但给出错误

 cp -f /tmp/ok_pcscd_hotplug.sh /lib/udev cp:cannot create regular file /lib/udev/ok_pcscd_hotplug : Permission denied 

我是根,但我无法理解。 我能做什么 ?

检查您是否真的是超级用户:

 whoami 

如果输出是root ,那么你是超级用户,你可以使用以下命令制作文件的副本:

 cp -f /tmp/ok_pcscd_hotplug.sh /lib/udev/. 

否则你必须使用sudo

 sudo cp -f /tmp/ok_pcscd_hotplug.sh /lib/udev/. 

如果您仍然无法写入目录,那么可能是:

  1. 该目录启用了不可变标志。 检查lsattr
  2. 目录以只读权限挂载:输入终端:

    cat /proc/mounts (或mountcat /etc/mtab

    如果目录以只读方式挂载,请检查输出。

如果您是第一种情况,请使用chattr更改目录属性;

  • 删除文件或目录chattr -i 上的不可变标志
  • 再次在文件或目录上添加不可变标志chattr +i

如果您处于后一种情况,请编辑文件/etc/fstab

为了这个目的,每次你需要root都没有必要所以如果你想用root用户做它很好,但是如果你想在没有root的情况下这样做,那么你有两个选择:

  1. 检查文件的权限。 您必须具有读取权限
  2. 检查目标目录中是否存在具有相同名称的文件或链接。 因为如果目标目录中有相同名称的链接,它将不允许您这样做,也不会警告存在具有相同名称的链接

在root用户中尝试cp /tmp/ok_pcscd_hotplug.sh /lib/udev/

如果/lib/udev不存在,则应首先创建目录

 mkdir -p /lib/udev