是否可以在 Linux 上移动或复制特定文件时添加密码?

是否可以在 Linux 上移动或复制特定文件时添加密码?

我有一个非常好的目录设置(即用自述文件和简单的导航等进行组织)。我希望人们能够访问此目录中的文件,甚至可以将它们复制到自己的目录(在同一台计算机上),但我不希望我自己的目录被动摇/搞乱,否则一切都可能被毁掉。无论如何,是否可以对目录中的某些命令加锁,或者是否可以对某些文件加锁?

例如,某人应该能够像这样自由地穿过空间:

$ cd ThisDirectory
$ cd ThatDirectory

但他们不应该能够像这样移动这些文件:

$ mv ThisDirectory
$ mv ThatDirectory

有没有办法对特定文件的 mv 命令加锁?

答案1

只需以每个人都可以读取文件的方式更改文件的权限,但不能更改它们。

当你用来ls -l列出你的文件时,你会得到类似的东西

    ls -l file
    -rw-rwxr--    1 rafael   Grp      1620 Aug 18 14:58 file

第一组破折号/字母设置允许三个不同的(但不互相排除)组,即用户(你),团体,其他的(或这台机器/服务器中的每个人)。

所以上面的例子可以理解为

    -            It's a file
     rw-         Owner may read and write
        rwx      Others in group may read, write and execute
           r--   Other users (not in group) may read

为了防止任何人更改您的文件,请设置它们

    chmod go-w file

这会将它们设置为除您之外的任何人都不可写

    ls -l file
    -rw-r-xr--    1 rafael   Grp      1620 Aug 18 14:58 file

让我深入研究这些破折号/字母:

    -rw-rwxr--    1 rafael   Grp      1620 Aug 18 14:58 file

第一个指示文件类型(目录、符号链接、命名管道)。然后有三组三个符号,每组由一个r(为了), 一w(为了),还有一个X(为了eX执行),或者如果该权限被禁用,则其位置由破折号填充。

您的目录应该具有相同的权限,并为所有用户添加“执行”权限(“执行”目录意味着访问其中的任何条目)。如果您的目录是可写的,则其中的条目可能会被删除或重命名。

在命令中chmod,也分为三个部分(表示组和其他),“-”(减号)是删除(许可),他们是更改的(列表)权利

所以

    chmod u-wx file    # prevent you reading the file or executing it
    chmod u+wx file    # permit you to read nte file or execute it
    chmod ug+rx file   # permit you and your group to read or execute it
    chmod ugo-rwx file # permit no access, for anybody

最后一点

chmod还支持-R, 进行递归,因此如果您有一个名为 myDir 的目录:

    chmod -R go-w myDir  # protect everything in that directory and its sub directories/files
    chmod -R go+rX myDir # grant reading access in that directory and its sub directories/files

应该做到这一点。

感谢您的提问,我希望它也能帮助其他人!

相关内容