我正在尝试创建硬链接,但收到错误消息“不允许操作”
tikey@helios64:/data/$ ln /data/dir1/img1.jpg /data/dir2/
ln: failed to create hard link '/data/dir2/img1.jpg' => '/data/dir1/img1.jpg': Operation not permitted
Run Code Online (Sandbox Code Playgroud)
-s但是,通过在命令中添加 a ,我可以创建软链接。我也可以复制该文件。所以我的用户有权在目录中创建文件。
为什么在尝试创建硬链接时会出现权限错误?我可以采取哪些措施来防止出现这种情况?
编辑 - 基于一些答案的附加信息:
文件系统是 ext4,并且还有dir1on的绑定挂载/srv(但卸载/srv/dir1没有任何区别):
/dev/md127 on /data type ext4 (rw,relatime,stripe=256)
/data/dir1 on /srv/dir1 type fuse (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)
Run Code Online (Sandbox Code Playgroud)
该设备设置为 raid 5:
md127 : active raid5 sdc[1] sdb[2] sdd[0]
7813772288 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
bitmap: 0/30 pages [0KB], 65536KB chunk
Run Code Online (Sandbox Code Playgroud)
lsattr该文件显示:
tikey@helios64:/data$ lsattr dir1/img1.jpg
--------------e------- dir1/img1.jpg
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个脚本来将笔记本电脑上的文件夹同步到我的 NAS。从命令行调用时,脚本运行良好。我已经尝试将脚本设置为使用 systemd 自动运行。但是ssh登录有问题。虽然从命令行运行脚本时它工作正常,但我收到了权限被拒绝的错误。
到目前为止,这是我尝试缩小问题范围的方法:
脚本/home/tikey/scripts/nas_sync_photos_to_nas.sh:
#!/bin/bash
set -x
ssh tikey@192.168.17.200 -v -i /home/tikey/.ssh/id_rsa ls -la rsync_laptop
Run Code Online (Sandbox Code Playgroud)
要使用 systemd 运行脚本,我已将文件sync-photos-to-nas.service放入~/.config/systemd/user/:
[单元] 说明=同步图片到 nas [服务] ExecStart=/home/tikey/scripts/nas_sync_photos_to_nas.sh
从命令行运行脚本工作正常。不幸的是,使用 systemd 运行脚本不起作用。我已经运行了 systemd 服务systemctl --user start sync-photos-to-nas.service。然后,使用journalctl --user-unit sync-photos-to-nas,我得到:
... debug1:主机 '192.168.17.200' 已知并且与 RSA 主机密钥匹配。 debug1:在 /home/tikey/.ssh/known_hosts:2 中找到密钥 debug1:在 4294967296 个块后重新加密 debug1: SSH2_MSG_NEWKEYS 发送 debug1:期待 SSH2_MSG_NEWKEYS debug1:在 4294967296 个块后重新加密 debug1:收到 SSH2_MSG_NEWKEYS debug1:收到 SSH2_MSG_SERVICE_ACCEPT debug1:可以继续的身份验证:publickey、password、keyboard-interactive debug1:下一个身份验证方法:publickey debug1:提供 RSA 公钥:/home/tikey/.ssh/id_rsa debug1:服务器接受密钥:pkalg ssh-rsa blen 535 debug1: read_passphrase: …