Например, у меня есть два пользователя A и B, и A имеет права администратора.
Я вошел в систему как B и хочу знать, как я могу скопировать /etc/sudoers
в домашний каталог B одной командой, и после копирования /etc/sudoers
он должен принадлежать пользователю B по умолчанию, без использования chmod
], chown
.
Надеюсь, я дал понять.
Если Вы не хотите использовать chown
или chmod
, можно использовать один из следующих методов (в любом случае, у Вас должны быть полномочия пользователя root читать /etc/sudoers
файл):
sudo cat /etc/sudoers > ~/sudoers
или:
touch ~/sudoers
sudo cp /etc/sudoers ~/sudoers
В обоих случаях, после ~/sources
файл создается, принадлежит текущему пользователю.
Файл /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