查看 /etc/ 中的文件:
/etc/group:lbutler:*:1005:
/etc/master.passwd:lbutler:$6$s..../:1005:1005::0:0:L Butler:/home/lbutler:/bin/bash
/etc/passwd:lbutler:*:1005:1005:L Butler:/home/lbutler:/bin/bash
Run Code Online (Sandbox Code Playgroud)
但:
$ passwd lbutler
passwd: lbutler: no such user
Run Code Online (Sandbox Code Playgroud)
此外,文件/home/lbutler/
显示为 uid 1005 和 gidlbutler
中的其他用户/etc/passwd
似乎没有问题
以 root 身份移动或复制文件时,我经常想根据我将文件移动到的目录的所有者来设置这些文件的所有权。
在我开始编写一个脚本来解析所有被复制的文件的 rsync 输出然后通过每个文件上的那些设置 chown 之前,有没有更好的/现有的方法来做到这一点?
作为一个例子,说我需要的文件夹同步复制/移动/tmp/ftp/new-assests/
以~user1/tmp/
和~user2/html-stuff/
原稿由用户_www拥有和我想要的目标文件,并且包含它们的文件夹和任何其他文件夹为所拥有的user1
,并user2
分别与目标目录中有现有文件。
是的,如果用户具有对该文件夹的读取访问权限,则他们可以自己复制文件,但这在这种情况下无关紧要。让我们假设这些都是 nologin 用户并且他们无权访问源文件,如果有帮助的话。
$ sysctl -a | grep acl
kern.features.ufs_acl: 1
vfs.acl_nfs4_old_semantics: 0
$ mount
/dev/ada0p2 on / (ufs, local, journaled soft-updates)
devfs on /dev (devfs, local, multilabel)
devfs on /var/named/dev (devfs, local, multilabel)
$ setfacl -m u:spamd:rwX ham
setfacl: ham: acl_get_file() failed: Operation not supported
$ getfacl ham
# file: ham
# owner: spamd
# group: spamd
user::rwx
group::r-x
other::r-x
任何使用 setfacl 设置 acls 的尝试都会产生相同的错误,即使是直接从手册页复制的命令。
我有一个带有 rsync 共享的远程服务器,我只需要提取最近 7 天的文件。
我可以使用以下方法根据日期发送文件:
find /path -mtime 7 ... -exec rsync -a
Run Code Online (Sandbox Code Playgroud)
但我不能只是登录到服务器并将文件发送到我的本地机器,所以我需要一种方法来使用 rsync 来获取所有不到 7 天的文件并抓取它们。
我不能简单地同步所有内容,因为服务器上的总数据超过 100TB,而且除了 rsync 模块之外,我无权访问远程服务器。
我可以使用 ssh 或 scp 将远程文件附加到本地文件,但我不知道如何反向操作并将本地文件附加到远程服务器。
ssh remote.server cat /path/to/file >> locale-file
效果很好(但不适用于通配),但我该如何逆转呢?
我想删除嵌入在一堆 MP3(数千个)中的专辑封面,但找不到命令行方法来执行此操作。我可以通过添加艺术lame
,我可以添加或删除几乎任何其他标签id3tag
,但我可以\xe2\x80\x99t找到一种方法来做类似的事情:
for file in **/*.mp3 do <remove image command> $file; done\n
Run Code Online (Sandbox Code Playgroud)\n有人知道我可能会投入什么吗<remove image command>
?
freebsd ×2
rsync ×2
ssh ×2
acl ×1
amazon-ec2 ×1
file-copy ×1
find ×1
mp3 ×1
passwd ×1
permissions ×1