Команда Linux copy

Например, у меня есть два пользователя A и B, и A имеет права администратора.

Я вошел как B, и я хочу знать, как я могу скопировать /etc/sudoers в домашнем каталоге B одной командой и после /etc/sudoers копируется, он должен принадлежать пользователю B по умолчанию, без использования chmod, chown,

Я надеюсь, что я ясно дал понять.

2 ответа

Решение

Если вы не хотите использовать chown или же chmod, вы можете использовать один из следующих методов (в любом случае вам нужно иметь права суперпользователя для чтения /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
Другие вопросы по тегам