право собственности на файл меняется автоматически - PullRequest
1 голос
/ 09 мая 2019

Как я могу предотвратить изменение владельца файла? У меня есть файл с разрешением следующим образом:

-rw-r-----. 1 netcool ncoadmin 1689 May  8 14:54 NCI_Constellation.proj

В рамках установки пакета RPM я запускаю скрипт, который должен записывать данные в файл NCI_Constellation.proj. Принимая во внимание, что разрешение файла изменяется во время установки пакета следующим образом, а запись в файл не происходит.

-rw-r-----. 1 root root 1689 May  8 14:54 NCI_Constellation.proj

Есть ли способ не изменять владельца файла NCI_Constellation.proj и сохранять его в том виде, как оно указано ниже, чтобы я мог записывать данные в файл?

-rw-r-----. 1 netcool ncoadmin 1689 May  8 14:54 NCI_Constellation.proj

Пожалуйста, помогите.

Ответы [ 3 ]

1 голос
/ 09 мая 2019

у вас есть два варианта, на мой взгляд,

first: установите netcool в корневую группу, выполнив это: $ sudo usermod -a -G root netcool с помощью этой команды пользователь может изменять и изменять файл даже после изменения разрешений.

second: установить пользователя netcool вторым пользователем root, изменив файл /etc/passwd. для этого откройте файл в любом редакторе файлов, затем измените UID и GID на 0. После этого, если вы запустите $ grep netcool /etc/passwd, вы должны увидеть: netcool:x:0:0: {the rest may change for anybody}.

1 голос
/ 09 мая 2019

Вопрос в том, к какому пакету принадлежит этот файл и с какими разрешениями?

rpm -qf /path/to/NCI_Constellation.proj

даст вам пакет, владеющий этим файлом (скажем, NCI.rpm).Тогда

rpm -qlv NCI.rpm | grep NCI_Constellation.proj

предоставит вам правообладателей и прав на этот файл, упакованный NCI.rpm.Если вы одна упаковка NCI.rpm;вы должны поместить что-то вроде этого в ваш %files раздел:

%files
%attr(640,netcool,ncoadmin) /path/to/NCI_Constellation.proj

Кстати, убедитесь, что вы действительно можете писать в файл с этими разрешениями;сначала проверьте это ... Кто запускает скрипт для изменения этого файла?Как какой пользователь?затем запустите его вручную как пользователь, чтобы убедиться, что эти права доступа к файлам будут достаточными.

0 голосов
/ 09 мая 2019

Мы можем предотвратить изменение группы файлов, используя бит setgid в каталоге. Поэтому, если вы добавите пользователя netcool в ncoadmin и дадите разрешение на запись для ncoadmin, то вы можете отредактировать файл. Вот как вы можете установить бит SetGid для каталога.

chmod g+s your_directory_containing_file(NCI_Constellation.proj)

Немного больше о setgid в каталоге:

setgid можно использовать в каталогах, чтобы убедиться, что все файлы внутри каталога принадлежат владельцем группы каталога. Бит setgid отображается в том же месте, что и x разрешение для владельца группы. Бит setgid представлен символом s (имеется в виду x) или S (когда нет х для владельца группы). Как показывает этот пример, хотя root не принадлежит группе proj55, файлы, созданные пользователем root в / project55, будут принадлежать proj55, так как setgid установлен.

root@RHELv4u4:~# groupadd proj55
root@RHELv4u4:~# chown root:proj55 /project55/
root@RHELv4u4:~# chmod 2775 /project55/
root@RHELv4u4:~# touch /project55/fromroot.txt
root@RHELv4u4:~# ls -ld /project55/
drwxrwsr-x 2 root proj55 4096 Feb 7 17:45 /project55/
root@RHELv4u4:~# ls -l /project55/
total 4
-rw-r--r-- 1 root proj55 0 Feb 7 17:45 fromroot.txt
...