我有一个运行 Raspbmc 发行版的 Raspberry Pi,我注意到很多目录要么由用户501
和组拥有dialout
,要么由用户和组拥有root
。将文件从 SD 卡上的主文件系统移动到外部驱动器对我来说很令人沮丧,因为我总是需要 root 访问权限(这也使自动化任务变得很痛苦),所以我真的很希望能够将chown
其提供给用户pi
。我已经阅读了一些关于501
用户和dialout
组的内容,但不明白为什么我不应该这样做,但我对 Unix 权限的了解充其量只是基本的,所以我想知道我是否已经在我继续并递归地更改整个驱动器上的权限之前,忽略了任何注意事项。
所以我的问题是:在chown -R pi
外部驱动器上执行 a 有什么害处吗?
答案1
如果您在该磁盘移动的系统之间创建一个公共用户,则可以将该磁盘的所有权授予该单个用户,并且您将不再需要处理此问题。
只需在两个系统上添加一个用户,并确保该用户的 UID(用户 ID)和 GID(组 ID)在两个系统上是相同的数字。名称并不重要,需要保持同步的是数字,以便 UID/GID 在两个系统中被识别为单个用户/组。
创建用户时,这些部分驱动系统识别哪个用户/组拥有文件。
例子
假设我有这个目录,它的用户/组是 saml 和 saml。
$ ls -ld .
drwx------. 245 saml saml 32768 Oct 26 22:41 .
使用-n
开关ls
可以查看这些字段的数字。
$ ls -ldn .
drwx------. 245 500 501 32768 Oct 26 22:41 .
因此,我们需要确保两个系统上具有相同的用户/组 (saml/saml),并且 UID/GID 也需要为 500/501。
如果您查看该/etc/group
文件,您将看到组 saml + GID。
$ grep "^saml" /etc/group
saml:x:501:
查看/etc/passwd
文件,您将看到用户 saml + UID。
$ grep "^saml" /etc/passwd
saml:x:500:501:Sam M. (local):/home/saml:/bin/bash
运行useradd
命令时,您可以控制要使用的 UID/GID。
$ sudo useradd -u 500 -g 501 saml