Что такое & ldquo; chmod & rdquo; а его практические аспекты?

Я новичок в Ubuntu и раньше все делал на Windows. Насколько я знаю, в Windows есть опция «только для чтения» для пользователя. Однако, на мой взгляд, Ubuntu позволяет пользователю чрезмерно манипулировать правами доступа к файлам.

drwxrwxrwx 2 ttt ttt 4096 Tem 24 13:04 dante

  • Есть три группы пользователей; владелец, группа и др. соответственно.

Обычно тот, кто создает файл, является владельцем. Тогда кто такие "группа" и "другие". Используется ли это больше для серверных систем, где много пользователей?

Даже если это используется из-за проблем безопасности, без «$ sudo» его можно легко изменить на что угодно.

Можете ли вы также предложить дальнейшее чтение?

Возможно, я преувеличиваю "chmod", но я все равно буду вам благодарен, если вы ответите.

3
задан 24 July 2013 в 15:17

4 ответа

Простой поиск в Интернете даст множество результатов по вашему вопросу. Для быстрого обзора я рекомендую прочитать это .

0
ответ дан 24 July 2013 в 15:17

Одним из первых мест для помощи является «человек». Вы можете написать «man chmod», и вы получите всю информацию об использовании команды.

Команда меняет того, кто может получить доступ к файлу, и что он может с этим делать. «r» означает чтение, «w» для записи, «x» для выполнения. Для каждой из следующих категорий «владелец», «группа», «другие» существует набор «rwx». Если у одной категории есть только права на чтение («r--»), тогда они могут только читать файл. Это означает, что откройте его в редакторе, но не вносите никаких изменений. С помощью ("rw-") также можно изменить файл. С помощью ("rwx") можно также выполнить файл, если файл исполняемый. Теперь, возможно ли, чтобы файл мог открывать его в редакторе и одновременно выполнять его? Ну да. Если это бинарный файл и вы открываете его в редакторе, вы ничего не поймете, и если вы попытаетесь выполнить простой текстовый файл только с текстом, вы, вероятно, ничего не сделаете. Однако, если текст представляет собой последовательность команд (файл сценария), он может выполнять и то и другое. Для этих файлов очень важно определить права доступа, так как один человек может что-то изменить в командах, а затем этот файл будет выполняться кем-то другим.

О владельце категории: пользователь, создавший файл. Конечно, вы можете изменить владельца файла с помощью «chown». group: группа (-и) пользователей, к которым принадлежал владелец на момент создания файла. другое: все остальные, кроме владельца и пользователей той же группы, что и владелец.

0
ответ дан 24 July 2013 в 15:17

Обычно тот, кто создает файл, является владельцем. Тогда кто такие "группа" и "другие". Используется ли это больше для серверных систем, в которых много пользователей?

В Linux к файлу (или каталогу) могут обращаться три разные «сущности».

  • Пользователь (владелец) файла.
  • группа , которая (как и следует из названия) представляет собой группу пользователей.
  • Все другие люди; так что в основном все остальные (то есть не владелец и не в группе).

Каждый из этих объектов может иметь разрешения для чтения , записи и / или выполнения для файла. Видите гибкость и простоту Linux? Три объекта, каждый с тремя разными разрешениями. Это обеспечивает более гибкий способ предоставления разрешений файлам / папкам. Используется ли это больше для серверных систем, где много пользователей? Ну да, ладно, вы можете думать об этом таким образом. Ваш Ubuntu использует группы и другие во многих ситуациях, хотя, не беспокоясь об этом, но я отвлекся.


Даже если это используется из-за проблем безопасности, без «$ sudo» его можно легко изменить на любое другое.

Если я правильно понимаю, я предполагаю, что вы использовали chmod для файлов в вашей домашней папке, и поэтому вы сделали это без необходимости sudo. Давайте рассмотрим пример:

-rwxr-xr-x 2 alaa test 4096 Jun  5 10:02 fileName

