powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / массово заменить id пользователя и группы у всех файлов
11 сообщений из 11, страница 1 из 1
массово заменить id пользователя и группы у всех файлов
    #37293430
donner-gms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
случилось вот что - некий пользователь и его основная группа поменяли идентификаторы (это пришлось сделать для nfs, но не суть)

было 100, стало 102, к примеру. Замена в ручную в /etc/passwd

есть ли возможность найти ВСЕ файлы, которые принадлежали пользователю этому, ну и перебить им хозяина/группу chown <u>:<g> <file>.


?
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37293519
Мутаген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
find -user <olduid> | xargs chown <newuid>
find -gid <oldgid> | xargs chgrp <newgid>

Это всё обломается на файлах с пробелами/переносами в строк в именах, поэтом find и xargs лучше взять от GNU, тогда можно будет использовать ключи -print0 и -0 в find/xargs.
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37293615
donner-gms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мутаген,

спасибо!

я вот так делаю для файлов

Код: plaintext
find / -user  100  -exec "chown oracle:oinstall" {} \;

что-бы xarg а избежать.
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37294353
donner-gms,

и порождаете кучу ненужных процессов, к слову.
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37294519
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мутаген,

chown права портит:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
~]# >  1 .txt
~]# chown tomcat  1 .txt
~]# chmod   4755   1 .txt
~]# ls -la  1 .txt
-rwsr-xr-x  1  tomcat root  0  Jun   4   06 : 11   1 .txt
~]# chown oracle  1 .txt
~]# ls -la  1 .txt
-rwxr-xr-x  1  oracle root  0  Jun   4   06 : 11   1 .txt
~]#
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37294637
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловchown права портит:

Код: plaintext
1.
2.
3.
-rwsr-xr-x  1  tomcat root  0  Jun   4   06 : 11   1 .txt
~]# chown oracle  1 .txt
~]# ls -la  1 .txt
-rwxr-xr-x  1  oracle root  0  Jun   4   06 : 11   1 .txt

В том, что смена владельца сносит suid-флаг есть своя логика: предположим root перевел в свое владение некий скрипт. Если бы бит SUID не скинулся бы, то любой юзер, имея в 'x' в триплете Other, мог бы исполнять этот скрипт под правами root'а. Это естественно дыра, и поведение chown хоть и слегка вышла за рамки декларированной политики юникс, когда делается ровно то, что запросили, но все же речь о безопасности.
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37294741
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
donner-gms,

find PATH CRITERIA | while read line; do mode=`stat --format=%a "$line"`; chown NEWUSER "$line"; chmod $mode "$line"; done
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37299411
donner-gms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К-рниган и Р-тчиdonner-gms,

и порождаете кучу ненужных процессов, к слову.

и?
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37299422
donner-gms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мутагенfind -user <olduid> | xargs chown <newuid>
find -gid <oldgid> | xargs chgrp <newgid>


интересно, а вызов xargs процессы типа не порождает? )
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37299640
Мутаген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей ПанфиловМутаген,

chown права портит:

Сейчас проверил на Solaris 10, не сносит там родной chown suid bit.
Ну и stat в комплекте десятой версии нету.


вызов xargs процессы типа не порождает

xargs запускает одну команду на 500 аргументов или около того, а -exec на каждый файл. В принципе xargs эффективнее, но на современном железе скорее всего незаметно на фоне дискового IO.
...
Рейтинг: 0 / 0
массово заменить id пользователя и группы у всех файлов
    #37299711
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МутагенСейчас проверил на Solaris 10, не сносит там родной chown suid bit.
Ну и stat в комплекте десятой версии нету.по этому поводу посикс пищет так:POSIXIf the specified file is a regular file, one or more of the S_IXUSR, S_IXGRP, or S_IXOTH bits of the file mode are set, and the process does not have appropriate privileges, the set-user-ID (S_ISUID) and set-group-ID (S_ISGID) bits of the file mode shall be cleared upon successful return from chown(). If the specified file is a regular file, one or more of the S_IXUSR, S_IXGRP, or S_IXOTH bits of the file mode are set, and the process has appropriate privileges, it is implementation-defined whether the set-user-ID and set-group-ID bits are altered. If the chown() function is successfully invoked on a file that is not a regular file and one or more of the S_IXUSR, S_IXGRP, or S_IXOTH bits of the file mode are set, the set-user-ID and set-group-ID bits may be cleared.У HP-UX "implementation-defined" поведение chown описано точно, в опенсорсном Linux вообще ни слова про срезание битов.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / массово заменить id пользователя и группы у всех файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]