Midnight Commander запускается очень долго [дубликат]

Владелец каталога обычно может удалять и переименовывать файлы и подкаталоги в этом каталоге. Модули безопасности Linux и атрибуты файлов (если они включены и доступны) могут добавлять дополнительные ограничения.


Отредактировано, чтобы отразить изменения в вопросе:

Обычный пользователь может тривиально создать каталог, исключающий всех пользователей, кроме самих и root. Например:

mkdir -m 0700 ~/foo

создает каталог, доступный только пользователю-владельцу ( drwx ------ ) и root; тогда как

mkdir -m 0770 ~/foo

создает каталог, доступный только пользователю-владельцу и членам группы ( drwxrwx --- ) и root.

С исключениями, установленными любыми модулями безопасности Linux, которые могут использоваться (например, SELinux), root может получить доступ ко всем файлам в системе. В конце концов, именно поэтому они суперпользователи.

Если вы запустите команду id -un , вы увидите свое текущее настоящее имя пользователя. Команда id -gn сообщает вашу настоящую группу, а id -Gn - имена дополнительных групп, членом которых вы являетесь. Если вы являетесь пользователем-владельцем каталога, вы можете изменить группу любого файла или подкаталога на любую группу, членом которой вы являетесь, с помощью команды chgrp .

Допустим, вы пользователь grand и принадлежите к группам marina и torino .Если вы хотите создать каталоги games-marina и games-torino , только вы и все пользователи, принадлежащие к этим двум группам, можете получить доступ (но другие могут только читать, не изменять или удалять что-либо ), затем выполните

mkdir                 games-marina
chgrp  marina         games-marina
chmod  u=rwx,g=rx,o=  games-marina

mkdir                 games-torino
chgrp  torino         games-torino
chmod  u=rwx,g=rx,o=  games-torino

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

Обычно пользователь не может оставить файлы или каталоги, чтобы другие могли их контролировать. Такая смена владельца действительно требует прав суперпользователя. (Например, чтобы изменить владельца файла или каталога с помощью chown , вы должны быть либо пользователем root, либо иметь возможность CAP_CHOWN в Linux.)

Есть ряд причин, по которым разрешить такое отказ случиться было бы плохой идеей; технически это можно реализовать, но я лично еще не видел ни одного хорошего варианта использования. Я почти уверен, что OP пытается что-то сделать ... так сказать, бесполезное, здесь.

(Я написал сценарии, которые разрешают владение файлами в определенных деревьях каталогов между членами, принадлежащими к определенной группе - да, веб-администраторами - но это довольно легко безопасно настроить с помощью sudo и пара вспомогательных скриптов bash / dash.)


Если бы мы хотели создать каталог / home / olegzandr / foo , который не может быть удален владельцем каталога / home / olegzandr , нам нужно сделать foo точку монтирования и монтирование с помощью привязки (корневого) каталога поверх нее. Например, мы могли бы создать каталог / root / foo (очевидно, принадлежащий пользователю root) и подключить его к / home / olegzandr / foo , например,

sudo mount --bind /root/foo /home/olegzandr/foo

При подключении привязки каталог / home / olegzandr / foo должен по-прежнему существовать (поскольку он используется в качестве точки монтирования), и владелец / home / olegzandr ] могут управлять этим каталогом, но не могут удалить его, пока существует привязка. Поскольку / home / olegzandr / foo - это новая точка монтирования, принадлежащая пользователю root, владелец / home / olegzandr не может управлять ею.

Чтобы защитить точку монтирования от удаления владельцем / home / olegzandr , пока привязка монтирования не действует, необходимо установить точку монтирования / home / olegzandr / foo неизменный. Чтобы создать начальную точку монтирования (без монтирования привязки), я бы использовал

sudo mkdir      /home/olegzandr/foo
sudo chmod 0700 /home/olegzandr/foo
sudo chattr +i  /home/olegzandr/foo

. Обратите внимание, что это также означает, что никто не может случайно скопировать данные или создать подкаталоги в / home / olegzandr / foo , если не действует привязка крепления. (Когда действует привязка монтирования, владелец, группа и права доступа / root / foo применяются и к / home / olegzandr / foo .)


В ext4 и большинстве других файловых систем мы обычно можем использовать промежуточный неизменяемый каталог для создания каталога / home / olegzandr / foo / bar с / home / olegzandr / foo быть неизменным. Таким образом, владелец / home / olegzandr не может изменить или удалить / home / olegzandr / foo , а также удалить / home / olegzandr / foo / bar . Последний, кроме того, является подкаталогом в корневом каталоге и, таким образом, больше не находится в рабстве владельца / home / olegzandr . Чтобы поэкспериментировать с этим:

sudo mkdir /home/olegzandr/foo
sudo mkdir /home/olegzandr/foo/bar
sudo chmod 0555 /home/olegzandr/foo
sudo chattr +i /home/olegzandr/foo

Затем вы можете установить владельца, группу и режим / home / olegzandr / foo / bar по своему усмотрению. Его нельзя удалить (даже root)пока / home / olegzandr / foo неизменен.

Чтобы изменить неизменяемый атрибут файла, нужно быть либо пользователем root, либо иметь возможность CAP_LINUX_IMMUTABLE (которая обычно есть только у root).

2
20.05.2017, 07:32
2 ответа

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

Перед удалением конфигурации и повторной установкой необходимо проверить:

  1. Загрузка сервера. До и после запуска mc
  2. состояние процесса и потребляемые ресурсы
  3. dmesg для проверки возможных сбоев оборудования
  4. Свободное / используемое дисковое пространство и свободная / используемая оперативная память

Поскольку вы не проверяли Если у вас есть какая-либо соответствующая информация, невозможно узнать, что может быть не так с mc

1
27.01.2020, 22:10

Мой mc также загружается примерно за 1 минуту.

Я исправил это, и это связано с тем, что мой PROMPT_HISTORY был переопределен на "только чтение"; не могу вспомнить подробности, но похоже, что MC делает паузу, чтобы попытаться переписать его.

Я не смотрел исходный код, однако рискну сказать, что паузы - это особенность mc.

Я бы посоветовал изучить его и / или посмотреть исходный код.

2
27.01.2020, 22:10

Теги

Похожие вопросы