Если вы хотите понять, что означает вся эта строка вывода, см. это .

alaa - это пользователь (владелец), а test - это группа файла.

Теперь команда, о которой вы говорите, chmod, используется для изменения разрешений файла. Итак, допустим, что я хочу дать права на запись для группы test, я бы выполнил команду:

chmod g+w fileName

Значение: для объекта group (g) добавить (+) разрешение на запись (w) в файл fileName.

Я, пользователь alaa, могу выполнить эту команду без необходимости sudo, потому что я являюсь ее владельцем. Если бы я не был владельцем, я бы не смог этого сделать, и мне понадобилось бы sudo, чтобы сделать это.


Можете ли вы также предложить дальнейшее чтение?

Я предлагаю вам не читать о команде chmod, а прочитать больше о Linux / Unix Файл Разрешения. Вы можете посетить эти короткие страницы для начинающих:

0
ответ дан 24 July 2013 в 15:17

Я считаю, что это разбивается на несколько тесно взаимосвязанных вопросов, которые отвечают с разумной степенью объективности.

Почему Ubuntu позволяет настраивать разные виды разрешений для разных пользователей и групп пользователей? Является ли эта высокая степень конфигурируемости действительно необходимой?

Почти все используемые в настоящее время операционные системы, включая Windows, имеют эту функциональность. На самом деле, в Windows система более сложная, потому что Windows использует списки контроля доступа для почти все , в то время как Ubuntu использует более простую систему в стиле Unix владение и разрешения большую часть времени (но также поддерживает списки контроля доступа ).

Несколько причин, по которым это необходимо:

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

    Помните, что сюда входят люди, которым вы, возможно, захотите получить доступ к вашему компьютеру по сети. Таких как ты. Многие люди хотят иметь возможность обмениваться файлами между компьютерами дома или со своими друзьями, но не с кем-либо, кто случайно использует одну и ту же общедоступную беспроводную сеть. Таким образом, пользователи представляют больше людей, чем вы могли бы физически использовать свою клавиатуру.

  2. Используемая вами операционная система - Ubuntu - та же ОС, что и Ubuntu Server. По умолчанию они имеют разные пакеты и разные установщики. Вы можете превратить серверную систему в настольную систему и наоборот. Для большинства серверов необходима полная система владения и разрешений, даже если это не требуется для некоторых настольных компьютеров. Рабочие столы прекрасно работают с ним; серверы не будут работать без него.

  3. Учетные записи пользователей могут представлять реальных людей, которые имеют доступ к вашему компьютеру, но они также представляют гораздо больше, чем это. Учетная запись пользователя представляет собой набор способностей. Существуют специальные учетные записи пользователей для выполнения определенных задач с ограниченными возможностями.

    1168 Цель этого двоякая. Во-первых, разработчик программного обеспечения или пользователь может сделать ошибку, в результате чего программное обеспечение попытается выполнить какое-то действие, о котором заранее известно, что оно может только причинить вред.

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

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

    Если в вашей системе Ubuntu настроено только несколько учетных записей пользователей-людей, то большинство учетных записей пользователей, перечисленных с помощью команды cat /etc/passwd, являются «пользователями». (Не беспокойтесь, запуск cat /etc/passwd на самом деле не показывает пароли людей; файл называется так, в основном по историческим причинам.)

Какой смысл Ubuntu ограничивать моя учетная запись имеет доступ ко всему, если я являюсь администратором и могу выполнять любые действия с правами суперпользователя с помощью sudo?

По той же причине, что по бокам некоторых дорог есть защитные ограждения, люк ( человек?) крышки, крышка над иглой на конце шприца, предохранители от огнестрельного оружия и т. д. И не по той же причине, по которой люди ставят замки на своих дверях. Не , чтобы помешать вам делать что-то преднамеренно, что вы действительно хотите сделать, но чтобы удержать вас от случайного выполнения чего-то, что вы не хотите делать.

