bre*_*ics 5 unix permissions file-permissions
场景:在计算机 A ( userA )下创建的文件,在文件权限中将文件所有权作为userA,然后以不同的用户 ( userB )传输到计算机 B ...
Does the ownership of the original file change from the original user (userA) in computer A to the user (userB) of computer B?
How can I create a file that is only writable by me, the creator and owner, and only readable to anyone who might receive that file on other computers?
我在计算机 A ( userA )上创建了一个文件权限为 755 的 testfile.txt,以比较使用 scp 从计算机 A 传输到 B 之前和之后该文件的权限和所有权。我注意到我的原始文件,现在在计算机 B 上, 将用户 ID 设为userB而不是userA [创建文件的位置]。
计算机 A,拥有“userA”
rwx-rxr--userA testfile.txt
计算机 B,拥有“userB”
rwx-rxr--userB testfile.txt
我想并希望使文件只能由所有者(我认为是我在其中创建文件的计算机的用户)可读、可写和可执行。
谢谢!我是新手!
是的。
\n\n这完全取决于谁在目标上创建文件。尝试这个:
\n\n$ touch some_file\n$ ls -l some_file\n-rw-r--r-- 1 userA userA 0 Apr 9 17:44 some_file\n$ ls -ln some_file\n-rw-r--r-- 1 501 501 0 Apr 9 17:44 some_file\nRun Code Online (Sandbox Code Playgroud)\n\n因此,在我的示例中,userA 的数字 uid 是 501。
\n\n现在传输它,以 userB 身份登录到远程系统:
\n\n$ scp some_file userB@computerB:\n$ ssh userB@computerB ls -l some_file\n-rw-r--r-- 1 userB users 0 Apr 9 17:50 some_file\n$ ssh userB@computerB ls -l some_file\n-rw-r--r-- 1 1743 20 0 Apr 9 17:50 some_file\nRun Code Online (Sandbox Code Playgroud)\n\n正如您在此处看到的,userB 创建了该文件,并且 userB 的数字 uid 为 1743。另请参阅时间戳如何更改?
\n\n这是 scp 的默认行为。您可以通过使用 scp 的“-p”选项来保留属性。这只保留时间戳和权限——重要的是,不保留所有权。这可能正是您正在寻找的:
\n\n$ scp -p some_file userB@computerB:\n$ ssh userB@computerB ls -l some_file\n-rw-r--r-- 1 userB users 0 Apr 9 17:44 some_file\n$ ssh userB@computerB ls -l some_file\n-rw-r--r-- 1 1743 20 0 Apr 9 17:44 some_file\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,除了 scp 之外,还有许多不同的方法可以在远程计算机上创建文件 - NFS、FTP、WebDAV...这些方法的行为方式不同,但类似的可预测方式。不过,我们不要得意忘形——你问的是 scp。
\n\n(注意,您实际上创建了具有 754 权限的文件! rwx=111=7, rx=101=5, r--=100=4 \xe2\x80\x93 你看,r、w 和 x 是八进制词,其中 r=4、w=2、x=1。这就是为什么您会看到与权限相关的八进制引用。感谢 ernie 的更正!)
\n| 归档时间: |
|
| 查看次数: |
8665 次 |
| 最近记录: |