У меня есть сценарий, когда несколько пользователей подключены к серверу с использованием SSH. У меня есть файл, который читают и пишут все пользователи.
Файл содержит цифры, как это -
14554
14887
23451
15135
15154
15165
1236
1516
15616
9821
98715
Теперь, когда файл был создан пользователем X
а пользователь Y
попытался выполнить следующую команду, он получил ошибку:
sed -i '/14554/d' /tmp/file.txt
sed: cannot rename /tmp/sedtm3Vhx: Operation not permitted
Файл разрешений читается как -
ls -l /tmp/file.txt
-rwxrwxrwx. 1 USERX USERX 63 Apr 25 11:58 /tmp/file.txt
Однако, если пользователь Y
открывает файл, его можно читать / записывать в файл. Я думаю, что нет никаких прав, чтобы удалить или переименовать файл, созданный другим пользователем.
Удастся ли удалить эту строку, имеющую номер 14554
, без удаления или переименования файла.
Примечание : Sed
был хорош, потому что он предоставил бы мне атомарный доступ в случае, если несколько пользователей пытаются прочитать или записать один и тот же файл. Это одна из причин, мне также не хотелось бы, чтобы циклы for
в скрипте bash редактировали этот файл.
Спасибо !