Если вы хотите / должны выполнить административную задачу, важно, чтобы вы могли ее легко выполнять. Ваш контроль над собственной машиной должен соблюдаться, плюс система, которая излишне сложна в использовании, не очень хороша. Если Ubuntu мешает вам легко выполнять административные действия, это ошибка. К счастью, обычно это не так (хотя я боюсь, что мы движемся в этом направлении ). Одна из причин, по которой Ubuntu использует sudo, заключается в том, что он обычно облегчает запуск команд / программ как root, не уменьшая при этом вашу способность выполнять обычные неадминистративные действия одновременно.

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

Точно так же вы, вероятно, имеете право отдать свои сбережения некому случайному парню. Вы также имеете право играть в теннис. Ваша автономия важна; это из-за этого, а не вопреки этому, кнопка «отдать все мои деньги» на вашей теннисной ракетке была бы плохим дизайном.

Для получения дополнительной информации о том, почему даже администраторы должны использовать «ограниченные учетные записи пользователей» (плюс возможность выполнять любое конкретное действие без ограничений по запросу), см .:

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

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

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

Под всеми остальными я подразумеваю все остальные учетные записи пользователей в вашей системе, кроме владельца файла и владельца группы. Это включает в себя те, которые не соответствуют ни одному человеку. Например, вы можете захотеть, чтобы все люди, использующие ваш компьютер, могли настраивать принтеры (группа lpadmin) и использовать привод CD / DVD / BluRay (группа cdrom), но, вероятно, нет необходимости разрешать сообщение о сбое «пользователь» (whoopsie) или синхронизирующий сигнал «пользователь» (ntp), чтобы обладать этими способностями.

Вы можете использовать группы для ручного управления доступом, если хотите, но в настольных системах часто большинство групп автоматически настраиваются и управляются. Команда groups выведет список всех групп, членом которых вы являетесь.

Для чего нужны «другие» разрешения?

Они применяются ко всем остальным - к учетным записям пользователей, которые не владеют файлом и не являются членами группы-владельца.

Являются ли разрешения для файлов группы и владельца только для серверов?

Нет, они используются для управления различиями между учетными записями различных типов пользователей на вашем компьютере, включая учетные записи нечеловеческих пользователей. Это применимо, даже если в вашей системе есть только одна учетная запись пользователя.

Например, членство в группе adm (которая не делает пользователя администратором) дает возможность читать содержимое большинства системных журналов. Это относительно безвредная возможность практически для любого пользователя большинства настольных систем, но потенциально может привести к проблемам, если она будет присвоена части системы, которая выполняет только узкоспециализированную задачу (то есть выполняет только эту задачу, если что-то как частично успешная кибератака совершается).

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

В некотором роде.

На серверах вам, скорее всего, придется знать о них и управлять ими вручную, поскольку вы с большей вероятностью намеренно предоставите и запретите доступ к различным ресурсам для различных пользователей.

Но они необходимы для правильной работы системы даже для одного пользователя. Система должна быть разработана совершенно по-другому, чтобы хорошо работать в однопользовательском режиме для повседневных вычислений, без системы владения файлами и прав доступа.

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

Как владелец файла, я могу изменить все его разрешения, а также владельца группы. Я могу сделать это без sudo или подобного механизма! Так в чем же смысл полномочий?

Владелец файла может сделать это, не будучи пользователем root (т.е. без sudo), но другие пользователи без полномочий root не могут. Это включает нечеловеческих «пользователей», которые являются частью системы (см. Выше).

Кроме того, многие файлы на компьютере не «принадлежат» вашей учетной записи пользователя. Эти файлы требуют, чтобы вы каким-то образом проходили аутентификацию, чтобы изменить их разрешения. Вы должны использовать sudo (или аналогичный механизм), чтобы изменить разрешения для системных файлов, принадлежащих root.

