У меня проблема с некоторыми из моих пользователей, которые неправильно используют chmod, делая что-то вроде
chmod 777 ~ -Rf
Я хотел бы отключить chmod, чтобы только пользователи с полными правами sudo (I.E. IT) имели права. Есть ли у этого недостатки, которые я мог бы упустить?
Требуется ли для apache или любой другой распространенной части Linux доступ к chmod, о котором я не замечаю?
Кроме того, лучший способ сделать это:
chmod 700 /bin/chmod
Спасибо!
РЕДАКТИРОВАТЬ:
Чтобы прояснить, я знаю, что есть способы обойти это, и я знаю, что обучение моих пользователей - это правильный шаг. Но люди не всегда делают то, что я им говорю. Компьютеры будут ... если я заставлю своих пользователей спрашивать меня перед использованием chmod, я могу объяснить им, почему их права были отобраны, проинструктировать их, как это сделать, и выборочно предоставить им права sudo на chmod то, что им нужно в chmod.
В то же время я не решаюсь связываться с одной из основных команд оболочки Linux. Я спрашиваю, знает ли кто-нибудь о побочных эффектах, которые я могу упустить? I.E. когда вы создаете файл, он вызывает chmod для установки начальных разрешений, или это не связано? Нужен ли chmod для копирования файла? Существуют ли стандартные службы, которые полагаются на chmod, которые могут сломаться, если только root будет иметь доступ к chmod?
Имхо, это похоже на поиск технического решения человеческой проблемы.
Разрешаете ли вы пользователям использовать сертификаты для SSH? Или написать сценарии (оболочка, CGI и т. Д.?)
Без доступа к chmod они не смогут установить необходимые разрешения для работы сертификатов ssh (некоторые люди могут видеть в этом преимущество, но в этом случае вам следует отредактировать pam.conf, чтобы полностью запретить его), им придется вызвать интерпретатор со сценарием в качестве аргумента (например, perl script.pl
), а не скрипт напрямую, и веб-сервер откажется запускать свои CGI, поскольку разрешения установлены неправильно.
В зависимости от того, какая группа пользователя по умолчанию и как настроена umask по умолчанию, также возможно, что созданные файлы не будут доступны для чтения веб-сервером и, следовательно, не могут быть обслужены вообще, CGI или иначе. Кроме того, отсутствие chmod означает, что вы не можете исправить проблемы с разрешениями для файлов, которые были перемещены через scp, что по умолчанию сохраняет разрешения.
... предоставление пользователям прав sudo для chmod, возможно, еще больше червей - так как тогда они смогут запускать команды как root, а не как они сами, поэтому они могут повлиять на разрешения любой пользователь. Лучше создать группу chmodders, установить разрешение на chmod на 0750 и добавить людей в группу, которым разрешено его использовать.
Если вы все еще хотите это сделать, вы можете сделать это, переместив двоичный файл из /bin/chmod
на какой-то другой путь, например /root/chmod
.
Чтобы пользователи думали, что инструмент все еще доступен, вы можете создать скрипт, который ничего не делает в исходном пути в /bin
.
Таким образом вы можете отключить chmod
инструмент, если вы не укажете полный путь /root/chmod
.
Минусы в том, что chmod не будет доступен ни одному сценарию, запущенному как пользователь без полномочий root, что может привести к поломке некоторых вещей.
Неясно, каковы ваши реальные требования, но можно посмотреть этот вопрос и решения.