例如,我有两个用户 A 和 B,其中 A 具有管理员权限。
我以 B 身份登录,我想知道如何才能使用/etc/sudoers
单个命令复制 B 主目录,并且/etc/sudoers
复制后它必须默认由 B 用户拥有,而不使用chmod
, chown
。
我希望我已经表达清楚了。
答案1
如果您不想使用chown
或chmod
,您可以使用以下方法之一(无论如何您都需要具有 root 权限才能读取/etc/sudoers
文件):
sudo cat /etc/sudoers > ~/sudoers
或者:
touch ~/sudoers
sudo cp /etc/sudoers ~/sudoers
在这两种情况下,~/sources
文件创建后都归当前用户所有。
答案2
除了该用户或该组内的用户/etc/sudoers
之外,其他人无法读取该文件。root
root
ls -l /etc/sudoers
-r--r-----. 1 root root 669 Jun 28 2012 /etc/sudoers
意思是,如果用户 B 没有管理权限,他就不可能读取(更不用说复制)文件sudoers
。这是出于明显的安全原因而设计的,因为用于提升权限的密码哈希值sudo
就在那里。
为了防止cp
保留属性,您可以使用--no-preserve=
开关:
sudo cp --no-preserve=ownership /etc/sudoers .
这样做的问题是,它将夺取运行该命令的用户的所有权(在本例中root
),因此所有权将保持不变,但它适用于没有严格权限的其他文件。
$ ls -l /etc/vdpau_wrapper.cfg
-rw-r--r-- 1 root root 51 May 5 19:19 /etc/vdpau_wrapper.cfg
$ cp --no-preserve=ownership /etc/vdpau_wrapper.cfg .
$ ls -l vdpau_wrapper.cfg
-rw-r--r-- 1 braiam braiam 51 Aug 13 09:28 vdpau_wrapper.cfg