Наконец, есть некоторая ценность, связанная с наличием разрешений, которые применяются только к вам, даже если вы можете изменить их без использования sudo или какого-либо подобного механизма.

Для чего нужны права пользователя? Зачем мне хотеть изменить то, что я могу сделать с файлом, если я могу просто вернуть его обратно?

По той же самой общей причине вы можете захотеть сделать файл доступным только для чтения (даже если вы можете переопределить его самостоятельно), вы можете создать файл, который вы не сможете прочитать или выполнить (запустить).

Более распространенная ситуация заключается в том, что вы можете не захотеть, чтобы файл, которым вы владеете, выполнялся вами. Когда вы загружаете что-то, вы, вероятно, не хотите, чтобы оно было помечено как исполняемое, потому что это может быть вредоносное ПО. Возможно, вы захотите подумать, хотите ли вы запустить его, прежде чем пометить его как исполняемый. Кроме того, если вы загрузили файл, имя которого заканчивается на .pdf, но на самом деле является вредоносной программой, вы определенно не хотите, чтобы для него по умолчанию были установлены разрешения на выполнение.

1193 Есть еще одна причина, которая меньше связана с безопасностью. Любой файл, помеченный как исполняемый файл, рассматривается как нечто, что может быть запущено - программа или скрипт. Большинство файлов не являются ни тем, ни другим, и вам бы не хотелось иметь возможность их запускать.

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

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

Возможный сценарий связан с тем, что вы автоматически выполняете какое-то действие со многими файлами («пакетное» задание), которое читает файлы, но вы хотите, чтобы оно пропускалось. При условии, что действие «изящно ухудшится», продолжая делать все возможное после ошибки, самый простой способ выполнить это - пометить несколько файлов, которые вы хотите пропустить, как нечитаемые.

1197 Совершенно другая ситуация: может быть, вы хотите отказать себе в разрешении на чтение какого-либо файла, потому что этот файл служит какой-то цели , а не содержит данные . Файлы могут быть использованы для обозначения некоторых условий. В качестве готового примера: некоторое приложение для поиска, которое индексирует файлы, может сначала проверить, присутствует ли файл с именем noindex в вашей домашней папке, и остановить, если оно найдет. Этот файл не должен быть прочитан; возможно, отметив его как нечитаемый, можно прояснить его назначение.

Желание удержать себя (или какую-то задачу, которую вы выполняете , как вы ) от чтения файлов, которыми вы владеете, не является, однако, особой ситуацией. И на практике большинство «сигнальных» файлов (которые существуют, потому что само их существование что-то значит) читаются их владельцами. На самом деле, насколько мне известно, существует три основных причины, по которым пользователь-владелец файла не может читать его и даже может писать в него, не читая его:

  1. Группа и другие имеют биты чтения, записи и выполнения, и они могут принимать любую комбинацию значений. Нет веской причины порвать с этой моделью - тем самым усложняя систему - для пользователя, которому принадлежит файл.

  2. Многие ресурсы, которые мы обычно не считаем подобными файлам, представлены записями в файловой системе . Для некоторых ресурсов имеет смысл писать в них, но не имеет смысла читать из них. Для этих ресурсов бит read иногда отключается для всех, даже для владельца, и даже если владельцем является root. (Однако не всегда; по причинам, которые выходят за рамки этого ответа и находятся на грани моих собственных знаний, для записей файловой системы некоторых устройств, предназначенных только для записи, для некоторых пользователей по-прежнему разрешены биты чтения.)

  3. Возможность для файла запретить доступ на чтение даже его владельцу иногда используется для представления файлов в файловой системе только для записи. (Однако не всегда; это зависит от деталей файловой системы и того, как она смонтирована.) Файловые системы только для записи встречаются редко, но они существуют и имеют практическое применение .

0
ответ дан 24 July 2013 в 15:17

Другие вопросы по тегам:

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