Naf*_*Kay 3 linux permissions unison file-permissions
我已经使用 Linux 很长时间了,但我仍然完全不了解文件权限的真正工作原理。考虑到这一点,是否有人可以阅读任何书籍或详尽的指南来真正完全理解事物?我已经完成了我对系统管理的公平分享,所以我知道一些简单的事情,比如使目录可读和可写、使文件可执行以及更改文件的所有者,但是在跨用户共享文件时,我迷路了。
这是我的主要问题。我有许多机器,我打算在它们之间同步我的音乐库。我已经使用 Unison 有一段时间了,这是一个不错的选择,因为我可以在我刚刚设置的本地网络上通过 SSH 轻松运行它。双赢。
到目前为止,我一直在使用 2TB 外置硬盘同步计算机。(计算机 1 与 HD 同步,计算机 2 与 HD 同步,等等)这充其量是乏味的,尤其是因为我加密了驱动器,使其连接到我的所有机器并同步它变得非常麻烦。无论如何,驱动器正在运行 ext4(在 TrueCrypt 中),因此它维护所有 Unix 文件系统信息,如所有者和组。我刚刚设置了一台新机器,然后就用 Unison 来播放音乐,我意识到现在,我的所有权限都是 fubar。我必须以 root 身份运行 Unison,因为这是我可以从外部驱动器中获取文件的唯一方法。显然,由于我在这台机器上使用的用户名与我在所有机器上通常使用的“rfkrocktk”不同,这基本上会在齿轮上产生巨大的影响。
这是我的用例。这台笔记本电脑有两个有效用户,“leandra”和“rfkrocktk”。我想在这两个用户之间共享音乐,所以我用符号链接 /home/rfkrocktk/Music 指向 /home/leandra/Music。我如何 (a) 允许两个用户都访问此文件夹中的读/写/删除文件,以及 (b) 在不弄乱文件所有权的情况下使所有内容保持同步?
我能够让事情有点工作,但还没有完全。我将我的音乐目录的组 ID 设置为我的组media-users,并将我的主用户rfkrocktk和共享用户都添加mt-daapd到组中。现在,rfkrocktk可以完美访问文件,但mt-daapd看不到目录中的任何内容。这是我的ID:
$ id rfkrocktk
> uid=1000(rfkrocktk) gid=1000(rfkrocktk) groups=1000(rfkrocktk),4(adm),20(dialout),24(cdrom),29(audio),46(plugdev),104(lpadmin),115(admin),120(sambashare),124(vboxusers),1001(jupiter),2002(media-users)
$ id mt-daapd
> uid=123(mt-daapd) gid=65534(nogroup) groups=65534(nogroup),2002(media-users)
Run Code Online (Sandbox Code Playgroud)
我尝试将mt-daap的主组 ID 设置为media-users组,但它没有改变任何内容。
这是我对/home/rfkrocktk/Music目录的权限:
drwxr-Sr-- 201 rfkrocktk media-users 12288 2011-01-13 12:26 Music
Run Code Online (Sandbox Code Playgroud)
跑步sudo -i -u mt-daapd ls -l /home/rfkrocktk/Music什么也没有。我怎样才能解决这个问题?
小智 5
我将文件所有者设置为 root,将组设置为“音乐”之类的内容,然后将它们设置为“音乐”组的成员。然后,将音乐目录设置为 setgid (这意味着在目录中创建的项目将继承目录本身的组所有权)。然后,将文件权限设置为 0660 就可以了。
文件权限是用户、组、世界,并且通常显示为八进制数(例如,0660),其中:
1 - 执行 2 - 写入 4 - 读取
这些是可以添加的,例如0751表示文件所有者可以读、写和执行;该组可以读取和执行;其他人只能执行。
| 归档时间: |
|
| 查看次数: |
4561 次 |
| 最近记录: |